流水线计划
流水线通常是在满足某些条件的情况下运行的。 例如,将分支推送到仓库时。
流水线计划可以用于以特定时间间隔运行流水线。 例如:
- 每月的 22 号为特定的分支。
- 每天一次。
除了使用 CODECHINA UI 外,还可以使用流水线计划 API 。
注意: 调度时间是用 Cron 符号配置的,由Fugit解析。
先决条件
为了成功创建计划的流水线:
- 计划所有者必须具有合并到目标分支的权限 。
- 流水线配置必须有效。
否则,不会创建流水线。
配置流水线计划
计划项目的流水线:
- 导航到项目的 DevOps >计划页面。
- 单击 新建计划 按钮。
- 填写 新建流水线计划 表单。
- 单击 保存流水线计划 按钮。
注意:流水线执行时间取决于 Sidekiq 自己的时间表。
在 计划索引页面中,你可以看到计划运行的流水线列表。 下次运行由安装了 CODECHINA 的服务器自动计算。
使用变量
你可以传递任意数量的任意变量,它们将在 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']
值。 - 重新配置 CODECHINA 以使更改生效。
使用计划的流水线
配置完成后,CODECHINA 将支持许多用于计划流水线的功能。
手动运行
要手动触发流水线计划,请单击"播放"按钮:
这将安排一个后台流水线任务来运行流水线计划. 一条简短消息将提供指向 CI/CD 流水线索引页面的链接。
注意:为避免滥用,限制了用户每分钟触发一次流水线的速率。
取得所有权
流水线以拥有计划的用户身份执行。 这影响流水线可以访问哪些项目和其他资源。
如果用户不拥有流水线,则可以通过单击获取所有权按钮 获取所有权 。下次计划流水线时,将使用你的凭据。
如果流水线计划的所有者没有能力在目标分支上创建流水线,则该计划将停止创建新流水线。
例如,如果发生这种情况:
- 所有者被阻止或从项目中删除。
- 目标分支或标签受保护。
在这种情况下,具有足够特权的人必须拥有计划的所有权。