Gitlab CI-每个分支的唯一编号

时间:2019-03-12 04:33:46

标签: gitlab jenkins-pipeline gitlab-ci

在Gitlab CI中是否有任何唯一编号可以用作詹金斯中使用的内部版本号。我开始了解变量“ CI_PIPELINE_IID”,但是这个变量的问题是,它会为所有分支更新,并且每个分支都没有这样的变量。

4 个答案:

答案 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_SHACI_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。但到目前为止,似乎还没有添加。