From 96d56178897f96d470d23e313b5555412cfb7f4e Mon Sep 17 00:00:00 2001 From: Anton Belodedenko <2033996+ab77@users.noreply.github.com> Date: Tue, 2 Jul 2024 11:04:44 -0700 Subject: [PATCH] Only delete your (matrix) own test instance change-type: patch --- .github/workflows/tests.yml | 44 +++++++++++++++++++++++++++++++++++-- 1 file changed, 42 insertions(+), 2 deletions(-) diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml index dd1bc7a..020b4e0 100644 --- a/.github/workflows/tests.yml +++ b/.github/workflows/tests.yml @@ -1011,7 +1011,7 @@ jobs: # always destroy test EC2 instances even if the workflow is cancelled - name: destroy AWS test device(s) - if: always() + if: always() && matrix.target == 'balena-public-pki' run: | set -ue @@ -1024,15 +1024,55 @@ jobs: --instance-ids ${{ steps.balena-sut.outputs.instance_id }} fi + with_backoff aws ec2 describe-instances \ + --filters Name=tag:GITHUB_SHA,Values=${GITHUB_SHA}-tests \ + Name=tag:GITHUB_RUN_ID,Values=${GITHUB_RUN_ID}-tests \ + Name=tag:GITHUB_RUN_NUMBER,Values=${GITHUB_RUN_NUMBER}-tests \ + Name=tag:GITHUB_RUN_NUMBER,Values=${GITHUB_RUN_NUMBER}-tests \ + Name=tag:GITHUB_RUN_ATTEMPT,Values=${GITHUB_RUN_ATTEMPT}-tests \ + | jq -r .Reservations[].Instances[].InstanceId \ + | xargs --no-run-if-empty aws ec2 terminate-instances --instance-ids + + env: + AWS_DEFAULT_REGION: ${{ vars.AWS_REGION || 'us-east-1' }} + + # always destroy test EC2 instances even if the workflow is cancelled + - name: destroy AWS test device(s) + if: always() && matrix.target == 'compose-private-pki' + run: | + set -ue + + [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x + + source src/balena-tests/functions + if [[ -n '${{ steps.ubuntu-sut.outputs.instance_id }}' ]]; then with_backoff aws ec2 terminate-instances \ --instance-ids ${{ steps.ubuntu-sut.outputs.instance_id }} fi - with_backoff aws ec2 describe-instances --filters Name=tag:GITHUB_SHA,Values=${GITHUB_SHA}-tests \ + with_backoff aws ec2 describe-instances \ + --filters Name=tag:GITHUB_SHA,Values=${GITHUB_SHA}-tests \ + Name=tag:GITHUB_RUN_ID,Values=${GITHUB_RUN_ID}-tests \ + Name=tag:GITHUB_RUN_NUMBER,Values=${GITHUB_RUN_NUMBER}-tests \ + Name=tag:GITHUB_RUN_NUMBER,Values=${GITHUB_RUN_NUMBER}-tests \ + Name=tag:GITHUB_RUN_ATTEMPT,Values=${GITHUB_RUN_ATTEMPT}-tests \ | jq -r .Reservations[].Instances[].InstanceId \ | xargs --no-run-if-empty aws ec2 terminate-instances --instance-ids + env: + AWS_DEFAULT_REGION: ${{ vars.AWS_REGION || 'us-east-1' }} + + # always destroy stale test EC2 instances + - name: destroy stale AWS test device(s) + if: always() + run: | + set -ue + + [[ '${{ vars.VERBOSE }}' =~ on|On|Yes|yes|true|True ]] && set -x + + source src/balena-tests/functions + stale_instances=$(mktemp) aws ec2 describe-instances --filters \ Name=tag:Name,Values=open-balena-tests \