constellation/.github/actions/update_tfstate/action.yml

65 lines
2.1 KiB
YAML
Raw Normal View History

2024-04-26 06:06:01 -04:00
name: Update TFState
description: "Update the terraform state artifact. We use this to either delete an artifact if the e2e test was cleaned up successfully or to update the artifact with the latest terraform state."
2024-04-26 06:06:01 -04:00
inputs:
name:
2024-04-26 06:06:01 -04:00
description: "The name of the artifact that contains the tfstate."
required: true
runID:
description: "The ID of your current run (github.run_id)."
required: true
encryptionSecret:
description: "The encryption secret for the artifacts."
required: true
runs:
using: "composite"
steps:
- name: Check if uploaded tfstate can be deleted
if: always()
2024-04-26 06:06:01 -04:00
shell: bash
run: |
if [[ ! -d constellation-terraform ]] && [[ ! -d constellation-iam-terraform ]]; then
echo "DELETE_TF_STATE=true" >> "$GITHUB_ENV"
2024-04-26 06:06:01 -04:00
else
echo "DELETE_TF_STATE=false" >> "$GITHUB_ENV"
2024-04-26 06:06:01 -04:00
fi
- name: Delete tfstate artifact if necessary
if: always() && env.DELETE_TF_STATE == 'true'
2024-04-26 06:06:01 -04:00
uses: ./.github/actions/artifact_delete
with:
name: ${{ inputs.name }}
workflowID: ${{ inputs.runID }}
- name: Prepare left over terraform state folders
if: always() && env.DELETE_TF_STATE == 'false'
2024-04-26 06:06:01 -04:00
shell: bash
run: |
rm -rf to-zip/*
mkdir -p to-zip
2024-04-26 06:06:01 -04:00
to_upload=""
if [[ -d constellation-terraform ]]; then
cp -r constellation-terraform to-zip
rm -f to-zip/constellation-terraform/plan.zip
rm -rf to-zip/constellation-terraform/.terraform
to_upload+="to-zip/constellation-terraform"
2024-04-26 06:06:01 -04:00
fi
if [[ -d constellation-iam-terraform ]]; then
cp -r constellation-iam-terraform to-zip
rm -rf to-zip/constellation-iam-terraform/.terraform
to_upload+=" to-zip/constellation-iam-terraform"
2024-04-26 06:06:01 -04:00
fi
echo "TO_UPLOAD=$to_upload" >> "$GITHUB_ENV"
- name: Update tfstate
if: always() && env.TO_UPLOAD != ''
2024-04-26 06:06:01 -04:00
uses: ./.github/actions/artifact_upload
with:
name: ${{ inputs.name }}
path: >
${{ env.TO_UPLOAD }}
encryptionSecret: ${{ inputs.encryptionSecret }}
overwrite: true