Gitlab CI Docker tag 去除版本 v

今天收到一個需求是希望把 Docker tag 上面的 v 移除掉,因為我們開發通常用 npm 做版本管理並且自動上 tag,所以 tag 就會像是 v1.0.0

因此在使用 GitLab CI 的 CI_COMMIT_TAG 變數就會有 v,那要如何可以把這個 v 移除掉呢?其實我們可以在變數的地方用 shell 指令把第一個字元移除,就可以達成我們要的功能了實驗一下功能

$ version=v1.0.0
$ echo $version
v1.0.0

$ tag=${version:1}
$ echo $tag
1.0.0

得到了以上的結果就可以把它實作在 .gitlab-ci.yml 上面拉!

stages:
  - build

build:
  image: docker:stable
  stage: build
  script:
    - tag=${CI_COMMIT_TAG:1}
    - docker pull $REPOSITORY_URL:latest || true
    - docker build
      --cache-from $REPOSITORY_URL:latest
      --tag $REPOSITORY_URL:$tag
      --tag $REPOSITORY_URL:latest .
    - docker push $REPOSITORY_URL:$tag
    - docker push $REPOSITORY_URL:latest
  only:
    - tags

以上就是這次的實驗結果,希望對大家有幫助!