Skip to content

Commit 1208e4f

Browse files
committed
testing workflows 1
1 parent d4c8f4c commit 1208e4f

File tree

1 file changed

+26
-38
lines changed

1 file changed

+26
-38
lines changed

scripts/deploy.sh

Lines changed: 26 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -1,104 +1,92 @@
11
#!/bin/bash
22

3-
set -e # Exit on error
43

5-
# Check for environment argument
4+
# ----------------------------
5+
# ✅ Input Validation
6+
# ----------------------------
67
if [ -z "$1" ]; then
78
echo "[Error] Usage: $0 <environment>"
89
exit 1
910
fi
1011

11-
# ----------------------------
12-
# ✅ Path Setup
13-
# ----------------------------
1412
ENV="$1"
1513
ENV_LOWER=$(echo "$ENV" | tr '[:upper:]' '[:lower:]')
1614

15+
# ----------------------------
16+
# ✅ Paths
17+
# ----------------------------
1718
SCRIPT_DIR="$(dirname "$(realpath "$0")")"
1819
ROOT_DIR="$(realpath "$SCRIPT_DIR/..")"
1920
TERRAFORM_DIR="$ROOT_DIR/terraform"
2021
LOGS_DIR="$ROOT_DIR/mylogs"
2122
CONFIG_FILE="${ENV_LOWER}_config.tfvars"
2223

2324
# ----------------------------
24-
# ✅ Terraform Apply
25+
# ✅ Terraform: App EC2
2526
# ----------------------------
26-
cd "$TERRAFORM_DIR" || {
27-
echo "[Error] Failed to change directory to Terraform folder."
28-
exit 1
29-
}
30-
27+
cd "$TERRAFORM_DIR"
3128
echo "[+] Initializing Terraform..."
3229
terraform init
3330

34-
echo "[+] Applying configuration for environment: $ENV"
31+
echo "[+] Applying config for environment: $ENV"
3532
terraform apply -var-file="$CONFIG_FILE" -auto-approve
3633

37-
echo "[+] Waiting 30 seconds for app to deploy in EC2 instance..."
34+
echo "[+] Waiting for EC2 instance to boot..."
3835
sleep 30
3936

4037
RAW_INSTANCE_IP=$(terraform output -raw instance_public_ip)
4138
echo "[+] Instance Public IP: $RAW_INSTANCE_IP"
4239

43-
echo -e "\n[+] Testing app on http://$RAW_INSTANCE_IP:80\n"
44-
curl "http://$RAW_INSTANCE_IP:80"
45-
echo -e "\n"
40+
echo "[+] Testing app at: http://$RAW_INSTANCE_IP"
41+
curl -s "http://$RAW_INSTANCE_IP:80" || echo "[Warning] App not responding yet."
4642

4743
# ----------------------------
48-
#Deploy Log Verifier EC2
44+
#Terraform: Log Verifier EC2
4945
# ----------------------------
50-
echo "[+] Deploying Log Verification EC2 instance..."
46+
echo "[+] Deploying log verifier EC2..."
5147
terraform apply -var-file="$CONFIG_FILE" -target=aws_instance.log_verifier -auto-approve
5248

5349
VERIFIER_IP=$(terraform output -raw verifier_instance_public_ip)
54-
echo "[+] Verified Public IP: $VERIFIER_IP"
50+
echo "[+] Verifier Public IP: $VERIFIER_IP"
5551

5652
# ----------------------------
5753
# ✅ Wait for Logs to Sync
5854
# ----------------------------
59-
echo "[+] Waiting 100 seconds for log sync (S3 → EC2)..."
55+
echo "[+] Waiting 100s for EC2-2 to sync logs from S3..."
6056
sleep 100
6157

6258
# ----------------------------
63-
# ✅ Setup SSH Key Path
59+
# ✅ Setup SSH Key
6460
# ----------------------------
6561
if [ -n "$GITHUB_ACTIONS" ]; then
6662
PRIVATE_KEY_PATH="$ROOT_DIR/ec2_key.pem"
6763
else
68-
PRIVATE_KEY_PATH="/Users/default/CS/DevOps/AWS/ssh-key-ec2.pem" # Change for your local setup
64+
PRIVATE_KEY_PATH="$HOME/.ssh/your-local-ec2-key.pem" # Change this locally
6965
fi
7066

7167
# ----------------------------
72-
#SCP Logs from Verifier EC2
68+
#Pull Logs from Verifier EC2
7369
# ----------------------------
74-
echo "[+] Checking SSH access..."
70+
echo "[+] Checking SSH connection..."
7571
ssh -i "$PRIVATE_KEY_PATH" -o StrictHostKeyChecking=no -q ubuntu@$VERIFIER_IP "echo 'SSH OK'" || {
76-
echo "[❌] SSH failed. Check key or user."
72+
echo "[❌] SSH connection failed!"
7773
exit 1
7874
}
7975

80-
echo "[+] Pulling logs to: $LOGS_DIR"
76+
echo "[+] Pulling logs from EC2-2..."
8177
mkdir -p "$LOGS_DIR"
8278
scp -i "$PRIVATE_KEY_PATH" -o StrictHostKeyChecking=no -r ubuntu@$VERIFIER_IP:/mylogs/* "$LOGS_DIR/"
8379

8480
# ----------------------------
85-
# ✅ Re-Test Application (optional)
81+
# ✅ Re-test app (Optional)
8682
# ----------------------------
87-
echo "[+] Retesting application..."
88-
curl "http://$RAW_INSTANCE_IP:80"
89-
echo -e "\n"
83+
echo "[+] Rechecking application availability..."
84+
curl -s "http://$RAW_INSTANCE_IP:80" || echo "[Warning] App still not responding."
9085

9186
# ----------------------------
92-
#GitHub Output Export
87+
#Export Outputs to GitHub Actions
9388
# ----------------------------
9489
if [ -n "$GITHUB_ACTIONS" ]; then
9590
echo "verifier_ip=$VERIFIER_IP" >> "$GITHUB_OUTPUT"
9691
echo "instance_ip=$RAW_INSTANCE_IP" >> "$GITHUB_OUTPUT"
9792
fi
98-
99-
# ----------------------------
100-
# ❌ Destroy Step (Optional)
101-
# ----------------------------
102-
# echo "Terraform destroy will run after 5 minutes..."
103-
# sleep 120
104-
# terraform destroy -var-file="$CONFIG_FILE" -auto-approve

0 commit comments

Comments
 (0)