Pipeline schedules

原文:https://docs.gitlab.com/ee/ci/pipelines/schedules.html

Pipeline schedules

版本历史

注意: Cron 表示法由Fugit解析.

管道通常是在满足某些条件的情况下运行的. 例如,将分支推送到存储库时.

管道计划可以用于以特定间隔运行管道 . 例如:

  • 每个月的 22 号都有特定的分支机构.
  • 每天一次.

除了使用 GitLab UI 外,还可以使用Pipeline schedules API维护管道时间表 .

Prerequisites

为了成功创建计划的管道:

  • 计划所有者必须具有合并到目标分支的权限 .
  • 管道配置必须有效.

否则,不会创建管道.

Configuring pipeline schedules

计划项目的管道:

  1. 导航到项目的CI / CD>计划页面.
  2. 单击新建计划按钮.
  3. 填写计划表中的新管道表单.
  4. 单击保存管道计划按钮.

New Schedule Form

注意:管道执行时间取决于 Sidekiq 自己的时间表.

在” 计划索引”页面中,您可以看到计划运行的管道的列表. 下次运行由安装了 GitLab 的服务器自动计算.

Schedules list

Using variables

在 GitLab 9.4 中引入 .

您可以传递任意数量的任意变量,它们将在 GitLab CI / CD 中可用,以便可以在您的.gitlab-ci.yml文件中使用 .

Scheduled pipeline variables

Using only and except

要配置仅在计划了管道(或相反)时才可以执行作业,您只能使用不能使用配置关键字.

For example:

  1. job:on-schedule:
  2. only:
  3. - schedules
  4. script:
  5. - make world
  6. job:
  7. except:
  8. - schedules
  9. script:
  10. - make build

Advanced configuration

管道不会完全按计划执行,因为计划由 Sidekiq 处理,Sidekiq 根据其间隔运行.

例如,如果满足以下条件,则每天只会创建两个管道:

  • 您设置时间表以每分钟( * * * * * )创建一条管道.
  • Sidekiq 工作者每天在 00:00 和 12:00( 0 */12 * * * )运行.

更改 Sidekiq 工作人员的频率:

  1. 在实例的gitlab.rb文件中编辑gitlab_rails['pipeline_schedule_worker_cron']值.
  2. 重新配置 GitLab,以使更改生效.

对于 GitLab.com,请参阅专用设置页面 .

Working with scheduled pipelines

配置完成后,GitLab 将支持许多用于计划管道的功能.

Running manually

在 GitLab 10.4 中引入 .

要手动触发管道计划,请单击”播放”按钮:

Play Pipeline Schedule

这将安排一个后台作业来运行管道计划. 一条简短消息将提供指向 CI / CD 管道索引页面的链接.

注意:为避免滥用,限制了用户每分钟触发一次管道的速率.

Taking ownership

管道以拥有日程表的用户身份执行. 这影响管道可以访问哪些项目和其他资源.

如果用户不拥有管道,则可以通过单击” 获取所有权”按钮获取所有权 . 下次计划管道时,将使用您的凭据.

Schedules list

如果管道计划的所有者没有能力在目标分支上创建管道,则该计划将停止创建新管道.

例如,如果发生这种情况:

  • 所有者被阻止或从项目中删除.
  • 目标分支或标签受保护.

在这种情况下,具有足够特权的人必须拥有日程表的所有权.