标签: gitlab-ci

如何设置gitlab CI跑步者?

我在这里问这个问题,因为文档没有帮助我.

在跑步者的设置过程中,有两件事要问:gitlab CI协调员和注册令牌的url.我不知道他们应该是什么.

至于url,它可以是gitlab CI web界面的url(例如:)http://localhost:80/与build相关的url,这在build的高级属性中有描述.

注册令牌可能来自文档 - 但是它的链接已经死亡(请参阅:http: //gitlab-ci-domain.com/admin/runners)或来自build的高级属性的注册令牌.

但是,当我尝试从构建属性提供跑步者的设置URL和注册令牌时,我得到访问错误,通知我注册失败.由于缺乏理解这些参数应该是什么,我无法确定是什么问题.

gitlab gitlab-ci

14
推荐指数
1
解决办法
2万
查看次数

Gitlab:是否可以从MY fork创建一个合并请求到同一项目的另一个fork

场景:我们是3位开发人员.

开发人员1(管理员)创建了主仓库.

开发人员2分叉管理员的回购.

开发人员3分叉管理员的回购.

开发人员2创建了一个功能分支"功能1"

开发人员3从开发人员2回购中检出"功能1".

当Developer 3尝试创建合并请求时,他只能看到自己的和管理员的回购.

所以我想知道,是否可以创建一个合并请求到另一个不同于我的叉子的遥控器?"

到目前为止我唯一看到的解决方法是:

开发人员2将功能分支推送到管理员的仓库(通过合并请求)并要求管理员"保护它",然后开发人员3也必须为管理员的仓库创建合并请求,这种方法的问题是开发人员2失去分支的所有权,他们每次想要推动更改时都必须创建合并请求.

另一方面,似乎这个功能被添加到GitLab但我找不到有关此功能的官方文档.

git gitlab gitlab-ci gitlab-7

14
推荐指数
1
解决办法
2558
查看次数

如何从GitLab CI向Artifactory发布版本?

我正在寻找一种简单而干净的方法来将使用GitLab CI构建的人工制品发布到Artifactory上.

我能够发现https://gitlab.com/gitlab-org/omnibus/blob/af8af9552966348a15dc1bf488efb29a8ca27111/lib/omnibus/publishers/artifactory_publisher.rb但是我找不到任何关于我应该如何配置它的文档这行得通.

注意:我正在寻找一种gitlab_ci.yaml方法,而不是在外部实现它.

artifacts artifactory gitlab-ci

14
推荐指数
2
解决办法
1万
查看次数

Gitlab 8与nginx代理无法下载zip,克隆公共repo作为guest,也无法构建CI

我认为所有3个问题都与同一个问题有关,所以我要将所有问题都放在这里.

Gitlab本身正在工作,我甚至设法将它从8.2.2更新到8.2.3.我可以创建项目,推送我的代码,拉动它,当我有正确的ssh键时重新放入它,等等.

但:

  1. 我无法将代码下载为zip文件,而是获得了JSON:

{"RepoPath":"/ var/opt/gitlab/git-data/repositories/me/myrepo.git","ArchivePrefix":"...

  1. 人们无法克隆我的公共仓库(空仓库错误).

  2. CI无法构建我的测试:

警告:您已克隆空存储库.检查12345为开发...致命:引用不是树:123456789mycommithash987654321

错误:构建失败:退出状态1

注意:我翻译了法语版的错误消息.

我想问题出现在我的Nginx配置中,但是有很多文档我不确定哪一个是好的:有主力的那些,当我必须更改gitlab.rb的gitlab_git_http_server等时.

我的配置如下:

  • Gitlab 8.2.3
  • Ubuntu Trusty(14.04)
  • Nginx 1.8

我的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)

nginx gitlab gitlab-ci gitlab-8

14
推荐指数
1
解决办法
1605
查看次数

更新package.json时,只在GitLab CI中进行'npm install'

我正在使用GitLab CI进行项目,该过程的第一步是npm install.我node_modules稍后缓存以便更快地运行相同的作业,并将它们定义为构建工件,以便在后续阶段使用它们.但是,即使我缓存node_modules并且它是最新的,npm install每次install_packages运行作业时调用都需要很长时间,因为命令会遍历所有package.json并检查包的更新等(我假设).

根据某些条件,有没有办法npm installinstall_packages工作中运行?更具体地说(我认为这是最好的解决方案),package.json自上次构建以来是否已经改变了?

以下是我的.gitlab-ci.yml文件的相关部分:

image: node:6.9.1

stages:
  - install
  - prepare
  - deploy

install_packages:
  stage: install
  script:
    - npm prune
    - npm install
  cache:
    key: ${CI_BUILD_REF_NAME}
    paths:
      - node_modules/
  artifacts:
    paths:
      - node_modules/
  only:
    - master
    - develop

build_and_test:
  stage: prepare
  script:
    #do_stuff...

deploy_production:
  stage: deploy
  #do_stuff...

deploy_staging:
  stage: deploy
  #do_stuff...
Run Code Online (Sandbox Code Playgroud)

node.js npm gitlab gitlab-ci npm-install

14
推荐指数
1
解决办法
3559
查看次数

Gitlab CI使用徽章进行每项工作

假设我为一个项目配置了多个作业,如下所示:

build_win32:
  script: ...

build_ios:
  script: ...

unit_tests:
  script: ...

server_tests:
  script: ...

client_tests:
  script: ...
Run Code Online (Sandbox Code Playgroud)

我想要实现的是在README.md下为每个作业配置标记,以便我可以立即反馈具体哪个部分出错.

有一个关于设置徽章的Gitlab文档,但是它有一个限制,它显示了如何为buildcoverage status仅配置徽章.

我想知道Gitlab CI中是否有这样的内置功能.我也可以使用第三方插件.任何帮助将不胜感激.

badge gitlab-ci

14
推荐指数
3
解决办法
8967
查看次数

无法在 gitlab ci yaml 文件中的作业之间共享全局变量值

我正在尝试使用 gitlab ci 构建一个应用程序。

生成的文件名取决于时间,采用这种格式

DEV_APP_yyyyMMddhhmm

(例如:DEV_APP_201810221340,对应于今天的日期 2018/10/22 13h40)。

如何将此名称存储在 .gitlab-ci.yml 文件内的全局变量中?

这是我的 .gitlab-ci.yml 文件:

image: docker:latest
image: docker:latest
services:
- docker:dind

variables:
  DOCKER_DRIVER: overlay
  SPRING_PROFILES_ACTIVE: gitlab-ci
#   TIME: ""
#  BRANCH: ""
#  REC_BUILD_NAME: ""
  TIME: "timex"
  BRANCH: "branchx"
  DEV_BUILD_NAME: "DEV_APP_x"

stages:
- preparation
- build
- package
- deploy
- manual_rec_build
- manual_rec_package

job_preparation:
  stage: preparation
  script:
  - echo ${TIME}
  - export TIME=$(date +%Y%m%d%H%M)
  - "BRANCH=$(echo $CI_BUILD_REF_SLUG | sed 's/[^[[:alnum:]]/_/g')"
  - "DEV_BUILD_NAME=DEV_APP_${BRANCH}_${TIME}"
  - echo ${TIME}

maven-build: …
Run Code Online (Sandbox Code Playgroud)

yaml gitlab-ci

14
推荐指数
3
解决办法
2万
查看次数

在 gitlab ci before_script 中使用 apt 时找不到 apt

我使用 gitlab ci 来构建 docker 镜像,我想安装 python。当我构建时,以下是我的 gitlab-ci.yml:

image: docker:stable
stages:
  - test
  - build

before-script:
  - apt install -y python-dev python pip

test1:
  stage: test
  script:
  ...
    - pytest

build:
  stage: build
  - docker build -t $IMAGE_TAG .
  - docker push $IMAGE_TAG
Run Code Online (Sandbox Code Playgroud)

但我的工作失败了

/bin/sh: eval: line : apt: not found
ERROR: Job failed: exit code 127
Run Code Online (Sandbox Code Playgroud)

我也试过 apt-get install 但结果是一样的。

我如何安装python?

docker gitlab-ci gitlab-ci-runner

14
推荐指数
3
解决办法
1万
查看次数

“ChromeHeadless 在 60000 ms 内没有捕获,杀死。” 仅发生在 Gitlab 托管的 CI/CD 管道中

在 Gitlab 上运行 CI/CD 管道时,我的 Karma 测试超时并出现错误:

? ?wdm?: Compiled successfully.
05 08 2019 22:25:31.483:INFO [karma-server]: Karma v4.2.0 server started at http://0.0.0.0:9222/
05 08 2019 22:25:31.485:INFO [launcher]: Launching browsers ChromeHeadlessNoSandbox with concurrency 1
05 08 2019 22:25:31.488:INFO [launcher]: Starting browser ChromeHeadless
05 08 2019 22:26:31.506:WARN [launcher]: ChromeHeadless have not captured in 60000 ms, killing.
05 08 2019 22:26:31.529:INFO [launcher]: Trying to start ChromeHeadless again (1/2).
05 08 2019 22:27:31.580:WARN [launcher]: ChromeHeadless have not captured in 60000 ms, killing.
05 08 …
Run Code Online (Sandbox Code Playgroud)

selenium docker karma-jasmine gitlab-ci gitlab-ci-runner

14
推荐指数
1
解决办法
1万
查看次数

gitlab runner 在末尾抛出“清理基于文件的变量 00:01 错误:作业失败:退出代码 1”

即使我的所有步骤都成功通过,Gitlab CI 显示了这一点 - “清理基于文件的变量 00:01 错误:作业失败:退出代码 1”

并最终失败了。同样有趣的是,这只发生在我的主分支上。它在其他分支上成功运行。有没有人遇到过这个问题并找到了解决方案?

    - >
     for dir in $(git log -m -1 --name-only -r --pretty="format:" "$CI_COMMIT_SHA"); do 
     if [[ -f "$dir" ]]; then 
     SERVICE=$(echo "$dir")
     # helm install the service
     fi
     done
    - echo "deployed" 

Run Code Online (Sandbox Code Playgroud)

bash continuous-integration gitlab-ci gitlab-ci-runner

14
推荐指数
1
解决办法
1万
查看次数