我有一个带有 terraform 代码的项目,用于在 aws 中创建资源。我的 gitlab ci 文件(下面的示例)几乎没有工作。我想在每个作业之前运行 before_script 部分,即验证、应用。我怎样才能实现这个目标?
stages:
- validate
- plan
- apply
image:
name: terraform_image_path
before_script:
- export AWS_ACCESS_KEY=${AWS_ACCESS_KEY_ID}
- export AWS_SECRET_ACCESS_KEY=${AWS_SECRET_ACCESS_KEY}
- rm -rf .terraform
- terraform --version
- terraform init
validate:
stage: validate
script:
- terraform validate
plan:
stage: plan
script:
- terraform plan -out $Terraform_Plan
dependencies:
- validate
artifacts:
paths:
- $Terraform_Plan
apply:
stage: apply
script:
- terraform apply -input=false $Terraform_Plan
dependencies:
- plan
when: manual
....
...
根据官方文档1:
使用 before_script 定义一组命令,这些命令应在每个作业的脚本命令之前、但在恢复工件之后运行。
正如文档中所建议的那样。您的
before_script
将在任何定义的作业之前运行。
这是一个最小的工作示例:
before_script:
- echo "This is executed before each job"
job1:
script:
- echo "This is Job 1"
job2:
script:
- echo "This is Job 2"
结果:
这里是存储库,供您参考: