Skip to content

Commit 2dd8a90

Browse files
committed
trial #2: check repo clone in VM
1 parent 8e1f34d commit 2dd8a90

File tree

1 file changed

+133
-3
lines changed

1 file changed

+133
-3
lines changed

.github/workflows/main.yaml

Lines changed: 133 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,7 @@ jobs:
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

Comments
 (0)