Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/actions/build-php-images/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -114,7 +114,7 @@ runs:
password: ${{ inputs.ghcr_user && inputs.ghcr_token || inputs.github_token }}

- name: Set up QEMU
if: ${{ !((runner.arch == 'ARM64' && startsWith(inputs.platform, 'linux/arm64')) || (runner.arch == 'X64' && startsWith(inputs.platform, 'linux/amd64'))) }}
if: ${{ !(runner.arch == 'X64' && startsWith(inputs.platform, 'linux/amd64')) }}
uses: docker/setup-qemu-action@v4

- name: Set up Docker Buildx
Expand Down
11 changes: 8 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,10 @@ Each PHP version ships three layered variants.

Release candidate tags end with `-rc` (e.g. `8.3-base-rc`).

The bundled legacy `devpanel` CLI is AMD64-only, including in ARM64 images.
Executing it on an ARM64 host requires AMD64 emulation on that host; CI runner
emulation is not included in the published images.

Available PHP versions: **7.4 · 8.0 · 8.1 · 8.2 · 8.3**

---
Expand Down Expand Up @@ -281,9 +285,10 @@ for setup instructions.
Run `./test.sh build run --version <v>` to test a single PHP version quickly.
- The build workflow is `docker-build.yml`, which handles both push-triggered
and manual dispatch builds. It runs a detect → build (per-platform,
parallel) → merge pipeline. ARM64 builds use native `ubuntu-24.04-arm`
runners; AMD64 builds use `ubuntu-latest`. QEMU is only set up when the
requested platform does not match the runner architecture.
parallel) → merge pipeline. ARM64 builds use native `ubuntu-26.04-arm`
runners; AMD64 builds use `ubuntu-26.04`. QEMU is set up on ARM runners
to execute the bundled AMD64 DevPanel CLI, and for cross-platform builds.
Native AMD64 builds skip QEMU.
- The `advance` variant depends on `secure`, which depends on `base`.
The build chain is enforced via the bake target dependency graph.

Expand Down
14 changes: 14 additions & 0 deletions TODO.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,20 @@

Use this file to track work that needs to be done. Lint scripts automatically append baseline-cleanup entries here when all violations for a linter reach zero.

# Task: Restore DevPanel CLI and enable QEMU on ARM runners

## Steps
- [x] Restore unconditional CLI installation and remove architecture-specific omission tests.
- [x] Enable QEMU on ARM runners and document the runtime emulation requirement.
- [x] Restore the Dockerfile lint baseline; YAML/Dockerfile/shell lint, shell syntax and ARM64 Bake parsing pass.
- [x] Scan changed files for secrets (none); independent review found no significant issues. Automated review unavailable; CodeQL has no analyzable changes.
- [x] Record validation limitation: native ARM runner execution cannot be verified in this AMD64-only sandbox.

## Definition of Done
- All image builds install and verify the bundled CLI.
- ARM runners register QEMU before Buildx; native AMD64 builds still skip it.
- Focused checks pass; unavailable full-build verification is explicitly reported.

# Task: Use native ARM runners for ARM64 builds

## Steps
Expand Down
Loading