@@ -27,11 +27,11 @@ conditions, permissions, secrets, target selection, metadata inputs, and the
2727choice between image output and local output.
2828
2929Inside the reusable workflow, the first phase prepares the build. It validates
30- the incoming inputs, resolves the appropriate runner, and expands a
31- multi-platform request into one job per platform. The execution model is
32- easiest to picture as a matrix where ` linux/amd64 ` runs on ` ubuntu-24.04 ` and
33- ` linux/arm64 ` runs on ` ubuntu-24.04-arm ` . Each platform job builds independently,
34- then the workflow finalizes the result into one caller-facing output contract.
30+ the incoming inputs, resolves the runner config , and expands a multi-platform
31+ request into one job per platform. The execution model is easiest to picture as
32+ a matrix where ` linux/amd64 ` runs on ` ubuntu-24.04 ` and ` linux/arm64 ` runs on
33+ ` ubuntu-24.04-arm ` . Each platform job builds independently, then the workflow
34+ finalizes the result into one caller-facing output contract.
3535
3636``` yaml
3737requested platforms :
@@ -42,6 +42,46 @@ conceptual platform jobs:
4242 linux/arm64 -> ubuntu-24.04-arm
4343` ` `
4444
45+ ### Runner selection
46+
47+ The ` runner` input accepts either a single GitHub-hosted Linux runner label or a
48+ newline-delimited platform mapping.
49+
50+ The default value is a platform mapping that uses GitHub-hosted Ubuntu runners :
51+
52+ ` ` ` yaml
53+ runner: |
54+ default=ubuntu-24.04
55+ linux/arm=ubuntu-24.04-arm
56+ linux/arm64=ubuntu-24.04-arm
57+ ` ` `
58+
59+ In the platform job, the runner label resolves to a single value :
60+
61+ ` ` ` yaml
62+ runner: ubuntu-24.04
63+ ` ` `
64+
65+ A mapping must define a `default` runner. Other keys are platform prefixes, and
66+ the most specific matching prefix wins. For example, `linux/arm` matches
67+ variants such as `linux/arm/v7`, while `linux/arm64` is a separate prefix :
68+
69+ In the following example, `linux` matches Linux platforms that do not match a
70+ longer prefix. The `default` key is still required because it is the fallback
71+ when no platform prefix matches.
72+
73+ ` ` ` yaml
74+ runner: |
75+ default=ubuntu-24.04
76+ linux=ubuntu-24.04
77+ linux/arm=ubuntu-24.04-arm
78+ linux/arm64=ubuntu-24.04-arm
79+ ` ` `
80+
81+ The reusable workflows require GitHub-hosted Linux runners. The legacy `auto`,
82+ ` amd64` , and `arm64` values are still accepted for compatibility, but emit
83+ deprecation warnings. Use an explicit runner label or platform mapping instead.
84+
4585# # Execution path
4686
4787
0 commit comments