如何创建手动运行的 GitLab 管道作业?

Jon*_*ket 6 pipeline gitlab gitlab-ci

我想知道如何手动触发项目 CI 管道中的特定作业。由于只有一个 gitlab-ci.yml 文件,因此我可以定义许多作业来依次执行。但是,如果我想启动一个仅执行一项工作的手动 CI 管道该怎么办?据我了解,每次管道运行时,它将运行所有作业,除非我使用许多only类似的参数。例如,当我有这个简单的管道配置时:

stages:
    - build

build:
    stage: build
    script:
        - npm i
        - npm run build
        - echo "successful build"
Run Code Online (Sandbox Code Playgroud)

如果我只想运行一个echo运行简单echo "hello"脚本的作业,但手动运行它时执行此操作,我该怎么办?像这样的工作没有“触发点”,据我所知。这有可能吗?

感谢您的澄清!

Jon*_*ket 8

显然,解决方案非常简单,只需要when: manual在作业中添加一个参数即可:

echo:
    stage: echo
    script:
        - echo 'this is a manual job'
    when: manual
Run Code Online (Sandbox Code Playgroud)

完成后,可以在此处独立触发该作业: 在此输入图像描述

  • @phreed 你需要使用 GitLab 的 `rules` 语句。类似于 `- if $CI_BUILD_REF_NAME == "main" // when:always // - when: manual`,其中 `//` 是换行符。 (2认同)