访问先前运行的同一作业的工件

muf*_*fel 5 gitlab gitlab-ci

我想使用 Gitlab CI/CD 进行部署。相同的代码库用于部署到不同的环境,并且需要一个statefile(环境状态)进行部署,需要在部署后更新,并在部署前获取。由于它是一条关键信息,我希望它成为构建工件。

考虑我的部署管道和不同的作业deploy-env1deploy-env2. 是否有可能以某种方式定义工作

  • 将文件添加state.dat为构建工件(易于使用该artifacts选项)
  • 从最新版本的状态文件开始(上次在当前分支上成功运行相同的作业)
  • 如果之前没有成功运行,则从一个空文件开始

由于目前我似乎无法将作业配置为依赖于自身,您知道是否有办法实现这一点吗?

sec*_*tor 5

不,没有实现的功能来处理这个问题。

但是有一个可能的解决方法,我还没有尝试过,还有一个 3rd 方解决方案。

解决方法: 您可以自己构建一个脚本,该脚本使用Gitlab 作业 API为您的分支下载最新的工件。Gitlab 文档中的示例

另一种解决方法: 除了使用 API 下载之外,您还可以使用工件和缓存对象的组合

干净的解决方案: 将设置一个 Gitlab 不提供的工件服务。您将在那里部署您的文件,然后它会再次从同一服务中检索。此类程序是ArtifactoryNexus