Caching gitlab ci Runner中具有不同到期时间的多个路径

Caching gitlab ci Runner中具有不同到期时间的多个路径,caching,gitlab-ci,gitlab-ci-runner,artifacts,Caching,Gitlab Ci,Gitlab Ci Runner,Artifacts,我在使用Gitlab CI分析阶段之间的构建目录时遇到问题 Gitlab CI在阶段之间擦除创建的构建工件,这看起来很奇怪。我试图在构建和测试阶段之间存储构建工件,但是构建阶段也有我想要保留的构建工件,以及运行下一阶段所需的构建工件 使用artifacts选项是否可以在不同的路径上有多个到期时间 我尝试了以下方法,只保留了路径的第二个定义(build/test*路径),而没有声明第一个路径(.dmg) artifacts: paths: - build/*.dmg e

我在使用Gitlab CI分析阶段之间的
构建
目录时遇到问题

Gitlab CI在阶段之间擦除创建的构建工件,这看起来很奇怪。我试图在构建和测试阶段之间存储构建工件,但是构建阶段也有我想要保留的构建工件,以及运行下一阶段所需的构建工件

使用
artifacts
选项是否可以在不同的路径上有多个到期时间

我尝试了以下方法,只保留了
路径的第二个定义(build/test*路径),而没有声明第一个
路径(.dmg)

  artifacts:
    paths:
    - build/*.dmg
    expire_in: 1 week
    paths:
    - build/test1
    - build/test2
    - build/test3
    expire_in: 15 mins

我尝试过使用
缓存
,但似乎无法正常工作。。。任何建议都将不胜感激

根据文档,这似乎是不可能的,但我需要做一些类似的事情,因此作为一种解决方法,我做了以下工作

在生成所有工件的构建阶段,我为所有工件设置了15分钟的到期时间,包括应该有不同到期时间的工件。在您的情况下,
build/*.dmg
。因此,我对构建部分的工件定义如下:

 artifacts:
    paths:
    - build/*.dmg
    - build/test1
    - build/test2
    - build/test3
    expire_in: 15 mins
之后,我在管道的下一阶段定义了两个作业。如果执行此操作,两个作业将同时运行。其中一个作业执行您最初为文件准备的操作:
build/test1
build/test2
build/test3
。管道这一阶段中的另一个作业在脚本部分实际上应该没有任何内容,可能类似于
echo“dummy job”
。但是,由于虚拟作业从上一个作业接收构建工件,我们可以使用它通过简单地使用相同的文件创建第二个工件,将到期时间从15分钟“更改”为一周,如下所示:

artifacts:
    paths:
    - build/*.dmg
    expire_in: 1 week

这是一个糟糕的解决方法,因为它复制了目标工件,因为我们将有一个到期15分钟,另一个到期1周。

感谢您的回答!你有没有可能提供更多关于这方面的信息?因此,第一份工作创建了一个虚拟阶段,然后进行构建的工作只有工件?我试图更好地解释我自己我希望我现在更加连贯,英语是我的第二语言