.gitlab-ci.yml 3.08 KiB
# docs: https://docs.gitlab.com/ee/user/infrastructure/iac/terraform_state.html#get-started-using-gitlab-ci
image: busybox:latest
variables:
TF_ROOT_ELASTIC: ${CI_PROJECT_DIR}/manifests/elastic
TF_ROOT_MAGENTO: ${CI_PROJECT_DIR}/manifests/magento
cache:
- key: elastic
paths:
- ${TF_ROOT_ELASTIC}/.terraform
- key: magento
paths:
- ${TF_ROOT_MAGENTO}/.terraform
check-elastic:
stage: test
tags:
- docker
image:
name: registry.gitlab.com/gitlab-org/terraform-images/stable:latest
entrypoint: [""]
variables:
TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/elastic
TF_VAR_ec_apikey: $EC_API_KEY
script: |-
cd $TF_ROOT_ELASTIC
gitlab-terraform init
gitlab-terraform validate
gitlab-terraform fmt -check
gitlab-terraform plan
gitlab-terraform plan-json
artifacts:
name: plan
paths:
- ${TF_ROOT_ELASTIC}/plan.cache
reports:
terraform: ${TF_ROOT_ELASTIC}/plan.json
check-magento:
stage: test
tags:
- docker
image:
name: registry.gitlab.com/gitlab-org/terraform-images/stable:latest
entrypoint: [""]
variables:
TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/magento
TF_VAR_ec_apikey: $EC_API_KEY
TF_VAR_project_id: $GCP_PROJECT_ID
GCP_SA_GITLAB: $GCP_SA_GITLAB
script: |-
cd $TF_ROOT_MAGENTO
echo $GCP_SA_GITLAB > gcp-sa.json
gitlab-terraform init
gitlab-terraform validate
gitlab-terraform fmt -check
gitlab-terraform plan
gitlab-terraform plan-json
artifacts:
name: plan
paths:
- ${TF_ROOT_MAGENTO}/plan.cache
reports:
terraform: ${TF_ROOT_MAGENTO}/plan.json
apply-elastic:
stage: deploy