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

69 lines
2.2 KiB
YAML
Raw Normal View History

2024-04-26 06:06:01 -04:00
name: Update TFState
description: "Update the terraform state artifact."
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
skipDeletion:
description: "Don't try to delete the artifact before updating. You should only use this if you know that no artifact exists."
default: "false"
required: false
runs:
using: "composite"
steps:
- name: Check if tfstate should be deleted
if: always() && inputs.skipDeletion == 'false'
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' && inputs.skipDeletion == 'false'
2024-04-26 06:06:01 -04:00
uses: ./.github/actions/artifact_delete
with:
name: ${{ inputs.name }}
workflowID: ${{ inputs.runID }}
- name: Prepare terraform state folders
if: always()
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