在预定流水线中,仅在gitlab-ci.yml文件中触发单个阶段的GitLab CI/CD。

4
我想从包含许多阶段的yml文件中运行gitlab中的单个阶段。 我不想将其添加到每个阶段以避免运行所有阶段。
except:
    refs:
      - schedules
3个回答

1
您可以使用以下内容仅在计划任务上运行该阶段。
build-app:
  stage: build-app
  only:
    - schedules

1
如果您不想在每个作业中添加 except,请使用 only 代替。

https://docs.gitlab.com/ee/ci/yaml/#onlyexcept-advanced

下面是一个带有变量的示例:

only_with_variable:
  script: ls -la
  only:
    variables:
      - $VAR == "1234"

之后,如果您安排了一个流水线,您可以选择为其添加变量。

enter image description here

在这个例子中,你只需要添加一个值为1234的VAR变量。

但是其他阶段仍然会运行。是的,当我们推送提交时,流水线不会触发指定“仅计划”的作业,但是当我们安排流水线运行时,它仍然会运行其他作业和具有“仅计划”选项的作业。 - Tzvetlin Velev
只能使用变量。在您的日程安排中,您可以设置此变量! - Sergio Tanaka
你能详细说明一下吗? - Tzvetlin Velev
2
正确,但是yaml文件中定义的其他作业仍将在计划管道中运行。我试图只运行一个特定阶段。因此,如果我有一个测试阶段和一个计划作业阶段,测试阶段仍将与变量匹配时的一个一起在计划管道中运行。 - Tzvetlin Velev
你可以使用多个变量和多个时间表...只需将它们组合起来找到最佳选项。 - Sergio Tanaka

1

不需要为每个任务显式定义except标签,只需将其定义为anchor

.job_template: &job_definition
  except:
    refs:
      - schedules

test1:
  <<: *job_definition
  script:
    - test1 project

1
这不是同一件事吗?我正在寻找一种方法,不需要将来添加的每个新阶段都必须将其添加到其YML配置部分。 - Tzvetlin Velev

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接