GitLab CI 提供了非常好的灵活性和多种功能。因此,如何使用 GitLabCI yaml、调度程序等实现特定配置并不明显。
我有兴趣设置一个工作流程,我将在下面以简化的方式介绍它。
我只使用 master 分支,我希望我的主要管道在每次提交后启动。该管道将构建和测试我的包。我还想有一个预定的夜间管道来发布我的包裹的网站。因此,它需要最新的工件,生成文档并将其一起发布到 GitLab 页面。
所以,基本上我希望在同一个分支上运行两个不同的管道。主要是常规的,辅助是由调度程序运行的。
在我的实际用例中,我希望有 2 个计划的夜间管道和一个每周管道,因此包括主要的管道(每次提交),总共 4 个管道,仍然用于同一个分支。
使用only
/rules
并不能真正解决这个问题。有一个新workflow
命令,理论上可以通过分支应用在这里
if scheduled then
include nightly.gitlab-ci.yml
else
include primary.gitlab-ci.yml
但我不认为这是可能的。
最用户友好的解决方案是为计划的管道提供一个选项来选择自定义.gitlab-ci.yml
文件,而不是启动默认文件。
任何想法如何实现我正在寻找的配置?
我想到的唯一方法是继续拥有另一个分支,master 的克隆,我需要.gitlab-ci.yml
每天晚上更换。这需要额外的工作站来自动化。