在Gitlab CI中是否有任何唯一编号可以用作詹金斯中使用的内部版本号。我开始了解变量“ CI_PIPELINE_IID”,但是这个变量的问题是,它会为所有分支更新,并且每个分支都没有这样的变量。
答案 0 :(得分:4)
我们使用变量 $CI_PIPELINE_IID
解决了同样的问题,其定义为
当前管道的项目级 IID(内部 ID)。此 ID 仅在当前项目中是唯一的。
和詹金斯的$BUILD_NUMBER
很相似
另见https://docs.gitlab.com/ee/ci/variables/predefined_variables.html#variables-reference
答案 1 :(得分:2)
CI_COMMIT_SHA
或CI_COMMIT_SHORT_SHA
似乎是最佳的候选者,因为它们为您提供了从其构建的提交的引用。
例如,如果您要将其用作docker image标签,请使用
docker build . -t myapp:$CI_COMMIT_SHA
请注意,早期版本的Gitlab(版本8.x)使用CI_BUILD_TAG
更多有关以下变量:https://docs.gitlab.com/ee/ci/variables/predefined_variables.html#variables-reference
答案 2 :(得分:0)
您可以检查其他任何ID“ CI variables”是否适合您的情况:
CI_JOB_ID
9.0全部GitLab CI在内部使用的当前作业的唯一ID。CI_PIPELINE_ID
8.10全部GitLab CI在内部使用的当前管道的唯一ID(一个I)CI_PROJECT_ID
全部GitLab CI内部使用的当前项目的唯一ID。CI_RUNNER_ID
8.10 0.5使用的跑步者的唯一ID 答案 3 :(得分:0)
是的,在许多情况下这都是合理的要求。有人曾经发布过它,请参阅:https://gitlab.com/gitlab-org/gitlab-ce/issues/50675。但到目前为止,似乎还没有添加。