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