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