流水线计划
流水线通常是在满足某些条件的情况下运行的. 例如,将分支推送到存储库时.
流水线计划可以用于以特定时间间隔运行流水线. 例如:
- 每月的 22 号为特定的分支.
- 每天一次.
除了使用 GitLab UI 外,还可以使用Pipeline schedules API维护流水线计划 .
注意: 调度时间是用 Cron 符号配置的,由Fugit解析.
先决条件
为了成功创建计划的管道:
- 计划所有者必须具有合并到目标分支的权限 .
- 管道配置必须有效.
否则,不会创建管道.
配置流水线计划
计划项目的管道:
- 导航到项目的CI / CD>计划页面.
- 单击新建计划按钮.
- 填写新建流水线计划表单.
- 单击保存流水线计划按钮.
**注意:**流水线执行时间取决于 Sidekiq 自己的时间表.
在 计划索引页面中,您可以看到计划运行的流水线列表. 下次运行由安装了 GitLab 的服务器自动计算.
使用变量
您可以传递任意数量的任意变量,它们将在 CODECHINA CI/CD 中可用,以便可以在您的.codechina-ci.yml
文件中使用。
使用 only 和 except
要配置仅在计划了流水线(或相反)时才可以执行作业,您只能使用only 和 except配置关键字.
job:on-schedule:
only:
- schedules
script:
- make world
job:
except:
- schedules
script:
- make build
高级配置
流水线不会完全按计划执行,因为计划由 Sidekiq 处理,Sidekiq 根据其间隔运行.
例如,如果满足以下条件,则每天只会创建两个管道:
- 您设置时间表以每分钟(
* * * * *
)创建一条管道. - Sidekiq 工作者每天在 00:00 和 12:00(
0 */12 * * *
)运行.
更改 Sidekiq 工作人员的频率:
- 在实例的
gitlab.rb
文件中编辑gitlab_rails['pipeline_schedule_worker_cron']
值. - 重新配置 GitLab以使更改生效.
对于 GitLab.com,请参阅专用设置页面 .
使用计划的流水线
配置完成后,GitLab 将支持许多用于计划流水线的功能.
手动运行
要手动触发流水线计划,请单击"播放"按钮:
这将安排一个后台作业来运行流水线计划. 一条简短消息将提供指向 CI/CD 流水线索引页面的链接.
**注意:**为避免滥用,限制了用户每分钟触发一次流水线的速率.
取得所有权
流水线以拥有计划的用户身份执行. 这影响流水线可以访问哪些项目和其他资源.
如果用户不拥有流水线,则可以通过单击" 获取所有权"按钮获取所有权 . 下次计划流水线时,将使用您的凭据.
如果流水线计划的所有者没有能力在目标分支上创建流水线,则该计划将停止创建新流水线.
例如,如果发生这种情况:
- 所有者被阻止或从项目中删除.
- 目标分支或标签受保护.
在这种情况下,具有足够特权的人必须拥有计划的所有权.