CI: use new self-hosted runner servers (#35002)

Signed-off-by: Delan Azabani <dazabani@igalia.com>
This commit is contained in:
Delan Azabani 2025-01-15 20:11:43 +08:00 committed by GitHub
parent 28c9ceedf6
commit 2cd5e1356c
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -12,10 +12,6 @@ on:
required: false required: false
type: string type: string
default: /orgs/${{ github.repository_owner }}/actions/runners default: /orgs/${{ github.repository_owner }}/actions/runners
monitor-api-base-url:
required: false
type: string
default: https://ci0.servo.org
force-github-hosted-runner: force-github-hosted-runner:
required: false required: false
type: boolean type: boolean
@ -46,7 +42,6 @@ jobs:
github_hosted_runner_label='${{ inputs.github-hosted-runner-label }}' github_hosted_runner_label='${{ inputs.github-hosted-runner-label }}'
self_hosted_image_name='${{ inputs.self-hosted-image-name }}' self_hosted_image_name='${{ inputs.self-hosted-image-name }}'
self_hosted_runner_scope='${{ inputs.self-hosted-runner-scope }}' self_hosted_runner_scope='${{ inputs.self-hosted-runner-scope }}'
monitor_api_base_url='${{ inputs.monitor-api-base-url }}'
set -euo pipefail set -euo pipefail
@ -77,22 +72,29 @@ jobs:
fall_back_to_github_hosted fall_back_to_github_hosted
fi fi
# Use the monitor API to reserve a runner. If we get an object with for monitor_api_base_url in $(printf \%s\\n \
# runner details, we succeeded. If we get null, we failed. https://ci0.servo.org \
take_runner_url=$monitor_api_base_url/profile/$self_hosted_image_name/take\?unique_id=$unique_id\&qualified_repo=${{ github.repository }}\&run_id=${{ github.run_id }} https://ci1.servo.org \
result=$(mktemp) https://ci2.servo.org \
echo | shuf); do
echo POST "$take_runner_url" # Use the monitor API to reserve a runner. If we get an object with
if ! curl -sS --fail-with-body --connect-timeout 5 --max-time 30 -X POST "$take_runner_url" \ # runner details, we succeeded. If we get null, we failed.
-H 'Authorization: Bearer ${{ secrets.SERVO_CI_MONITOR_API_TOKEN }}' > $result \ take_runner_url=$monitor_api_base_url/profile/$self_hosted_image_name/take\?unique_id=$unique_id\&qualified_repo=${{ github.repository }}\&run_id=${{ github.run_id }}
|| ! jq -e . $result > /dev/null; then result=$(mktemp)
cat $result
echo echo
echo echo POST "$take_runner_url"
echo 'No self-hosted runners available!' if curl -sS --fail-with-body --connect-timeout 5 --max-time 30 -X POST "$take_runner_url" \
fall_back_to_github_hosted -H 'Authorization: Bearer ${{ secrets.SERVO_CI_MONITOR_API_TOKEN }}' > $result \
fi && jq -e . $result > /dev/null; then
echo
echo "selected_runner_label=reserved-for:$unique_id" | tee -a $GITHUB_OUTPUT
echo 'is_self_hosted=true' | tee -a $GITHUB_OUTPUT
exit 0
fi
done
cat $result
echo echo
echo "selected_runner_label=reserved-for:$unique_id" | tee -a $GITHUB_OUTPUT echo
echo 'is_self_hosted=true' | tee -a $GITHUB_OUTPUT echo 'No self-hosted runners available!'
fall_back_to_github_hosted