标签: gitlab-ci-runner

只有单一的GitLab CI Runner Building

我最近安装了GitLab并尝试使用GitLab CI.我在我的GitLab服务器中成功启用了GitLab CI并成功安装了CI Runner(在Windows上,如果这是相关的).我为Windows CI Runner启用了一个项目,当我提交到存储库时,运行器被执行,我可以看到构建.

我按照文档安装了第二个CI Runner(在Debian上).我可以看到Debian CI Runner和Windows CI Runner一起注册.Debian CI Runner分配了相同的项目.但是,当我提交存储库时,只执行Windows CI Runner,Debian CI Runner不会尝试构建.

我犯了什么错误或者有什么额外的配置才能启用它?我已经尝试重新注册Debian CI Runner但没有成功.


更新1: Debian CI Runner现在正在执行,但Windows CI Runner不是.它似乎只选择一个单一的跑步者.

更新2:升级到'GitLab CI 7.14.1 2dee1b3'但相同的行为仍然存在.

更新3:在Scientific Linux机器上添加了第三个跑步者.它已注册并分配了项目,但只执行了一个运行程序(目前是Debian CI Runner).


GitLab CI 7.12.0 e96755c

git gitlab-ci gitlab-ci-runner

7
推荐指数
1
解决办法
2733
查看次数

Gitlab CI - 部署到Heroku并运行迁移

我在gitlab.com上托管了一个Rails应用程序,我按照本指南将其配置为部署到heroku:http://docs.gitlab.com/ce/ci/examples/test-and-deploy-ruby-application- to-heroku.html.它工作正常.

我的问题是,每次部署到heroku时如何运行迁移?通过CLI进行部署时,我通常会这样做:

git push heroku master && heroku run rake db:migrate
Run Code Online (Sandbox Code Playgroud)

但是使用gitlab-ci.yml我不知道如何做到这一点......

ruby-on-rails heroku gitlab-ci gitlab-ci-runner

7
推荐指数
3
解决办法
3741
查看次数

如何在成功构建时将Gitlab runner合并代码转换为分支

那么标题几乎是不言自明的.

总之,如果构建成功,我希望将分支(即dev)合并到另一个分支(即生产).

如果你想知道为什么,请看看这个问题:https:
//stackoverflow.com/questions/42109335/gitlab-runner-starts-merge-automate-merge?noredirect=1#comment71394445_42109335

git merge gitlab gitlab-ci-runner

7
推荐指数
3
解决办法
9692
查看次数

GitLab:是否可以在特定的运行程序上运行管道?

是否可以在特定运行器上运行管道?(不使用标签)

使用可行environments,甚至可行gitlab runner exec


场景:

已有一个已有多个运行器的项目(用于注册运行器的特定项目令牌),并且具有自己的关联标签(因此也不能更改它们)。

我要添加一个新的运行器,但是需要首先对其进行测试以确保其正常工作,但是我需要强制在该机器上构建管道,而无需更改任何标签或运行器的特定项目。

gitlab gitlab-ci gitlab-ci-runner gitlab-api

7
推荐指数
2
解决办法
6673
查看次数

GitLab CI 输出中的编码错误

我刚刚学习一些有关 GitLab CI 的知识。我的本地计算机上运行的 GitLab Runner 已成功连接到我的 GitLab 项目。我编写的命令运行良好,但如果控制台中有一些带有非 asci 字符的输出,Gitlab 中的输出将显示 \xef\xbf\xbd 字符。

\n\n

Win10 Pro 捷克本地化(企业机)

\n\n

我的 .gitlab-ci.yml 文件:

\n\n
variables:\n  PROJECT_FOLDER: \'Code\'\n  PROJECT_NAME: \'Apps.InfoPanels.Cloud.WebApp\'\n\n  TEST_FOLDER: \'Apps.InfoPanels.Cloud.Test\'\n  TEST_NAME: \'Apps.InfoPanels.Cloud.Test\'\n\n  NUGET_PATH: \'C:\\NuGet\\nuget.exe\'\n  MSBUILD_PATH: \'C:\\Program Files (x86)\\MSBuild\\14.0\\Bin\\msbuild.exe\'\n  COREBUILD_PATH: \'C:\\Program Files\\dotnet\\dotnet.exe\'\n  NUNIT_PATH: \'C:\\Program Files (x86)\\NUnit.org\\nunit-console\\nunit3-console.exe\'\n\nstages:\n  - build\n\nbefore_script:\n  - \'tree\'\n\nbuild:\n  stage: build\n  script:\n    - \'& "$env:MSBUILD_PATH" /p:Configuration=Debug ".\\$env:PROJECT_FOLDER\\$env:PROJECT_NAME.sln"\'\n  artifacts:\n    untracked: true\n
Run Code Online (Sandbox Code Playgroud)\n\n

和 config.toml:

\n\n
concurrent = 1\ncheck_interval = 0\n\n[[runners]]\n  name = "sykora-nb"\n  url = "URL"\n  token = "TOKEN"\n  executor = …
Run Code Online (Sandbox Code Playgroud)

.net continuous-integration gitlab gitlab-ci gitlab-ci-runner

7
推荐指数
2
解决办法
5319
查看次数

使用Gitlab CI清除管道缓存

管道完成后,是否可以使用Gitlab CI使管道缓存无效或清除?

我的.gitlab-ci.yml文件具有以下全局缓存定义

cache:
  key: "%CI_PIPELINE_ID%"
  paths:
    - './msvc/Project1`/bin/Debug'
    - './msvc/Project2`/bin/Debug'
    - './msvc/Project3`/bin/Debug'
Run Code Online (Sandbox Code Playgroud)

cache-key值指定每个管道应维护自己的缓存,这可以正常工作,但是在管道完成后,缓存文件仍然存在。随着数百个管道的运行,大小开始增加,手动删除我们计算机上的缓存文件夹并不是一个很好的解决方案。

我尝试在管道的末尾添加清理作业

cleanup:
  stage: cleanup
  script:
  - rm -rf './msvc/Project1/bin'
  - rm -rf './msvc/Project2/bin'
  - rm -rf './msvc/Project3/bin'
  when: always
Run Code Online (Sandbox Code Playgroud)

会删除本地文件,但不会从缓存中删除它们。

我在这里想念什么吗?

当前正在运行的Gitlab-EE 10.3.3

gitlab gitlab-ci gitlab-ci-runner

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

GitLab runner在运行管道时无法解析主机

我有一个dockerized GitLab和GitLab Runner安装,包括docker-compose.yml:

version: "3"

services:
  gitlab:
    image: gitlab/gitlab-ee:latest
    container_name: gitlab
    restart: always
    hostname: gitlab
    ports:
      - "45022:22"
      - "45080:80"
      - "45443:443"
    volumes:
      - /srv/gitlab/config:/etc/gitlab
      - /srv/gitlab/logs:/var/log/gitlab
      - /srv/gitlab/data:/var/opt/gitlab

  python-runner:
    image: gitlab/gitlab-runner:latest
    container_name: python-runner
    hostname: python-runner
    volumes:
      - /srv/python-runner/config:/etc/gitlab-runner
      - /var/run/docker.sock:/var/run/docker.sock
    environment:
      - CI_SERVER_URL=http://gitlab/ci
      - RUNNER_TOKEN=myTokenCode
      - RUNNER_DESCRIPTION=Python 2.7.14
      - RUNNER_EXECUTOR=docker
      - DOCKER_IMAGE=python:2.7.14
    restart: always
Run Code Online (Sandbox Code Playgroud)

我已经注册了跑步者:

docker exec -it python-runner gitlab-runner register \
    --non-interactive \
    --url "http://gitlab/" \
    --registration-token "${GITLAB_REGISTRATION_TOKEN}" \
    --description "Python 2.7.14" \
    --executor "docker" \ …
Run Code Online (Sandbox Code Playgroud)

gitlab docker gitlab-ci-runner docker-compose

7
推荐指数
1
解决办法
4163
查看次数

Gitlab-Ci:我如何在作业之间共享数据

我想在两个作业之间共享一个文件,如果有更改的文件则修改它.python脚本将cache.json文件与更改进行比较,并有时修改cahce文件.

.gitlab-ci.yaml:

image: ubuntu

stages:
  - test

cache:
  key: one-cache
  paths:
    - cache.json

 job1:
   stage: test

script:
  # - touch cache.json
  - cat cache.json
  - python3 modify_json_file.py
  - cat cache.json
Run Code Online (Sandbox Code Playgroud)

问题是cache.json在下次作业运行时文件不存在.我收到错误消息:cat: cache.json: No such file or directory.我也确实插入了一次touch命令,但是如果没有touch命令,这不会改变下一次运行的任何内容.

我做错了什么或者我不理解cacheat gitlab错了.

yaml gitlab gitlab-ci gitlab-ci-runner

7
推荐指数
1
解决办法
7590
查看次数

GitLab Runner CI/CD 中用户模式和系统模式的区别

在系统模式下配置 GitLab 运行器时,服务无法启动,但在用户模式下服务运行良好。

在 GitLab 运行程序文档中,他们没有介绍目的 https://docs.gitlab.com/runner/commands/#super-user-permission

我理解的唯一区别是路径:

用户模式 ​​= /Users/ayufan/.gitlab-runner/config.toml

系统模式 = /etc/gitlab-runner/config.toml

任何人都可以解释一下系统模式如何影响结果。

更新:我没有从 gitlab 论坛得到答案,但我在这里阅读了一些注释https://medium.com/static-object/how-to-set-up-gitlab-ci-for-ios-in-a-few- relative-simple-steps-56a0d88d0272,我了解到这是他们大多数人面临的问题。

continuous-integration gitlab-ci gitlab-ci-runner

7
推荐指数
1
解决办法
7198
查看次数

gitlab runner 特定运行程序 vs 共享运行程序 vs 组运行程序

作为系统管理员,我使用 gitlab 作为 git 服务器,并使用一些 docker 服务器作为部署服务器。我们在 gitlab 上有很多项目,现在我决定使用 gitlab runner 作为简单的 CI/CD ro 自动部署我们的项目。

现在我对下面的跑步者的一些概念感到困惑:

  • 特定跑步者共享跑步者
  • 共享跑步vs 团体跑步

那么现在,该使用哪一个呢?

git gitlab gitlab-ci-runner

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