gitlab ci:动态工件名称

gitlab ci:动态工件名称,gitlab,gitlab-ci,gitlab-ci-runner,Gitlab,Gitlab Ci,Gitlab Ci Runner,我正在运行一个gitlab ci作业,该作业将从远程服务器本地获取一个文件,大致如下所示: retrieve_docs: stage: fetch_docs image: debian:jessie script: - ssh $USERNAME@$SERVER /perform/some/work - INSTFILE=$(ssh $USERNAME@$SERVER bash -c 'find /root -iname "somepattern*

我正在运行一个
gitlab ci
作业,该作业将从远程服务器本地获取一个文件,大致如下所示:

retrieve_docs:
    stage: fetch_docs
    image: debian:jessie
    script:
      - ssh $USERNAME@$SERVER /perform/some/work
      - INSTFILE=$(ssh $USERNAME@$SERVER bash -c 'find /root -iname "somepattern*" | tail -n 1 | xargs readlink -f')
      - echo "Will retrieve locally $INSTFILE"
      - scp $USERNAME@$SERVER:$INSTFILE .
      - BASEFILE=$(basename $INSTFILE)
      - mv $BASEFILE downloads/
    artifacts:
      name: $BASEFILE
      paths:
        - downloads/
但是,上面的作业定义似乎不起作用,因为在提供文件名时,
BASEFILE
变量呈现为空

  • 有没有一种方法可以使用动态工件名称

  • 是否有理由该工件也从未复制到我的(空/跟踪)
    下载文件夹中

  • 上述过程实际上将在本地获取
    .zip
    文件。有没有一种方法(尽管我已经将过期时间设置为1周)让每个作业删除旧工件并只保留最新的工件/zip文件


例如,如果您使用类似于
CI\u JOB\u ID
CI\u JOB\u NAME
的内容,则每个作业都可以有动态工件名称。您可以在中定义变量组合,以获取阶段、作业或管道的动态工件名称

通常在作业中,git lab压缩路径中指定的内容并将其上载到runner manager,以便下一个作业可以从runner manager下载工件。如果作业失败,则无法将任何工件上载到其他作业。执行
查找。
并检查是否存在所需的目录。您可以使用
when
选项继续执行管道,无论管道是否出现故障。看

是的,您可以在您的计时器上使artifcat过期。看