设置适用于 CI 配置中所有作业的 variables/config

Set variables/config that apply for all jobs in the CI config

如何设置适用于管道中所有 jobs/steps 的变量或配置?我正在使用 Auto Devops。

目前,我正在如下使用,但我想将重试配置应用于管道中的所有作业,而不是如下所示为每个作业指定它。有办法做到这一点吗?

build:
  retry:
    max: 2
    when:
      - runner_system_failure
      - stuck_or_timeout_failure
      - scheduler_failure
      - stale_schedule
      - unknown_failure

review:
  retry:
    max: 2
    when:
      - runner_system_failure
      - stuck_or_timeout_failure
      - scheduler_failure
      - stale_schedule
      - unknown_failure

如果您想使用一个变量,您可以在 yaml 的基础级别应用它,它将应用于该 CI/CD 中的所有作业。如果您想应用更通用的东西(例如示例中的重试),请使用带有“extends”关键字的 yml 锚点。这是两者的示例:

variables:
  EVERY_JOB_VARIABLE: "hello world"

.anchor_retry:
  retry:
    max: 2
    when:
      - runner_system_failure
      - stuck_or_timeout_failure
      - scheduler_failure
      - stale_schedule
      - unknown_failure

build:
  extends: .anchor_retry
  script:
    - echo $EVERY_JOB_VARIABLE # prints "hello world"

review:
  extends: .anchor_retry
  script:
    - echo $EVERY_JOB_VARIABLE # prints "hello world"