是否可以在特定的跑步者上运行管道?(不使用标签)
是否可行environments
,甚至gitlab runner exec
可能?
设想:
有一个已经附加了多个跑步者的现有项目(用于注册跑步者的特定项目令牌)并且有它自己的关联标签(因此也不能更改这些标签)。
我正在添加一个新的跑步者,但需要先对其进行测试以确保它可以正常工作,但我需要强制管道在这台机器上构建,而不更改任何标签或跑步者的特定项目。
是否可以在特定的跑步者上运行管道?(不使用标签)
是否可行environments
,甚至gitlab runner exec
可能?
设想:
有一个已经附加了多个跑步者的现有项目(用于注册跑步者的特定项目令牌)并且有它自己的关联标签(因此也不能更改这些标签)。
我正在添加一个新的跑步者,但需要先对其进行测试以确保它可以正常工作,但我需要强制管道在这台机器上构建,而不更改任何标签或跑步者的特定项目。
您有两种机制可以尝试隔离新的运行器进行测试:
使用标签和私人跑步者附件(已经调用)。
为了进一步扩展这一点......即使在您无法更改标签和诸如此类的严格设置中 - 您始终可以分叉该项目。
在您的新私有分支中,您可以转到 Settings >> CI/CD 并覆盖 General Pipelines Settings 下 Custom CI Configuration Path 中的 .gitlab-ci.yml 文件。这使您可以git cp .gitlab-ci.yml .mycustomgitlab-ci.yml
然后简单地git add
/ git commit
/git push
并且您在做生意。
意见:如果你不能使用现有的机制来调整有问题的 runner 上的标签并隔离一个新的分叉项目,这不是一个技术问题,这是一个政治问题。
Gitlab-runner 执行....
假设您使用的是 shell gitlab 运行器...
/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,以一种相当老套的方式,遵循以下原则:
如果您不想使用标签,另一种选择可能是将跑步者分配给您的特定项目。此选项或标签替代方案是 Gitlab 的设计方式。