From d667638a59edae328f7bf47d0b62bac0a44cbe8e Mon Sep 17 00:00:00 2001 From: Paul Cioanca Date: Wed, 25 Jan 2023 09:49:40 +0200 Subject: [PATCH] chore: terminate builder instance on job cancellation --- .github/workflows/ami-release.yml | 9 +++++++-- amazon-arm64.pkr.hcl | 10 ++++++++-- 2 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ami-release.yml b/.github/workflows/ami-release.yml index a4cc842ec..c7449b3b0 100644 --- a/.github/workflows/ami-release.yml +++ b/.github/workflows/ami-release.yml @@ -18,9 +18,9 @@ jobs: - name: Build AMI run: | GIT_SHA=$(git rev-parse HEAD) - packer build -var "git-head-version=${GIT_SHA}" -var-file="development-arm.vars.pkr.hcl" -var-file="common.vars.pkr.hcl" amazon-arm64.pkr.hcl + packer build -var "git-head-version=${GIT_SHA}" -var "packer-execution-id=${GITHUB_RUN_ID}" -var-file="development-arm.vars.pkr.hcl" -var-file="common.vars.pkr.hcl" amazon-arm64.pkr.hcl - - name: Slack Notification + - name: Slack Notification on Failure if: ${{ failure() }} uses: rtCamp/action-slack-notify@v2 env: @@ -29,3 +29,8 @@ jobs: SLACK_COLOR: 'danger' SLACK_MESSAGE: 'Building Postgres AMI failed' SLACK_FOOTER: '' + + - name: Cleanup resources on build cancellation + if: ${{ cancelled() }} + run: | + aws ec2 describe-instances --filters "Name=tag:packerExecutionId,Values=${GITHUB_RUN_ID}" --query "Reservations[].Instances[].InstanceId" --output text | xargs -I {} aws ec2 terminate-instances --instance-ids {} diff --git a/amazon-arm64.pkr.hcl b/amazon-arm64.pkr.hcl index 949851037..0c189109c 100644 --- a/amazon-arm64.pkr.hcl +++ b/amazon-arm64.pkr.hcl @@ -82,6 +82,11 @@ variable "git-head-version" { default = "unknown" } +variable "packer-execution-id" { + type = string + default = "unknown" +} + # source block source "amazon-ebssurrogate" "source" { profile = "${var.profile}" @@ -129,8 +134,9 @@ source "amazon-ebssurrogate" "source" { } run_tags = { - creator = "packer" - appType = "postgres" + creator = "packer" + appType = "postgres" + packerExecutionId = "${var.packer-execution-id}" } run_volume_tags = { creator = "packer"