Show Terraform State #1
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Show Terraform State | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| environment: | |
| type: choice | |
| description: Environment to show state for | |
| options: | |
| - staging | |
| - production | |
| jobs: | |
| show-state: | |
| name: Show Terraform state for ${{ github.event.inputs.environment }} | |
| runs-on: ubuntu-latest | |
| environment: ${{ github.event.inputs.environment }} | |
| env: | |
| TF_VAR_AWS_REGION: ${{ vars.AWS_REGION }} | |
| TF_VAR_APP_NAME: ${{ vars.APP_NAME }} | |
| TF_VAR_APP_ENVIRONMENT: ${{ github.event.inputs.environment }} | |
| #Database | |
| TF_VAR_DATALAYER_PG_USER: ${{ secrets.DATALAYER_PG_USER }} | |
| TF_VAR_DATALAYER_PG_PASSWORD: ${{ secrets.DATALAYER_PG_PASSWORD }} | |
| #Hasura API | |
| TF_VAR_GREEN_DATALAYER_HASURA_ADMIN_SECRET: ${{ secrets.DATALAYER_HASURA_ADMIN_SECRET }} | |
| TF_VAR_BLUE_DATALAYER_HASURA_ADMIN_SECRET: ${{ secrets.DATALAYER_HASURA_ADMIN_SECRET }} | |
| #Coingecko API | |
| TF_VAR_GREEN_COINGECKO_API_KEY: ${{ secrets.COINGECKO_API_KEY }} | |
| TF_VAR_BLUE_COINGECKO_API_KEY: ${{ secrets.COINGECKO_API_KEY }} | |
| steps: | |
| - name: Check out github repository | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 1 | |
| - name: Check if user is an admin | |
| uses: ./.github/actions/check-admin | |
| with: | |
| github_token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Setup Terraform | |
| uses: hashicorp/setup-terraform@v1 | |
| with: | |
| terraform_version: ${{ vars.TERRAFORM_VERSION }} | |
| terraform_wrapper: false | |
| - name: Set up AWS CLI | |
| uses: aws-actions/configure-aws-credentials@v2 | |
| with: | |
| aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY }} | |
| aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }} | |
| aws-region: ${{ vars.AWS_REGION }} | |
| - name: Terraform Init | |
| working-directory: deployment/environments/${{github.event.inputs.environment}} | |
| run: | | |
| terraform init \ | |
| -backend-config="bucket=${{ vars.APP_NAME }}-terraform-state" \ | |
| -backend-config="key=${{ vars.APP_NAME }}-${{github.event.inputs.environment}}-state" \ | |
| -backend-config="region=${{ vars.AWS_REGION }}" \ | |
| -backend-config="encrypt=true" | |
| - name: Show Terraform State | |
| working-directory: deployment/environments/${{github.event.inputs.environment}} | |
| run: | | |
| echo "=== Terraform State Information ===" | |
| echo "Current State:" | |
| terraform show | |
| echo -e "\n=== Terraform Outputs ===" | |
| terraform output | |
| echo -e "\n=== Current Deployment State ===" | |
| echo "Deployment State: $(terraform output -raw deployment_state)" | |
| echo "Active Deployment: $(terraform output -raw active_deployment)" | |
| echo -e "\n=== API Gateway Information ===" | |
| echo "API Gateway URL: $(terraform output -raw api_gateway_url)" |