如何在 gitlab 作业中注入依赖项来运行 terraform?

问题描述 投票:0回答:1

我有一个带有 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
 ....
...
terraform gitlab gitlab-ci
1个回答
0
投票

根据官方文档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"

结果:

job1 job2

这里是存储库,供您参考:

https://gitlab.com/meysam81/before-script-demo/-/pipelines

© www.soinside.com 2019 - 2024. All rights reserved.