GitLab 运行 管道只能手动而不是自动
GitLab run pipeline only manually and not automatically
我的 GitLab 管道在每次推送时自动执行,我想手动 运行 管道而不是在每次推送时执行。
管道文档:https://docs.gitlab.com/ee/ci/yaml/#workflowrules
我试过这个
.gitlab-ci.yml
workflow:
rules:
- when: manual # Error: workflow:rules:rule when unknown value: manual
如文档中所述,我认为您应该指定一个条件,告诉 Gitlab 不要 运行 专门针对推送事件的管道,如下所示:
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "push"'
when: never # Prevent pipeline run for push event
- when: always # Run pipeline for all other cases
好吧,这全部来自官方文档,但我希望这对您有所帮助:)
我们可以将您的作业定义为仅在 Gitlab 上执行。
Web 选项用于通过使用 GitLab UI 中的 运行 管道按钮创建的管道,来自项目的 CI/CD > 管道部分。
only:
- web
这是我想出的解决方案:
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "web"'
when: always
- when: never
这指定它只会 运行 如果您单击 Web UI 中的“运行 管道”按钮。在所有其他情况下,它不会被触发。
我的 GitLab 管道在每次推送时自动执行,我想手动 运行 管道而不是在每次推送时执行。
管道文档:https://docs.gitlab.com/ee/ci/yaml/#workflowrules
我试过这个 .gitlab-ci.yml
workflow:
rules:
- when: manual # Error: workflow:rules:rule when unknown value: manual
如文档中所述,我认为您应该指定一个条件,告诉 Gitlab 不要 运行 专门针对推送事件的管道,如下所示:
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "push"'
when: never # Prevent pipeline run for push event
- when: always # Run pipeline for all other cases
好吧,这全部来自官方文档,但我希望这对您有所帮助:)
我们可以将您的作业定义为仅在 Gitlab 上执行。 Web 选项用于通过使用 GitLab UI 中的 运行 管道按钮创建的管道,来自项目的 CI/CD > 管道部分。
only:
- web
这是我想出的解决方案:
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "web"'
when: always
- when: never
这指定它只会 运行 如果您单击 Web UI 中的“运行 管道”按钮。在所有其他情况下,它不会被触发。