Dar*_*ann 5 gitlab-ci gitlab-ci-runner
构建时,我需要在 gitlab-ci.yml 中上次推送的 git commit 的标签值。在构建过程中,我构建了一个 docker 镜像,在构建之后,我想推送这些镜像,其标签与我的 git commit 相同。到目前为止,我的理解是环境变量$CI_COMMIT_TAG应该完成这项工作。然而,当我$CI_COMMIT_TAG在 gitlab-ci.yml 中回显时,它只是空的。
这是我的 gitlab-ci.yml:
stages:
- build
build-dev:
stage: build
environment: development
only:
- master
tags:
- ms-doorman
script:
- echo $CI_COMMIT_TAG
Run Code Online (Sandbox Code Playgroud)
这里是启动作业的 git 命令。
$ git commit -am "test git tags"
$ git tag test-tag
$ git push --tags origin master
Run Code Online (Sandbox Code Playgroud)
fla*_*xel 10
我在 Gitlab 中发现了一个很好的问题,它很好地描述了这种行为:
当您将提交推送到 GitLab 时,它将启动一个没有 CI_BUILD_TAG 变量的管道。当您在此提交上创建标记并将此标记推送到 GitLab 时,将启动另一个管道(这次是标记,而不是提交)。在这种情况下,将出现 CI_BUILD_TAG。
也许您可以使用工作流:规则来避免错误。
only on tags:
rules:
- if: '$CI_COMMIT_TAG != null'
script:
- echo only on tags
- env
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7555 次 |
| 最近记录: |