Newer
Older
default:
image: registry.gitlab.com/gitlab-org/terraform-images/stable:latest
variables:
ANSIBLE_HOST_FILE_PATH: ${CI_PROJECT_DIR}/ansible/hosts.yaml
SCRIPTS_ROOT: ${CI_PROJECT_DIR}/scripts
TF_ROOT: ${CI_PROJECT_DIR}/terraform
TF_ADDRESS: ${CI_API_V4_URL}/projects/${CI_PROJECT_ID}/terraform/state/${TF_STATE_NAME}
TF_CACHE_KEY: default
before_script:
- cd ${TF_ROOT}
- export TF_VAR_SCW_ACCESS_KEY=${TF_VAR_SCW_ACCESS_KEY}
- export TF_VAR_SCW_SECRET_KEY=${TF_VAR_SCW_SECRET_KEY}
- export TF_VAR_SCW_PROJECT_ID=${TF_VAR_SCW_PROJECT_ID}
- export TF_VAR_INSTANCE_COUNT=${TF_VAR_INSTANCE_COUNT}
stage: build
script:
- gitlab-terraform plan
- gitlab-terraform plan-json
artifacts:
name: plan
paths:
- ${TF_ROOT}/plan.cache
reports:
terraform: ${TF_ROOT}/plan.json
stage: deploy
environment:
name: ${ENVIRONMENT}
script:
- gitlab-terraform apply
dependencies:
- plan
- ansible-playbook -i $ANSIBLE_ROOT/tasks/update.yaml --private-key ${SSH_KEY_PATH}
stage: destroy
environment:
name: ${ENVIRONMENT}
script: