mach try full
linux-unit-tests
windows-unit-tests
lint
wpt
runs-on: self-hosted-image:servo-ubuntu2204
POST https://monitor/select-runner
runs-on: ${{ needs.decision.outputs.label }}
POST https://queue/select-runner
actions/checkout
servo/servo
git fetch --depth=1 origin $commit git switch --detach git reset --hard FETCH_HEAD
runs-on: ubuntu-latest # GitHub-hosted
let label = runner available?
| yes => [self-hosted label]
| no => [GitHub-hosted label]
$ echo "label=${label}" | tee -a $GITHUB_OUTPUT
runs-on
any idle runners? —(TOCTOU)→ commit to self-hosted
reserved-for:<UUIDv4>
runs-on: 6826776b-5c18-4ef5-8129-4644a698ae59
runner not yet reserved? —(TOCTOU)→ label the runner
in_progress
queued
if: ${{ fromJSON(needs.decision.outputs.is-self-hosted) }}
needs
<UUIDv4>
name
name: Linux [${{ needs.decision.outputs.unique-id }}]
name: Linux [6826776b-5c18-4ef5-8129-4644a698ae59]
status
[${{ needs.decision.outputs.unique-id }}]
pull_request_target
pull_request
unique_id
qualified_repo
run_id
profile_key
if ! [ -e built ]; then # Image config touch built poweroffelse # Runner bootfi
curl|sh
github.com/servo/ci-runners
Slides: go.daz.cat/3tdhp
Transcript: go.daz.cat/2ra8x