5050
5151 deploy :
5252 needs : build
53- runs-on : ubuntu-latest
53+ runs-on : ubuntu-22.04
5454 environment : cloud-api-keys
5555 steps :
5656 - name : Checkout code
@@ -68,16 +68,146 @@ jobs:
6868 # echo "Installing jq for JSON parsing..."
6969 # sudo apt-get install jq -y
7070
71+ # # ==================================== STEP 3 ====================================== #
72+ # # Step 3: Check if instance is available for RLFT in Azure and deploy (if available)
73+ # - name: Check Azure VM container availability
74+ # # Handles necessary environment secrets
75+ # env:
76+ # AZURE_USERNAME: ${{ secrets.AZURE_USERNAME }}
77+ # AZURE_PASSWORD: ${{ secrets.AZURE_PASSWORD }}
78+ # AZURE_TENANT: ${{ secrets.AZURE_TENANT }}
79+ # AZURE_RESOURCE_GROUP: ${{ secrets.AZURE_RESOURCE_GROUP }}
80+ # AZURE_VM_INSTANCE: ${{ secrets.AZURE_VM_INSTANCE }}
81+ # AZURE_VMUSER: ${{ secrets.AZURE_VMUSER }}
82+ # # This will run a script to check VM instance availability.
83+ # run: |
84+ # # --------------- AZURE CLOUD LOGIN ---------------
85+ # echo "Azure Cloud login..."
86+ # az login --service-principal -u $AZURE_USERNAME -p $AZURE_PASSWORD --tenant $AZURE_TENANT > /dev/null 2>&1
87+
88+ # # --------- FUNCTION TO AZURE VM HEALTH -----------
89+ # check_health() {
90+ # vm_state=$(az vm get-instance-view \
91+ # -g "$AZURE_RESOURCE_GROUP" \
92+ # -n "$AZURE_VM_INSTANCE" \
93+ # --query "instanceView.statuses[?starts_with(code,'PowerState/')].displayStatus" \
94+ # -o tsv 2>/dev/null)
95+ # echo "VM state: $vm_state"
96+ # }
97+
98+ # # --------- FUNCTION TO START INSTANCE ------------
99+ # start_instance() {
100+ # local sleep_time=$1
101+ # echo "Waiting $sleep_time seconds before starting VM..."
102+ # sleep "$sleep_time"
103+
104+ # echo "Starting VM..."
105+ # az vm start -g "$AZURE_RESOURCE_GROUP" -n "$AZURE_VM_INSTANCE"
106+
107+ # echo "Waiting 60 seconds for VM to initialize..."
108+ # sleep 60
109+ # check_health
110+ # }
111+
112+ # # --------- FUNCTION TO CAPTURE ERROR -------------
113+ # capture_err() {
114+ # echo "✗ Azure state is unknown"
115+ # echo "Returned state: $vm_state"
116+ # echo "azure_status=unknown" >> "$GITHUB_ENV"
117+ # exit 0
118+ # }
119+
120+ # # ----------- FUNCTION TO VM RESOURCE -------------
121+ # check_resource() {
122+ # local script_to_run="$1"
123+ # resource=$(az vm run-command invoke \
124+ # -g "$AZURE_RESOURCE_GROUP" \
125+ # -n "$AZURE_VM_INSTANCE" \
126+ # --command-id RunShellScript \
127+ # --scripts "$script_to_run")
128+ # }
129+
130+ # # ----------------- MAIN FUNCTION -----------------
131+ # # VM States
132+ # VM_DEALLOCATING="VM deallocating"
133+ # VM_DEALLOCATED="VM deallocated"
134+ # VM_RUNNING="VM running"
135+ # VM_STARTING="VM starting"
136+
137+ # # ------------ CHECK AZURE VM HEALTH --------------
138+ # check_health
139+
140+ # # ------------- CONDITIONAL CHECKS ----------------
141+ # case "$vm_state" in
142+ # "$VM_DEALLOCATING")
143+ # start_instance 120
144+ # ;;
145+ # "$VM_DEALLOCATED")
146+ # start_instance 60
147+ # if [ "$vm_state" = "$VM_RUNNING" ]; then
148+ # echo "✓ VM started successfully"
149+ # echo "azure_status=available" >> "$GITHUB_ENV"
150+ # elif [ "$vm_state" = "$VM_STARTING" ]; then
151+ # echo "⚠ VM still starting..."
152+ # echo "azure_status=starting" >> "$GITHUB_ENV"
153+ # else
154+ # capture_err
155+ # fi
156+ # ;;
157+ # "$VM_STARTING")
158+ # echo "⚠ VM is starting, waiting..."
159+ # sleep 60
160+ # check_health
161+ # if [ "$vm_state" = "$VM_RUNNING" ]; then
162+ # echo "✓ VM started successfully"
163+ # echo "azure_status=available" >> "$GITHUB_ENV"
164+ # elif [ "$vm_state" = "$VM_STARTING" ]; then
165+ # echo "⚠ VM still starting..."
166+ # echo "azure_status=starting" >> "$GITHUB_ENV"
167+ # else
168+ # capture_err
169+ # fi
170+ # ;;
171+ # "$VM_RUNNING")
172+ # echo "✓ VM already running"
173+ # echo "Checking VM resources..."
174+ # check_docker_instance_script=$(tail -n +2 scripts/check_docker_instance.sh)
175+ # check_resource "$check_docker_instance_script"
176+ # if [[ "$resource" = "OTHER_APPS_RUNNING" || "$resource" = "VERIGEN_RUNNING" ]]; then
177+ # echo "✗ VM resource busy"
178+ # echo "azure_status=busy" >> "$GITHUB_ENV"
179+ # exit 0
180+ # else
181+ # echo "✓ VM is available"
182+ # echo "azure_status=available" >> "$GITHUB_ENV"
183+ # fi
184+ # ;;
185+ # *)
186+ # capture_err
187+ # ;;
188+ # esac
189+
71190 - name : Run script as VM user
72191 uses : appleboy/ssh-action@v0.1.9
192+ env :
193+ GITHUB_REPO_URI : ${{ secrets.AZURE_VMIP }}
194+ GITHUB_REPO_BRANCH : ${{ secrets.AZURE_VMIP }}
195+ APIKEYS_FILE : ${{ secrets.APIKEYS_FILE }}
196+ GCP_SECRETS_FILE : ${{ secrets.GCP_SECRETS_FILE }}
197+ GITHUB_REPO_URL : " https://${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git"
198+ GITHUB_BRANCH : " enhance-v1"
199+ if : env.azure_status == 'success'
73200 with :
74201 host : ${{ secrets.AZURE_VMIP }}
75202 username : ${{ secrets.AZURE_VMUSER }}
76203 key : ${{ secrets.AZURE_SSH_KEY }}
77204 script : |
78- whoami > logs/rlft_setup.log
205+ mkdir -p ~/src
206+ cd ~/src
207+
208+ git clone "$GITHUB_REPO_URL" > logs/rlft_setup.log
209+
79210
80- # # ==================================== STEP 3 ====================================== #
81211 # # Step 3: Check if instance is available for RLFT in Azure and deploy (if available)
82212 # - name: Check Azure VM container availability
83213 # # Handles necessary environment secrets
0 commit comments