mattupstate/angular-pipeline-example

View on GitHub
bin/ci-release

Summary

Maintainability
Test Coverage
#!/bin/bash

if [[ -z ${GIT_COMMIT_SHA+x} ]]; then
  echo 'GIT_COMMIT_SHA is not set'
  exit 1
fi

set -x

TERRAFORM_DIR=etc/terraform

terraform-apply() {
  docker run --rm \
    --env AWS_DEFAULT_REGION \
    --env AWS_ACCESS_KEY_ID \
    --env AWS_SECRET_ACCESS_KEY \
    --env FASTLY_API_KEY \
    --env DNSIMPLE_TOKEN \
    --env DNSIMPLE_ACCOUNT \
    --workdir /work \
    --volume ${PWD}/${TERRAFORM_DIR}:/work/${TERRAFORM_DIR} \
    --entrypoint /bin/sh \
    hashicorp/terraform \
      -c 'terraform init '${TERRAFORM_DIR}' && terraform apply -auto-approve -var target_version='${GIT_COMMIT_SHA}' '${TERRAFORM_DIR}
}

on-terraform-apply() {
  docker run --rm \
    --env SENTRY_AUTH_TOKEN \
    --env SENTRY_ORG \
    --volume ${PWD}:/work \
    getsentry/sentry-cli releases deploys ${GIT_COMMIT_SHA} new -e production
}

on-terraform-apply-error() {
  exit 1
}

terraform-apply && on-terraform-apply || on-terraform-apply-error