Rek*_*vni 7 gitlab gitlab-ci gitlab-ci-runner gitlab-api
是否可以在特定运行器上运行管道?(不使用标签)
使用可行environments,甚至可行gitlab runner exec?
场景:
已有一个已有多个运行器的项目(用于注册运行器的特定项目令牌),并且具有自己的关联标签(因此也不能更改它们)。
我要添加一个新的运行器,但是需要首先对其进行测试以确保其正常工作,但是我需要强制在该机器上构建管道,而无需更改任何标签或运行器的特定项目。
小智 5
您可以通过两种机制尝试隔离新的运行程序进行测试:
使用标签和私人跑步者附件(已调出)。
为了进一步扩展这一点……即使在严酷的设置中,您无法更改标签之类的东西 - 您始终可以分叉该项目。
在新的私有分支中,您可以转到设置 >> CI/CD 并覆盖常规管道设置下自定义 CI 配置路径中的 .gitlab-ci.yml 文件。这使您可以git cp .gitlab-ci.yml .mycustomgitlab-ci.yml简单地git add/ git commit/开始git push做生意。
意见:如果你不能使用现有的机制来调整有问题的运行者上的标签并隔离新的分叉项目,这不是一个技术问题,而是一个政治问题。
Gitlab-runner 执行....
假设您使用的是 shell gitlab runner...
/tmp/myrepo/path/to/gitlab-runner exec shell {.gitlab-ci.yml target}请参阅https://docs.gitlab.com/runner/commands/#gitlab-runner-exec以及有关它的博客https://substrakt.com/how-to-debug-gitlab-ci-builds-locally/
Canary 单个构建的 gitlab-runner。
您可以启动 gitlab-runner 进程来执行 N 次构建,然后返回离线状态。请参阅: https: //docs.gitlab.com/runner/commands/#gitlab-runner-run-single
...这不是零影响,但肯定会限制任何问题的爆炸半径。
目前,GitLab 中还没有针对特定运行程序进行构建的解决方案,但Sticky Runners存在一个未解决的问题,根据里程碑,该问题有望在未来 3-6 个月内发布!
到目前为止,我在特定运行器上构建项目所做的工作是使用GitLab Runner API,以一种相当黑客的方式,大致如下: