stages: - plan - apply - destroy include: - project: 'developerdurp/yml' ref: main file: - 'jobs/terraform.yml' workflow: rules: - if: $CI_COMMIT_BRANCH changes: - terraform/** format: stage: .pre allow_failure: false extends: .terraform_fmt rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" when: always validate: stage: .pre allow_failure: false extends: .terraform_validate rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" when: always plan: stage: plan variables: ARGUMENTS: -var-file=terraform.tfvars allow_failure: false extends: .terraform_plan needs: ["validate","format"] rules: - if: $CI_PIPELINE_SOURCE == "merge_request_event" when: always apply: stage: apply variables: ARGUMENTS: -var-file=terraform.tfvars allow_failure: false extends: .terraform_apply rules: - when: manual destroy: stage: destroy variables: ARGUMENTS: -var-file=terraform.tfvars allow_failure: false extends: .terraform_destroy needs: ["apply"] rules: - when: manual