gpt4 book ai didi

gitlab-ci:动态工件名称

转载 作者:行者123 更新时间:2023-12-03 19:37:01 29 4
gpt4 key购买 nike

我正在运行 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提供文件名时,变量呈现为空。
  • 有没有办法使用动态工件名称?
  • 是否有任何原因也从未在我的(空/已跟踪)中复制此工件 downloads文件夹?
  • 上面的过程实际上会获取一个.zip本地文件。有没有办法(虽然我设置了 1 周的到期时间)让每个作业删除旧工件并只保留最新的工件/zip 文件?
  • 最佳答案

    例如,如果您使用类似 CI_JOB_ID 的内容CI_JOB_NAME您可以为每个作业设置动态工件名称。您可以在 https://docs.gitlab.com/ee/ci/yaml/README.html#artifacts-name 中定义变量组合获取阶段、作业或管道的动态工件名称。

    通常在作业中,git lab 会压缩路径中指定的任何内容并将其上传到运行器管理器,以便下一个作业可以从运行器管理器下载工件。如果作业失败,您不能将任何工件上传到其他作业。做一个 find .并检查所需的目录是否在那里。您可以使用 when无论是否失败,都可以选择继续管道。见 https://docs.gitlab.com/ee/ci/yaml/README.html#artifacts-when

    是的,你可以在你的计时器过期神器。见 https://docs.gitlab.com/ee/ci/yaml/README.html#artifacts-expire_in

    关于gitlab-ci:动态工件名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47282754/

    29 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com