我有以下gitlab-ci.yml
文件,使用jq处理器读取package.json
以动态设置工件文件夹的变量名称,类似于
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
答案 0 :(得分:2)
答案 1 :(得分:2)
这是 GitLab 的一个未决问题
Artifacts Filename Cannot Be Set with Dynamic Variables
我有一个项目变量定义了一个脚本中的 zip 文件的路径,我在 artifacts:paths 级别重用了该脚本。如果 artifacts:paths 实例完全无法分配,则链接问题会更加明显,但在我的情况下,它继承了与我工作中仅上面两行的值不同的值!