Skip to content

Commit 7e43f60

Browse files
committed
chore: add show terraform state workflow
1 parent 748a198 commit 7e43f60

File tree

1 file changed

+79
-0
lines changed

1 file changed

+79
-0
lines changed
Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
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

Comments
 (0)