在gitlab-ci.yml上动态设置工件路径/文件夹结构
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在gitlab-ci.yml上动态设置工件路径/文件夹结构相关的知识,希望对你有一定的参考价值。
我有以下gitlab-ci.yml
文件,使用package.json
处理器读取jq动态设置工件文件夹的变量名称,类似于
image: node:latest
stages:
- build
before_script:
## steps ignored for purpose of question
- export NAME_OF_ARTIFACT_FOLDER=$(cat package.json | jq -r .name)"_"$(cat package.json | jq -r .version)".zip"
- echo $NAME_OF_ARTIFACT_FOLDER ##prints the expected name here eg. myApp_1.0.0.zip
prod_build:
stage: build
script:
- echo $NAME_OF_ARTIFACT_FOLDER ##prints the expected name here eg. myApp_1.0.0.zip
- yarn run build
artifacts:
paths:
- dist/$NAME_OF_ARTIFACT_FOLDER ## this does not work
expire_in: 2 hrs
这里的问题是- dist/$NAME_OF_ARTIFACT_FOLDER
不起作用,不确定我是否遗漏了一些东西。
编辑
在对预期路径进行硬编码时,如下所示,它工作正常,这意味着文件夹名称有效,并且工件确实被正确识别,但在来自$NAME_OF_ARTIFACT_FOLDER
时不起作用
artifacts:
paths:
- dist/myApp_1.0.0.zip ##hardcoding the expected works just fine
expire_in: 2 hrs
答案
嗯,目前这是不可能的。 Manual说如下:
工件:name变量可以使用任何预定义变量。
也就是说,在您的脚本部分中没有设置变量可以使用该作业。
以上是关于在gitlab-ci.yml上动态设置工件路径/文件夹结构的主要内容,如果未能解决你的问题,请参考以下文章
如何创建一个工件,以便它可以在 .gitlab-ci.yml 中下载