目前,我在 Gitlab 中的构建和测试作业需要一段时间,对于不需要构建的特定更改(例如配置文件),我想跳过它们。我并不总是知道这些是什么文件,所以我不想使用 rules:changes
。我试图通过将我的分支命名为“skip_build”并在合并到 master 后直接进入部署步骤来做到这一点。由于我的设置需要成功构建才能合并,因此我添加了一个什么都不做的虚拟构建步骤。我面临的问题是,一旦分支合并到 master,我就不能再依赖分支名称来跳过构建和测试步骤。到目前为止,这是我的配置:
build:
image: myimage
stage: build
script:
- build stuff
rules:
- if: '$CI_COMMIT_BRANCH == "skip_build"'
when: never
- if: '$CI_MERGE_REQUEST_EVENT_TYPE == "detached"'
when: never
- when: always
dummy-build:
image: busybox
stage: build
script:
- echo "do nothing"
rules:
- if: '$CI_COMMIT_BRANCH == "skip_build"'
test:
image: myimage
stage: test
script:
- test stuff
rules:
- if: '$CI_COMMIT_BRANCH == "skip_build"'
when: never
- if: '$CI_COMMIT_REF_NAME == "master"'
when: on_success
allow_failure: false
当我从分支创建 MR 时,这很好用,但是一旦我将它合并到 master 中,我相信 CI_COMMIT_BRANCH
现在是“master”,并且构建和测试步骤都会在那个管道。有没有办法在合并之前引用分支的名称,或者可能是另一种完全完成此操作的方法,而不使用分支名称?