-
Notifications
You must be signed in to change notification settings - Fork 3
/
buildspec.yml
37 lines (36 loc) · 1.68 KB
/
buildspec.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
---
version: 0.2
phases:
install:
commands:
- make terraform/install
pre_build:
commands:
- export PATH=$HOME/bin:$PATH
- export TF_VAR_codebuild_id="${CODEBUILD_BUILD_ID}"
- export TF_VAR_aws_region="${AWS_DEFAULT_REGION}"
- terraform init -no-color -input=false # init terraform
- terraform plan -no-color -out=tfplan -input=false # plan terraform
build:
commands:
- terraform apply -no-color -parallelism=16 -input=false tfplan # apply terraform
post_build:
commands:
- ARTIFACT_PATH="$(terraform output -raw build_slug)"
- > # YAML folding syntax avoids interpreting the : as a map value
PARTITION="$(aws sts get-caller-identity --query Arn --out text | cut -d: -f2)"
- |
if [ "$PARTITION" = "aws-us-gov" ]; then
ARTIFACT_LOCATION="https://${AWS_DEFAULT_REGION}.console.amazonaws-us-gov.com/s3/buckets/${ARTIFACT_PATH}/"
else
ARTIFACT_LOCATION="https://s3.console.aws.amazon.com/s3/buckets/${ARTIFACT_PATH}/"
fi
- echo "ARTIFACT_LOCATION=${ARTIFACT_LOCATION}"
- terraform output -no-color | aws s3 cp - "s3://${ARTIFACT_PATH}/terraform_output.log" || true
- test -r $TF_LOG_PATH && aws s3 cp $TF_LOG_PATH "s3://${ARTIFACT_PATH}/terraform.log" || true
- test -r terraform.tfstate && aws s3 cp terraform.tfstate "s3://${ARTIFACT_PATH}/terraform.tfstate" || true
- |
if [ "${TF_DESTROY_AFTER_TEST}" = "true" ]; then # destroy resources
terraform destroy -no-color -input=false -auto-approve
fi
- echo "ARTIFACT_LOCATION=${ARTIFACT_LOCATION}"