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
管道以拥有日程表的用户身份执行. 这影响管道可以访问哪些项目和其他资源.
如果用户不拥有管道,则可以通过单击" 获取所有权"按钮获取所有权 . 下次计划管道时,将使用您的凭据.
如果管道计划的所有者没有能力在目标分支上创建管道,则该计划将停止创建新管道.
例如,如果发生这种情况:
- 所有者被阻止或从项目中删除.
 - 目标分支或标签受保护.
 
在这种情况下,具有足够特权的人必须拥有日程表的所有权.




