GitLab 仅手动而非自动运行管道

Ana*_*mar 5 gitlab gitlab-ci gitlab-ci-runner

我的 GitLab 管道在每次推送时自动执行,我想手动运行管道而不是每次推送。

管道文档:https : //docs.gitlab.com/ee/ci/yaml/#workflowrules

我在.gitlab-ci.yml 中试过这个

workflow:
  rules:
    - when: manual    # Error: workflow:rules:rule when unknown value: manual
Run Code Online (Sandbox Code Playgroud)

小智 21

这是我想出的解决方案:

workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "web"'
      when: always
    - when: never
Run Code Online (Sandbox Code Playgroud)

这指定它仅在您单击 Web UI 中的“运行管道”按钮时运行。在所有其他情况下,它不会被触发。


M07*_*M07 18

我们可以将您的作业定义为仅在 Gitlab 上执行。Web 选项用于通过使用 GitLab UI 中的运行管道按钮(从项目的 CI/CD > 管道部分)创建的管道。

only:
   - web
Run Code Online (Sandbox Code Playgroud)


Oum*_*mri 5

如文档中所述,我认为您应该指定一个条件,告诉 Gitlab 不要专门针对推送事件运行管道,如下所示:

workflow:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "push"'
      when: never  # Prevent pipeline run for push event
    - when: always # Run pipeline for all other cases
Run Code Online (Sandbox Code Playgroud)

好吧,这都是来自官方文档,但我希望这可以帮助你:)