我们需要以某种方式将动态运行时参数传递给管道任务。 例如,以下参数对于每次任务运行都会有所不同。 该APPROVAL参数用于更改和发布号,以便任务可以在为审计目的而创建的Terraform资源上对其进行标记。
曾经在网上搜索了一段时间但没有找到解决办法的运气,这是否有可能在大厅渠道或最佳实践中实现?
- task: plan-terraform
file: ci/concourse-jobs/pipelines/tasks/terraform/plan-terraform.yaml
params:
ENV: dev
APPROVAL: test
CHANNEL: Developement
GITLAB_KEY: ((gitlab_key))
REGION: eu-west-2
TF_FOLDER: terraform/squid
input_mapping:
ci: ci
tf: squid
output_mapping:
plan: plan
tags:
- dev
答案 0 :(得分:0)
来自https://concourse-ci.org/tasks.html: 理想情况下,任务是纯函数:给定相同的输入集,它应该总是以相同的输出成功或总是失败。
动态参数会打破合同并从同一组输入产生不同的输出。您能否输入批准?然后,您将保持构建的可追溯性。如果是(文件)输入,则可以将其加载到变量中:
APPROVAL=$(cat <filename>)