在gitlab-ci.yml上动态设置工件路径/文件夹结构

问题描述 投票:1回答:1

我有以下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
gitlab gitlab-ci gitlab-ci-runner
1个回答
1
投票

嗯,目前这是不可能的。 Manual说如下:

工件:name变量可以使用任何预定义变量。

也就是说,在您的脚本部分中没有设置变量可以使用该作业。

© www.soinside.com 2019 - 2024. All rights reserved.