Gitlab ci仅在具有发布标签的master上运行作业

时间:2020-03-17 12:14:21

标签: gitlab-ci

仅当设置了release标签时,我才想在master分支上构建docker映像。这是我的.gitlab.ci

build:
  rules:
    - if: '$CI_COMMIT_TAG != null && $CI_COMMIT_REF_NAME == "master"'
  script:
    - echo "Building $IMAGE:${CI_COMMIT_TAG}"

这不起作用,我合并到master和release标签,但是构建作业甚至没有开始。

我也尝试过only部分:

build:
  only:
    - master
    - tags
  script:
    - echo "Building $IMAGE:${CI_COMMIT_TAG}"

即使CI_COMMIT_TAG不存在,它也会每次运行。有没有办法仅在CI_COMMIT_TAG分支上存在master时才强制运行作业?

3 个答案:

答案 0 :(得分:1)

作业“deploy-latest”仅在分支为 master 且已被标记时运行。

deploy-latest:
  tags: [shell]
  stage: deploy
  script:
    - echo "whatever"
  only:
    - tags && master

答案 1 :(得分:0)

到目前为止,gitlab 中还没有针对此问题的正确构建解决方案。 为了跟踪正确解决方案的开发并保持更新的工作解决方法,我创建了:Gitlab CI: Run Pipeline job only for tagged commits that exist on protected branches

答案 2 :(得分:-1)

使用

mask = np.ones(shape=(3, h, w))
for _ in range(6):
        x_coordinate = np.random.randint(0, w)
        y_coordinate = np.random.randint(0, h)
        mask[:, x_coordinate: x_coordinate + 56, y_coordinate: y_coordinate + 56] = 0

您只能在设置(或按下)标签后运行作业。如果您有build: only: - tags ,它将在master的每次提交上运行。如果没有master,它只会在设置标签后运行。