GitLab CI - 如果变量存在设置变量

Sim*_*n I 5 gitlab gitlab-ci gitlab-ci-runner

如果构建是标签的构建,我想为 Docker 映像构建设置破折号加上 repo 标签,如果不是,我会解释...

如果我只想设置标签(如果存在),这将是微不足道的,因为这可以工作:

build-nginx:
  stage: build-nginx
  script:
    - command docker build -t $CI_REGISTRY_IMAGE:nginx$CI_COMMIT_TAG .
    - command docker push $CI_REGISTRY_IMAGE:nginx$CI_COMMIT_TAG
Run Code Online (Sandbox Code Playgroud)

registry.example.com/image:nginx如果没有标签,如果有的话,这可以创建registry.example.com/image:nginx1.0,但是我如何才能命名图像registry.example.com/image:nginx-1.0(用破折号),我必须检查标签变量是否已设置,否则我最终会得到图像registry.example.com/image:nginx-如果未设置标记变量,则调用。

Abu*_*ifa 6

通常我会做类似的事情

- if [ -z "$CI_COMMIT_TAG" ]; then docker build -t $CI_REGISTRY_IMAGE:nginx$CI_COMMIT_TAG .; else docker push $CI_REGISTRY_IMAGE:nginx-$CI_COMMIT_TAG; fi
Run Code Online (Sandbox Code Playgroud)