Skip to content

Commit a138613

Browse files
committed
Final testing
1 parent 6297029 commit a138613

File tree

2 files changed

+53
-24
lines changed

2 files changed

+53
-24
lines changed

β€Ž.github/workflows/deploy.yml

Lines changed: 53 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -30,59 +30,88 @@ jobs:
3030
runs-on: ubuntu-latest
3131

3232
steps:
33-
# βœ… Checkout Repository
33+
# Checkout Repository
3434
- name: Checkout repository
3535
uses: actions/checkout@v4
3636

37-
# βœ… Configure AWS Credentials
37+
# Configure AWS Credentials
3838
- name: Configure AWS credentials
3939
uses: aws-actions/configure-aws-credentials@v2
4040
with:
4141
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
4242
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
4343
aws-region: ${{ env.AWS_REGION }}
44+
aws-output: json
4445

45-
# βœ… Install Terraform
46+
# Install Terraform
4647
- name: Setup Terraform
4748
uses: hashicorp/setup-terraform@v3
4849

49-
# βœ… Terraform Init & Workspace
50+
# Determin Stage - dev/prod/qa defaults to dev
51+
# - name: Determine Stage
52+
# id: set_stage
53+
# run: |
54+
# if [[ "${GITHUB_REF}" == "refs/tags/deploy-dev" ]]; then
55+
# echo "STAGE=dev" >> $GITHUB_ENV
56+
# elif [[ "${GITHUB_REF}" == "refs/tags/deploy-qa" ]]; then
57+
# echo "STAGE=qa" >> $GITHUB_ENV
58+
# elif [[ "${GITHUB_REF}" == "refs/tags/deploy-prod" ]]; then
59+
# echo "STAGE=prod" >> $GITHUB_ENV
60+
# elif [[ "${GITHUB_EVENT_NAME}" == "workflow_dispatch" ]]; then
61+
# echo "STAGE=${{ github.event.inputs.stage }}" >> $GITHUB_ENV
62+
# else
63+
# echo "STAGE=dev" >> $GITHUB_ENV # default fallback
64+
# fi
65+
66+
# echo "πŸ› οΈ Deployment stage: $STAGE"
67+
68+
# Terraform Init & Workspace
5069
- name: Terraform Init & Workspace
5170
working-directory: ${{ env.TF_WORKING_DIR }}
5271
run: |
5372
terraform init
5473
terraform workspace select ${{ github.event.inputs.stage }} || terraform workspace new ${{ github.event.inputs.stage }}
5574
56-
# βœ… Terraform Apply
75+
# Terraform Apply
5776
- name: Terraform Apply
5877
working-directory: ${{ env.TF_WORKING_DIR }}
5978
run: |
6079
terraform apply -var-file="${{ github.event.inputs.stage }}_config.tfvars" -auto-approve \
6180
-var "stage=${{ github.event.inputs.stage }}"
6281
63-
# βœ… Get EC2 IPs & S3 Bucket
82+
# Output and inject EC2 IPs & S3 Bucket name to Github Env
6483
- name: Get EC2s Public IPs & S3 Bucket Name
6584
working-directory: ${{ env.TF_WORKING_DIR }}
6685
run: |
67-
echo "INSTANCE_IP=$(terraform output -raw instance_public_ip)" >> $GITHUB_ENV
68-
echo "VERIFIER_IP=$(terraform output -raw verifier_instance_public_ip)" >> $GITHUB_ENV
69-
echo "S3_BUCKET=$(terraform output -raw s3_log_bucket)" >> $GITHUB_ENV
70-
71-
echo "πŸ“¦ App IP: $INSTANCE_IP"
72-
echo "πŸ”‘ Verifier IP: $VERIFIER_IP"
73-
echo "πŸͺ£ S3 Bucket: $S3_BUCKET"
74-
echo "πŸ“¦ App IP: ${{ env.INSTANCE_IP }}"
75-
echo "πŸ”‘ Verifier IP: ${{ env.VERIFIER_IP }}"
76-
echo "πŸͺ£ S3 Bucket: ${{ env.S3_BUCKET }}"
77-
78-
79-
# βœ… Wait for App Initialization
86+
echo "Injecting terraform outputs to github environment"
87+
# echo "INSTANCE_IP=$(terraform output -raw instance_public_ip)" >> $GITHUB_ENV
88+
# echo "VERIFIER_IP=$(terraform output -raw verifier_instance_public_ip)" >> $GITHUB_ENV
89+
# echo "S3_BUCKET=$(terraform output -raw s3_log_bucket)" >> $GITHUB_ENV
90+
# Assign to local shell variables
91+
INSTANCE_IP=$(terraform output -raw instance_public_ip)
92+
VERIFIER_IP=$(terraform output -raw verifier_instance_public_ip)
93+
S3_BUCKET=$(terraform output -raw s3_log_bucket)
94+
95+
# Write to GitHub Actions ENV for later steps
96+
echo "INSTANCE_IP=$INSTANCE_IP" >> $GITHUB_ENV
97+
echo "VERIFIER_IP=$VERIFIER_IP" >> $GITHUB_ENV
98+
echo "S3_BUCKET=$S3_BUCKET" >> $GITHUB_ENV
99+
100+
# Echo both for current step & confirmation
101+
echo "πŸ“¦ App IP (Shell): $INSTANCE_IP"
102+
echo "πŸ”‘ Verifier IP (Shell): $VERIFIER_IP"
103+
echo "πŸͺ£ S3 Bucket (Shell): $S3_BUCKET"
104+
echo "πŸ“¦ App IP (Env): ${{ env.INSTANCE_IP }}"
105+
echo "πŸ”‘ Verifier IP (Env): ${{ env.VERIFIER_IP }}"
106+
echo "πŸͺ£ S3 Bucket (Env): ${{ env.S3_BUCKET }}"
107+
108+
# Wait for App Initialization
80109
- name: Wait for App Initialization
81110
run: |
82111
echo "⏳ Waiting 90 seconds for EC2 instances to initialize..."
83112
sleep 90
84113
85-
# βœ… Validate App Health
114+
# Validate App Health
86115
- name: Validate App Health
87116
run: |
88117
echo "🌐 Checking app health at http://${{ env.INSTANCE_IP }}:80"
@@ -99,15 +128,15 @@ jobs:
99128
echo "❌ App failed health check"
100129
exit 1
101130
102-
# βœ… Verify Logs in S3
131+
# Verify Logs in S3
103132
- name: Verify Logs in S3
104133
run: |
105134
echo "πŸ“¦ Checking for logs in S3 bucket: $S3_BUCKET"
106135
aws s3 ls s3://$S3_BUCKET/system/cloud-init.log || { echo "❌ system logs missing"; exit 1; }
107136
aws s3 ls s3://$S3_BUCKET/app/my-app.log || { echo "❌ app logs missing"; exit 1; }
108137
echo "βœ… Logs found in S3 bucket"
109138
110-
# βœ… Optional Destroy (disabled by default)
139+
# Destroy (disabled by default)
111140
- name: Destroy infrastructure
112141
if: always()
113142
working-directory: ${{ env.TF_WORKING_DIR }}
@@ -117,9 +146,9 @@ jobs:
117146
terraform destroy -var-file="${{ github.event.inputs.stage }}_config.tfvars" -auto-approve \
118147
-var "stage=${{ github.event.inputs.stage }}"
119148
120-
# βœ… Optional Cleanup Terraform Workspace
149+
# Cleanup Terraform Workspace
121150
- name: Cleanup Terraform Workspace
122-
if: always() # Enable if you want to cleanup workspace
151+
if: always()
123152
working-directory: ${{ env.TF_WORKING_DIR }}
124153
run: |
125154
terraform workspace select default

β€Žscripts/deploy.sh

100755100644
File mode changed.

0 commit comments

Comments
Β (0)