
























@@ -57,6 +57,10 @@ jobs:
5757 echo "could not read required Blacksmith metadata" >&2
5858 exit 1
5959 fi
60+ if ! jq -e 'type == "number"' <<<"$installation_model_id" >/dev/null; then
61+ echo "invalid Blacksmith installation model id: ${installation_model_id}" >&2
62+ exit 1
63+ fi
60646165 if [ -n "${BLACKSMITH_HOSTNAME:-}" ]; then
6266 runner_host="$BLACKSMITH_HOSTNAME"
@@ -65,21 +69,32 @@ jobs:
6569 fi
6670 runner_ssh_port="${BLACKSMITH_SSH_PORT:-22}"
677172+ hydrating_body="$RUNNER_TEMP/testbox-hydrating.json"
6873 hydrating_response="$RUNNER_TEMP/testbox-hydrating.response"
74+ jq -n \
75+ --arg testbox_id "$TESTBOX_ID" \
76+ --argjson installation_model_id "$installation_model_id" \
77+ --arg status "hydrating" \
78+ --arg ip_address "$runner_host" \
79+ --arg ssh_port "$runner_ssh_port" \
80+ --arg working_directory "$GITHUB_WORKSPACE" \
81+ --arg adopted_run_id "$GITHUB_RUN_ID" \
82+ '{
83+ testbox_id: $testbox_id,
84+ installation_model_id: $installation_model_id,
85+ status: $status,
86+ ip_address: $ip_address,
87+ ssh_port: $ssh_port,
88+ working_directory: $working_directory,
89+ adopted_run_id: $adopted_run_id,
90+ metadata: {}
91+ }' > "$hydrating_body"
92+6993 hydrating_http_code="$(curl -sS -L --post302 --post303 -o "$hydrating_response" -w '%{http_code}' \
7094 -X POST "${api_url}/api/testbox/phone-home" \
7195 -H "Content-Type: application/json" \
7296 -H "Authorization: Bearer ${auth_token}" \
73- -d "{
74- \"testbox_id\": \"${TESTBOX_ID}\",
75- \"installation_model_id\": ${installation_model_id},
76- \"status\": \"hydrating\",
77- \"ip_address\": \"${runner_host}\",
78- \"ssh_port\": \"${runner_ssh_port}\",
79- \"working_directory\": \"${GITHUB_WORKSPACE}\",
80- \"adopted_run_id\": \"${GITHUB_RUN_ID}\",
81- \"metadata\": {}
82- }" || true)"
97+ --data-binary @"$hydrating_body" || true)"
83988499 echo "phone_home_hydrating_http=${hydrating_http_code}"
85100 if [[ ! "$hydrating_http_code" =~ ^2 ]]; then
@@ -152,20 +167,30 @@ jobs:
152167 runner_ssh_port="$(cat "$state/runner_ssh_port")"
153168 working_directory="$(cat "$state/working_directory")"
154169 adopted_run_id="$(cat "$state/adopted_run_id")"
170+ if ! jq -e 'type == "number"' <<<"$installation_model_id" >/dev/null; then
171+ echo "invalid Blacksmith installation model id: ${installation_model_id}" >&2
172+ exit 1
173+ fi
155174156175 ready_body="$RUNNER_TEMP/testbox-ready.json"
157- cat > "$ready_body" <<JSON
158- {
159- "testbox_id": "${testbox_id}",
160- "installation_model_id": ${installation_model_id},
161- "status": "ready",
162- "ip_address": "${runner_host}",
163- "ssh_port": "${runner_ssh_port}",
164- "working_directory": "${working_directory}",
165- "adopted_run_id": "${adopted_run_id}",
166- "metadata": {}
167- }
168- JSON
176+ jq -n \
177+ --arg testbox_id "$testbox_id" \
178+ --argjson installation_model_id "$installation_model_id" \
179+ --arg status "ready" \
180+ --arg ip_address "$runner_host" \
181+ --arg ssh_port "$runner_ssh_port" \
182+ --arg working_directory "$working_directory" \
183+ --arg adopted_run_id "$adopted_run_id" \
184+ '{
185+ testbox_id: $testbox_id,
186+ installation_model_id: $installation_model_id,
187+ status: $status,
188+ ip_address: $ip_address,
189+ ssh_port: $ssh_port,
190+ working_directory: $working_directory,
191+ adopted_run_id: $adopted_run_id,
192+ metadata: {}
193+ }' > "$ready_body"
169194170195 http_code="$(curl -sS -L --post302 --post303 -o "$RUNNER_TEMP/testbox-ready.response" -w '%{http_code}' \
171196 -X POST "${api_url}/api/testbox/phone-home" \
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。