标记发布时的Gitlab作业

时间:2015-10-23 12:53:06

标签: git gitlab git-tag gitlab-ci

所以我运行了一个Gitlab 8.1实例。一切(差不多)都按预期工作。我有部署和构建作业,当我合并到不同的分支时执行。

但每次我标记新版本的项目时,我都想创建一个tarball。但我似乎无法弄清楚触发那种工作所需的条件。

我在版本名称中标记版本(即v0.9.1-beta)。我在项目的.gitlab-ci.yml中有这个:

build_release:
  script:
    - composer update
    - cd ..
    - tar cvzf $CI_BUILD_REF_NAME.tar.gz kin
stage: build
except:
  - production
  - develop
  - ^enhancement\/.*$
  - ^feature\/.*$
  - ^bugfix\/.*$

但它并没有触发。请帮忙。

2 个答案:

答案 0 :(得分:3)

GitLab为您提供CI_BUILD_TAG环境变量。只需在脚本中添加一个测试,该测试仅在设置了该环境变量时才创建tarball

before_script:
  - ... Some before code ...

stage:
  stage: stage
  script:
    - if [ -z "${CI_BUILD_TAG}" ]; then echo "Cowardly refusing to package an un-tagged commit."; exit 0; fi
    - ... Script Code Continues if didn't exit ...

答案 1 :(得分:1)

我实际上找到了自己很好的解决方案。 鉴于我的所有发布标签都以' v'接着是我能够做到的一个数字:

release:
script:
  - [BUNCH OF CLEANUP, REMOVAL OF FILES, ETC]
  - tar cvzf [APPNAME]_$CI_BUILD_REF_NAME.tar.gz  
stage: build
only:
  - /v[0-9].*$/

那就是,有点棒。 :)