11name : Nightly IBM VM Provisioning
22
33on :
4- schedule :
5- - cron : ' 0 0 * * *' # Midnight UTC
4+ workflow_call :
5+ inputs :
6+ VM_CLOUD_INIT_CONFIG_LOCATION :
7+ required : true
8+ type : string
9+ secrets :
10+ VM_CONFIG :
11+ required : true
12+ IBM_CLOUD_API_KEY :
13+ required : true
14+ IBM_COS_WRITER_CREDENTIALS :
15+ required : true
16+ SLACK_NIGHTLY_RESULTS_URL :
17+ required : true
618 workflow_dispatch :
719
820permissions :
@@ -29,12 +41,12 @@ jobs:
2941
3042 - name : Mask and export VM config from JSON secret
3143 env :
32- IBM_WARP_VM_CONFIG : ${{ secrets.IBM_WARP_VM_CONFIG }}
44+ VM_CONFIG : ${{ secrets.VM_CONFIG }}
3345 run : |
3446 # Mask non-empty values
35- jq -r 'to_entries[] | select(.value != "") | "::add-mask::\(.value)"' <<<"${IBM_WARP_VM_CONFIG }"
47+ jq -r 'to_entries[] | select(.value != "") | "::add-mask::\(.value)"' <<<"${VM_CONFIG }"
3648 # Append KEY=VALUE lines to GITHUB_ENV
37- jq -r 'to_entries[] | "\(.key)=\(.value)"' <<<"${IBM_WARP_VM_CONFIG }" >>"$GITHUB_ENV"
49+ jq -r 'to_entries[] | "\(.key)=\(.value)"' <<<"${VM_CONFIG }" >>"$GITHUB_ENV"
3850
3951
4052 - name : Authenticate with IBM Cloud
@@ -57,14 +69,15 @@ jobs:
5769 - name : Create user-data with secrets
5870 env :
5971 SLACK_NIGHTLY_RESULTS_URL : ${{ secrets.SLACK_NIGHTLY_RESULTS_URL }}
72+ VM_CLOUD_INIT_CONFIG_LOCATION : ${{ inputs.VM_CLOUD_INIT_CONFIG_LOCATION }}
6073 run : |
6174 # Mask sensitive values
6275 [ -n "${SLACK_NIGHTLY_RESULTS_URL:-}" ] && echo "::add-mask::$SLACK_NIGHTLY_RESULTS_URL"
6376 export SLACK_NIGHTLY_RESULTS_URL
6477 export AWS_ACCESS_KEY_ID AWS_SECRET_ACCESS_KEY WARP_LOGS_BUCKET IBM_COS_ENDPOINT
6578
6679 # Use envsubst to replace variables in the config
67- envsubst < .github/ibm-warp-runner-config.yaml > /tmp/ibm-warp -runner-config-with-secrets.yaml
80+ envsubst < ${VM_CLOUD_INIT_CONFIG_LOCATION} > /tmp/ibm-vm -runner-config-with-secrets.yaml
6881
6982 - name : Provision IBM VM
7083 run : |
8093 "${SUBNET_ID}" \
8194 --image "${IMAGE_ID}" \
8295 --sgs "${SECURITY_GROUP_ID}" \
83- --user-data @/tmp/ibm-warp -runner-config-with-secrets.yaml \
96+ --user-data @/tmp/ibm-vm -runner-config-with-secrets.yaml \
8497 > /dev/null 2>&1
8598 then
8699 echo "❌ Failed to provision IBM VM"
@@ -125,6 +138,6 @@ jobs:
125138 if : always()
126139 run : |
127140 # Remove temporary user-data file
128- rm -f /tmp/ibm-warp -runner-config-with-secrets.yaml
141+ rm -f /tmp/ibm-vm -runner-config-with-secrets.yaml
129142 # Logout from IBM Cloud
130143 ibmcloud logout > /dev/null 2>&1 || true
0 commit comments