首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >gitlab-ci:动态工件名称

gitlab-ci:动态工件名称
EN

Stack Overflow用户
提问于 2017-11-14 10:02:22
回答 1查看 7.1K关注 0票数 8

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

代码语言:javascript
运行
复制
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变量呈现为空。

  • 有没有一种使用动态工件名称的方法?
  • 这个工件也从未被复制到我的(空/跟踪) downloads文件夹中有什么原因吗?
  • 上面的进程实际上将在本地获取一个.zip文件。是否有一种方法(尽管我已经将到期时间设置为1周)让每个作业删除旧工件,只保留最新的工件/ zip文件?
EN

回答 1

Stack Overflow用户

发布于 2017-11-14 11:24:06

例如,如果您使用类似于CI_JOB_ID CI_JOB_NAME的东西,那么每个作业都可以有动态工件名称。您可以在https://docs.gitlab.com/ee/ci/yaml/README.html#artifacts-name中定义变量组合,以获得舞台、作业或管道的动态工件名称。

通常,在作业中,git实验室压缩路径中指定的任何内容,并将其上传到运行管理器,以便下一个作业可以从运行管理器下载工件。如果作业失败,则无法将任何工件上载到其他作业。做一个find .并检查是否有所需的脏东西在那里。您可以使用when选项继续对线,无论它是否失败。请参阅https://docs.gitlab.com/ee/ci/yaml/README.html#artifacts-when

是的,你可以在你的计时器上用完这只人造猫。请参阅in

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47282754

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档