所以我运行了一个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\/.*$
但它并没有触发。请帮忙。
答案 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].*$/
那就是,有点棒。 :)