首页 > 解决方案 > Gitlab ci 仅在带有发布标签的 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

标签: gitlab-ci

解决方案


作业“deploy-latest”仅在分支是主分支并且已被标记的情况下运行。

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


推荐阅读