我正在使用GitLab CI构建一个C#解决方案,并尝试将一些构建工件从一个构建阶段传递到另一个构建阶段.
问题是,工件不是位于单个目录中,而是位于不同的子目录中,但是它们都具有相同的名称bin/或obj/.
我.gitlab-ci.yml看起来如下:
...
stages:
- build
- test
build:
stage: build
script:
CALL %MSBuild% ...
artifacts:
paths:
- /**/bin/
- /**/obj/
expire_in: 6 hrs
test:
stage: test
dependencies:
- build
...
Run Code Online (Sandbox Code Playgroud)
我尝试使用不同的方式捕获工件,例如
**/bin/
**/obj/
Run Code Online (Sandbox Code Playgroud)
(语法无效),或
.*/bin/
.*/obj/
Run Code Online (Sandbox Code Playgroud)
但那个没有找到任何文物,就像/**/bin/并且/**/obj/,给我以下错误:
Uploading artifacts...
WARNING: /**/bin/: no matching files
WARNING: /**/obj/: no matching files
Run Code Online (Sandbox Code Playgroud)
如何指定要扫描工件的子目录模式?或者这甚至可能吗?
简单地使用
artifacts:
untracked: true
Run Code Online (Sandbox Code Playgroud)
不是一个选项,因为一个巨大的未跟踪packages/子目录,由于存档太大导致工件上传失败:
Uploading artifacts...
untracked: found 4513 files
ERROR: Uploading artifacts to …Run Code Online (Sandbox Code Playgroud) 我们使用gitlab ci和共享运行器来进行持续集成.对于每个构建,运动员下载大量的maven工件.
有没有办法配置gitlab ci来缓存这些工件,这样我们可以通过阻止一遍又一遍地下载相同的工件来加快构建过程?
我的服务器上安装了GitLab CE(至少v8.5).我想将它与sonarqube集成,以便合并请求在评论部分显示任何问题.有没有人成功整合这两个系统?
目前,我发现只有sonarqube插件如下,但我无法成功将其与GitLab集成.
https://gitlab.talanlabs.com/gabriel-allaigre/sonar-gitlab-plugin
我使用了一个docker容器for sonarqube(v5.5)并将插件复制到extensions目录中.在sonarqube的插件设置页面中配置了gitlab用户令牌和gitlab uri.
我正在使用GitLab CI进行持续集成,我为sonarqube做了以下构建工作(使用gradle)
sh gradlew sonarqube -Psonar.analysis.mode=preview -Psonar.issuesReport.console.enable=true \
-Psonar.gitlab.commit_sha=$CI_BUILD_REF -Psonar.gitlab.ref_name=$CI_BUILD_REF_NAME \
-Psonar.gitlab.project_id=$CI_PROJECT_ID
Run Code Online (Sandbox Code Playgroud)
但是,我不确定在此之后该怎么做.几个问题:
当合并请求不存在时会发生什么?在我的git工作流程中,用户将在完成分支工作后提交合并请求.那么,这个插件将如何知道要更新哪个合并请求?
现在我将sonarqube valiation任务设置为仅在master分支上运行.我认为这也需要改为用户分支,对吧?
我确实尝试过提交合并请求,但我没有看到任何评论被添加.我想我缺少一些配置或过程.真的很感激,如果你能帮我指出正确的方向.
gitlab-ci-multi-runner register
Run Code Online (Sandbox Code Playgroud)
给我
couldn't execute POST against https://xxxx/ci/api/v1/runners/register.json:
Post https://xxxx/ci/api/v1/runners/register.json:
x509: cannot validate certificate for xxxx because it doesn't contain any IP SANs
Run Code Online (Sandbox Code Playgroud)
有没有办法禁用认证验证?
我正在使用Gitlab 8.13.1和gitlab-ci-multi-runner 1.11.2.
我认为所有3个问题都与同一个问题有关,所以我要将所有问题都放在这里.
Gitlab本身正在工作,我甚至设法将它从8.2.2更新到8.2.3.我可以创建项目,推送我的代码,拉动它,当我有正确的ssh键时重新放入它,等等.
但:
{"RepoPath":"/ var/opt/gitlab/git-data/repositories/me/myrepo.git","ArchivePrefix":"...
人们无法克隆我的公共仓库(空仓库错误).
CI无法构建我的测试:
警告:您已克隆空存储库.检查12345为开发...致命:引用不是树:123456789mycommithash987654321
错误:构建失败:退出状态1
注意:我翻译了法语版的错误消息.
我想问题出现在我的Nginx配置中,但是有很多文档我不确定哪一个是好的:有主力的那些,当我必须更改gitlab.rb的gitlab_git_http_server等时.
我的配置如下:
我的gitlab使用SLL托管在子域上,所以我添加了一个Nginx代理
/etc/gitlab/gitlab.rb:
external_url 'https://gitlab.mydomain.com'
nginx['listen_addresses'] = ['127.0.0.1', "[::1]"]
nginx['listen_port'] = 8080
nginx['listen_https'] = false
Run Code Online (Sandbox Code Playgroud)
/ etc/nginx/site_enabled/gitlab:
server {
listen *:80 default_server;
listen [::]:80 ipv6only=on default_server;
server_name gitlab.mydomain.com;
return 301 https://$server_name$request_uri;
access_log /var/log/nginx/gitlab_access.log;
error_log /var/log/nginx/gitlab_error.log;
}
server{
# listen 443 ssl;
listen 0.0.0.0:443 ssl default_server;
listen [::]:443 ipv6only=on ssl default_server;
server_name gitlab.mydomain.com;
server_tokens off;
location /{
proxy_pass http://localhost:8080;
proxy_redirect off; …Run Code Online (Sandbox Code Playgroud) 我有以下gitlab ci yaml文件:
image: steveedson/ci
stages:
- build
cache:
untracked: true
key: "$CI_PROJECT_ID"
paths:
- node_modules/
- _site/vendor/
- .bundled/
- .yarn
build:
stage: build
script:
- ls -l
- yarn config set cache-folder .yarn
- yarn install
- ...
Run Code Online (Sandbox Code Playgroud)
当我的成功完成后,他们会显示:
Creating cache 1970478...
Created cache
Run Code Online (Sandbox Code Playgroud)
当下一个提交触发构建时,我得到:
Checking cache for 1970478...
Successfully extracted cache
Run Code Online (Sandbox Code Playgroud)
但是ls -l在我的第一步中没有显示缓存的目录.我试过缓存缓存密钥,但这没有用.
这是在gitlab.com上运行,而不是私有服务器.
我想了解 gitlab 中项目和子组之间的区别是什么?
请帮助我理解上述内容。
问候,
桑托什
我还没有找到一种方法来禁用自动启动,当我不使用时,它最终使用了太多RAM.
init文件不在/ etc/init或init.d中.
我试着update-rc.d gitlab remove没有结果.
我在Debian 8中使用GitLab 8.5.4.
我们在gitlab项目的根目录中保留了changelog.md,并希望在每个版本标记中包含一个链接,以将其与之前的标记进行比较.
链接需要是例如 https://gitlab.company.com/group/project/compare/v15.4.0...v15.3.0
在降价的所有相关链接,我试过相对结束上升到目前的分支(包括硕士),例如
[v15.4.0](compare/v15.3.0...v15.4.0),[v15.4.0](../compare/v15.3.0...v15.4.0)并且[v15.4.0](../../compare/v15.3.0...v15.4.0)
都最终与链接
https://gitlab.company.com/group/project/branch/compare/v15.3.0...v15.4.0
有没有办法创建相对于项目根目录而不是当前分支的链接?
很长一段时间以来,我一直是 github/zenhub 的忠实用户。我们最近出于多种原因将我们的存储库移至 gitlab,包括免费管道、安全性、更灵活的组等。
Zenhub是一个Greasemonkey的了加github上的应用程序,它的一个特点是,它类似于gitlab的原生scrumboard问题板。zenhub scrumboard令人惊奇的事情之一是它允许您将许多存储库放在同一个板上(我记得 jira 有同样的东西)。
有没有办法在 gitlab 上做到这一点?