Gitlab Artifact 在分支之间传递
Gitlab Artifact passing between branches
我正在寻找正确或可用的方法来处理和存储工件
我正在使用 Gitlab CI/CD 作为我的 terraform 规划和部署方法。我有两个阶段:plan
和 apply
.
在“计划”阶段,它为每个项目目录创建计划文件,最后它存储每个项目目录的工件。所以创建的计划文件,以及包含 运行.
目录列表的文件
为了让用户应用更改,他们必须提交合并请求,一旦获得批准,它将针对主分支。
这个 运行 阶段 apply
,理想情况下我希望它做的是拉下工件并应用。
除了因为现在它是主分支上的管道 运行ning 之外,没有任何工件可以拉下来。
curl -k --location --header "PRIVATE-TOKEN:super_secret_token" "https://gitlab.my_domain.tld/api/v4/projects/2/jobs/artifacts/my_source_branch_name/download?job=terraform_plan" -o artifact.zip
用预定义变量中的 $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME 替换 my_source_branch_name。除非分支被删除,因为它是合并请求中的一个选项,它不能将其拉下。
所以我唯一的赌注是做一些像外部工件存储这样的事情,我可以在其中将分支名称作为文件夹结构传递?除非我可以用 Gitlab 做点什么?
或者我可能只是在想法上偏离了方向。
只是确认一下,这是我的回答:
Also, is generic_packages an option to use for you ? – Nicolas Pepinster
使用通用包时,我使用了一个 ID 系统,其中包括分支名称和作为管道 ID 的版本号(以获得唯一性)。然后在管道中,我可以 CURL 从 repo 中提取包,按版本号排序,并在我的 apply
阶段下拉“最新”(不是最新的)。
我正在寻找正确或可用的方法来处理和存储工件
我正在使用 Gitlab CI/CD 作为我的 terraform 规划和部署方法。我有两个阶段:plan
和 apply
.
在“计划”阶段,它为每个项目目录创建计划文件,最后它存储每个项目目录的工件。所以创建的计划文件,以及包含 运行.
目录列表的文件为了让用户应用更改,他们必须提交合并请求,一旦获得批准,它将针对主分支。
这个 运行 阶段 apply
,理想情况下我希望它做的是拉下工件并应用。
除了因为现在它是主分支上的管道 运行ning 之外,没有任何工件可以拉下来。
curl -k --location --header "PRIVATE-TOKEN:super_secret_token" "https://gitlab.my_domain.tld/api/v4/projects/2/jobs/artifacts/my_source_branch_name/download?job=terraform_plan" -o artifact.zip
用预定义变量中的 $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME 替换 my_source_branch_name。除非分支被删除,因为它是合并请求中的一个选项,它不能将其拉下。
所以我唯一的赌注是做一些像外部工件存储这样的事情,我可以在其中将分支名称作为文件夹结构传递?除非我可以用 Gitlab 做点什么?
或者我可能只是在想法上偏离了方向。
只是确认一下,这是我的回答:
Also, is generic_packages an option to use for you ? – Nicolas Pepinster
使用通用包时,我使用了一个 ID 系统,其中包括分支名称和作为管道 ID 的版本号(以获得唯一性)。然后在管道中,我可以 CURL 从 repo 中提取包,按版本号排序,并在我的 apply
阶段下拉“最新”(不是最新的)。