Pin Swoole base image to 6.2 and fix tag manifest workflow#69
Conversation
The previous tag (`php8.5-alpine`) tracks the nightly Swoole build from master, so the installed Swoole version could drift between rebuilds. Pinning to the `6.2` line gives reproducible builds while still picking up patch releases. tests.yaml now matches `6.2.\d+` instead of asserting an exact patch. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
`manifest_build_and_push_on_tag` runs on both `push` (tag) and `release: published`, but referenced `github.event.release.tag_name` which is only populated for release events. Pushing a tag without creating a GitHub Release produced an empty value and `docker manifest create` failed with "invalid reference format" (seen on the `1.2.2` tag run). Use `github.ref_name`, which is set for both event types. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Greptile SummaryThis PR makes two targeted fixes: it pins the Swoole base image from the nightly Note: the PR description states the Swoole test assertion was "loosened to Confidence Score: 5/5Safe to merge — all three changes are correct and self-consistent. No P0 or P1 issues found. The workflow fix correctly addresses the empty-tag bug, the Dockerfile pin improves build reproducibility, and the test assertions align with the pinned image versions. No files require special attention. Important Files Changed
Reviews (3): Last reviewed commit: "Pin Swoole base to released 6.2.0 instea..." | Re-trigger Greptile |
The pinned phpswoole/swoole:6.2-php8.5-alpine image ships PHP 8.5.4, not 8.5.5 (the nightly was tracking master). Match any 8.5.x patch to keep the test stable across patch updates. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Switch from the stable 6.2 line back to the nightly php8.5-alpine tag, but pinned by manifest digest so builds are reproducible. The 6.2 line lagged on PHP (8.5.4 vs nightly's 8.5.5) and trails the master Swoole patches we want. Pinned digest captures PHP 8.5.5 + Swoole 6.2.1. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The nightly self-reports as 6.2.1 even though no such release exists upstream — it's just master's in-development version after v6.2.0. Pin to the actual released 6.2.0-php8.5-alpine image for clarity. Tests now assert exact versions (PHP 8.5.4, Swoole 6.2.0) since the base image is fully pinned and won't drift. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Summary
phpswoole/swoole:php8.5-alpinetag to the stablephpswoole/swoole:6.2-php8.5-alpineline for reproducible builds. Loosened thetests.yamlSwoole assertion to6.2.\d+so any patch in the 6.2 line passes.manifest_build_and_push_on_tagin.github/workflows/build-and-push.yml: it referencedgithub.event.release.tag_name, which is empty when the workflow is triggered by a tag push (no GitHub Release). The job ran with an empty tag anddocker manifest create docker.io/appwrite/base:failed with "invalid reference format" on the1.2.2tag. Switched togithub.ref_name, which is populated for bothpush-on-tag andreleaseevents.Notes
swoole-io-uring— that direction was abandoned; the upstream Swoole image doesn't ship an io_uring variant, and rather than maintain a custom Swoole rebuild we just pinned to the stable tag.1.2.2manifest, re-run the failed job after merge or push it manually from the existing per-arch images.Test plan
1.2.2) to confirm the manifest job succeeds🤖 Generated with Claude Code