在GItLab中CI_APPLICATION_TAG定义在哪里?

时间:2019-06-25 03:38:35

标签: gitlab gitlab-ci-runner

我是GitLab Auto DevOps的新手。

我遇到了一些环境变量,分别是“ CI_APPLICATION_TAG”,“ CI_APPLICATION_REPOSITORY”,“ CI_COMMIT_REF_SLUG”。

  

我找不到他们的定义在哪里。有没有人可以帮助我?

2 个答案:

答案 0 :(得分:1)

您可以在gitlab-org/gitlab-ci-yml issue 50

中看到它们的运行情况
  

Auto DevOps中的Docker映像命名策略是通过auto_devops before_script开头附近的CI_APPLICATION_REPOSITORYCI_APPLICATION_TAG变量定义的。
  格式与我命名和标记图像的方式不同,但是内联导出语句使自定义变得很困难,因为脚本本身必须进行修改。

export CI_APPLICATION_REPOSITORY=$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG
export CI_APPLICATION_TAG=$CI_COMMIT_SHA

还有gitlab-org/gitlab-ce issue 53129

  

为在项目中构建Docker映像,GitLab CI提供了预定义变量CI_REGISTRY_IMAGE,该变量返回存储在与项目绑定的Container Registry中的映像的基本映像名称。

     

它可以与CI_COMMIT_REF_NAMECI_COMMIT_REF_SLUG一起用于图像标签。

     

Docker.gitlab-ci.yml template demonstrates在其构建作业脚本中。

- docker build --pull -t "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG" .
- docker push "$CI_REGISTRY_IMAGE:$CI_COMMIT_REF_SLUG"
     

GitLab Auto DevOps在其before_script中为图像名称和标签声明了两个局部变量。

export CI_APPLICATION_REPOSITORY=$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG
export CI_APPLICATION_TAG=$CI_COMMIT_SHA

使用:

  
      
  • CI_APPLICATION_REPOSITORY用于定义图像名称,并且
  •   
  • CI_APPLICATION_TAG(用于图片标签)
  •   

答案 1 :(得分:0)

来自https://gitlab.com/gitlab-org/gitlab-foss/blob/master/lib/gitlab/ci/templates/Jobs/Build.gitlab-ci.yml的片段

      if [[ -z "$CI_COMMIT_TAG" ]]; then
        export CI_APPLICATION_REPOSITORY=${CI_APPLICATION_REPOSITORY:-$CI_REGISTRY_IMAGE/$CI_COMMIT_REF_SLUG}
        export CI_APPLICATION_TAG=${CI_APPLICATION_TAG:-$CI_COMMIT_SHA}
      else
        export CI_APPLICATION_REPOSITORY=${CI_APPLICATION_REPOSITORY:-$CI_REGISTRY_IMAGE}
        export CI_APPLICATION_TAG=${CI_APPLICATION_TAG:-$CI_COMMIT_TAG}
      fi