Files
yml/pipelines/terraform.yml

92 lines
1.8 KiB
YAML

stages:
- plan
- apply
- destroy
include:
- project: 'developerdurp/yml'
ref: main
file:
- 'jobs/terraform.yml'
format:
stage: .pre
allow_failure: false
extends: .terraform_fmt
validate:
stage: .pre
allow_failure: false
extends: .terraform_validate
plan-development:
stage: plan
environment:
name: development
variables:
ARGUMENTS: -var-file=terraform.tfvars
ENVIRONMENT_NAME: development
allow_failure: false
extends: .terraform_plan
needs: ["validate","format"]
plan-production:
stage: plan
environment:
name: production
variables:
ARGUMENTS: -var-file=terraform.tfvars
ENVIRONMENT_NAME: production
allow_failure: false
extends: .terraform_plan
needs: ["validate","format"]
apply-development:
stage: apply
environment:
name: development
variables:
ARGUMENTS: -var-file=terraform.tfvars
ENVIRONMENT_NAME: development
allow_failure: false
extends: .terraform_apply
rules:
- when: manual
apply-production:
stage: apply
environment:
name: production
variables:
ARGUMENTS: -var-file=terraform.tfvars
ENVIRONMENT_NAME: production
allow_failure: false
extends: .terraform_apply
rules:
- when: manual
destroy-development:
stage: destroy
environment:
name: development
variables:
ARGUMENTS: -var-file=terraform.tfvars
ENVIRONMENT_NAME: development
allow_failure: false
extends: .terraform_destroy
needs: ["apply-development"]
rules:
- when: manual
destroy-production:
stage: destroy
environment:
name: production
variables:
ARGUMENTS: -var-file=terraform.tfvars
ENVIRONMENT_NAME: production
allow_failure: false
extends: .terraform_destroy
needs: ["apply-production"]
rules:
- when: manual