@@ -11,31 +11,38 @@ jobs:
1111 - name : Checkout code
1212 uses : actions/checkout@v4
1313
14- - name : Deploy to Compute Engine Instance
14+ - name : Set Variables
1515 run : |
16- # Define variables
17- INSTANCE_NAME="test"
18- ZONE="us-central1-c" # Replace with your instance's zone
19- SSH_USER="weberqbot" # Replace with the user for the instance
20- SSH_KEY="${{ secrets.GCP_SSH_PRIVATE_KEY }}" # Add private SSH key to secrets
21- DEPLOY_SCRIPT="Script.sh" # Script to run on the instance
22-
23- # Write SSH key to a file
16+ echo "INSTANCE_NAME=test" >> $GITHUB_ENV
17+ echo "ZONE=us-central1-c" >> $GITHUB_ENV
18+ echo "SSH_USER=weberqbot" >> $GITHUB_ENV
19+ echo "INSTANCE_IP=34.68.69.253" >> $GITHUB_ENV
20+ echo "DEPLOY_SCRIPT=Script.sh" >> $GITHUB_ENV
21+ shell : bash
22+
23+ - name : Prepare SSH Key
24+ env :
25+ SSH_KEY : ${{ secrets.GCP_SSH_PRIVATE_KEY }}
26+ run : |
27+ echo "Writing private SSH key..."
2428 echo "$SSH_KEY" > private_key
2529 chmod 600 private_key
2630
27- # Generate public key
28- ssh-keygen -y -f private_key > private_key.pub
31+ echo "Generating public key from private key..."
32+ ssh-keygen -y -f private_key > private_key.pub || { echo "SSH key generation failed"; exit 1; }
2933
34+ - name : Setup Known Hosts
35+ run : |
36+ echo "Scanning and adding instance to known_hosts..."
3037 mkdir -p ~/.ssh
38+ ssh-keyscan -H $INSTANCE_IP >> ~/.ssh/known_hosts || { echo "Failed to add instance to known_hosts"; exit 1; }
3139
32- # Add the instance to known_hosts to prevent host key verification issues
33- ssh-keyscan -H 34.68.69.253 >> ~/.ssh/known_hosts
34-
35-
36-
37- # Connect to the instance and execute the script
38- scp -i private_key $DEPLOY_SCRIPT "$SSH_USER@34.68.69.253:~/"
39- ssh -i private_key "$SSH_USER@34.68.69.253" "bash ~/Script.sh"
40+ - name : Copy Deploy Script
41+ run : |
42+ echo "Copying deploy script ($DEPLOY_SCRIPT) to instance..."
43+ scp -i private_key "$DEPLOY_SCRIPT" "$SSH_USER@$INSTANCE_IP:~/" || { echo "SCP failed"; exit 1; }
4044
41-
45+ - name : Execute Deploy Script
46+ run : |
47+ echo "Executing deploy script on remote instance..."
48+ ssh -i private_key "$SSH_USER@$INSTANCE_IP" "bash ~/$DEPLOY_SCRIPT" || { echo "Remote execution failed"; exit 1; }
0 commit comments