1+ name : Show Terraform State
2+
3+ on :
4+ workflow_dispatch :
5+ inputs :
6+ environment :
7+ type : choice
8+ description : Environment to show state for
9+ options :
10+ - staging
11+ - production
12+
13+ jobs :
14+ show-state :
15+ name : Show Terraform state for ${{ github.event.inputs.environment }}
16+ runs-on : ubuntu-latest
17+ environment : ${{ github.event.inputs.environment }}
18+ env :
19+ TF_VAR_AWS_REGION : ${{ vars.AWS_REGION }}
20+ TF_VAR_APP_NAME : ${{ vars.APP_NAME }}
21+ TF_VAR_APP_ENVIRONMENT : ${{ github.event.inputs.environment }}
22+ # Database
23+ TF_VAR_DATALAYER_PG_USER : ${{ secrets.DATALAYER_PG_USER }}
24+ TF_VAR_DATALAYER_PG_PASSWORD : ${{ secrets.DATALAYER_PG_PASSWORD }}
25+ # Hasura API
26+ TF_VAR_GREEN_DATALAYER_HASURA_ADMIN_SECRET : ${{ secrets.DATALAYER_HASURA_ADMIN_SECRET }}
27+ TF_VAR_BLUE_DATALAYER_HASURA_ADMIN_SECRET : ${{ secrets.DATALAYER_HASURA_ADMIN_SECRET }}
28+ # Coingecko API
29+ TF_VAR_GREEN_COINGECKO_API_KEY : ${{ secrets.COINGECKO_API_KEY }}
30+ TF_VAR_BLUE_COINGECKO_API_KEY : ${{ secrets.COINGECKO_API_KEY }}
31+ steps :
32+ - name : Check out github repository
33+ uses : actions/checkout@v4
34+ with :
35+ fetch-depth : 1
36+
37+ - name : Check if user is an admin
38+ uses : ./.github/actions/check-admin
39+ with :
40+ github_token : ${{ secrets.GITHUB_TOKEN }}
41+
42+ - name : Setup Terraform
43+ uses : hashicorp/setup-terraform@v1
44+ with :
45+ terraform_version : ${{ vars.TERRAFORM_VERSION }}
46+ terraform_wrapper : false
47+
48+ - name : Set up AWS CLI
49+ uses : aws-actions/configure-aws-credentials@v2
50+ with :
51+ aws-access-key-id : ${{ secrets.AWS_ACCESS_KEY }}
52+ aws-secret-access-key : ${{ secrets.AWS_SECRET_ACCESS_KEY }}
53+ aws-region : ${{ vars.AWS_REGION }}
54+
55+ - name : Terraform Init
56+ working-directory : deployment/environments/${{github.event.inputs.environment}}
57+ run : |
58+ terraform init \
59+ -backend-config="bucket=${{ vars.APP_NAME }}-terraform-state" \
60+ -backend-config="key=${{ vars.APP_NAME }}-${{github.event.inputs.environment}}-state" \
61+ -backend-config="region=${{ vars.AWS_REGION }}" \
62+ -backend-config="encrypt=true"
63+
64+ - name : Show Terraform State
65+ working-directory : deployment/environments/${{github.event.inputs.environment}}
66+ run : |
67+ echo "=== Terraform State Information ==="
68+ echo "Current State:"
69+ terraform show
70+
71+ echo -e "\n=== Terraform Outputs ==="
72+ terraform output
73+
74+ echo -e "\n=== Current Deployment State ==="
75+ echo "Deployment State: $(terraform output -raw deployment_state)"
76+ echo "Active Deployment: $(terraform output -raw active_deployment)"
77+
78+ echo -e "\n=== API Gateway Information ==="
79+ echo "API Gateway URL: $(terraform output -raw api_gateway_url)"
0 commit comments