Fix CI: pin opencode install and repair fx/php builds on Ubuntu resolute base - #15
Merged
Conversation
f3l1x
force-pushed
the
claude/nodejs-ci-fix-349fz6
branch
from
August 10, 2026 17:10
e01fd54 to
bd1e479
Compare
The base image moved to Ubuntu resolute. The ondrej PPA has no release for it. All PHP 8.5 packages are in the Ubuntu archive. php8.5-imap is dropped: the extension left PHP core in 8.4 and has no package. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S9abShYK5RMmbeuZurGH3b
A pinned version avoids the rate-limited api.github.com lookup that broke the nodejs test. The binary stays owned by coder, so the coder user can run 'opencode upgrade'. A failed install now fails the build. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S9abShYK5RMmbeuZurGH3b
&& and || bind equally, so a bare '|| true' rescued any earlier failure in the RUN chain and produced broken images that still built. Chowns are now plain commands; the claude chmod fallback is in parentheses. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S9abShYK5RMmbeuZurGH3b
Every installed tool now has an ENV *_VERSION pin: claude, deno, bun, composer, codex, copilot, pi, t3, pnpm, agent-browser. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S9abShYK5RMmbeuZurGH3b
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01S9abShYK5RMmbeuZurGH3b
f3l1x
force-pushed
the
claude/nodejs-ci-fix-349fz6
branch
from
August 10, 2026 17:13
bd1e479 to
28b5586
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Fixes the flaky
opencodeinstallation that broke the nodejs smoke test, and repairs the fx/php builds that broke whencodercom/enterprise-base:ubuntumoved to Ubuntu resolute.Key Changes
opencode install hardened (all five images)
ENV OPENCODE_VERSION(same convention asGLAB_VERSION). This skips the installer's unauthenticatedapi.github.com/releases/latestlookup, which gets rate-limited on shared GitHub Actions runner IPs — the cause of the original nodejs failure./home/coder/.opencode/binowned bycoder, so the coder user can still runopencode upgradeinside a workspace.|| truearound the installer is gone andopencode --versionruns at build time, so a failed install now fails the build instead of producing a broken image.fx + php builds fixed for Ubuntu resolute
ppa:ondrej/phppublishes no release for resolute (404) and is being merged into packages.sury.org. PHP 8.5 and all required extensions are now installed from the native Ubuntu archive; the PPA andsoftware-properties-commonare removed.php8.5-imapis dropped: the imap extension was unbundled from PHP core in 8.4 and no package exists for resolute (neither in the archive nor the PPA).Silent-failure bug fixed (all five images)
The fx/php breakage went undetected at build time because of an unparenthesized
chown ... || truelate in theRUNchain: since&&and||bind with equal precedence, that|| truerescued the failedapt-get update, skipped every install step in between, and let the build "succeed" with an image missing node/php entirely. Ownershipchowns are now plain commands and the remaining intentional fallbacks are parenthesized, so any mid-chain failure fails the build.https://claude.ai/code/session_01S9abShYK5RMmbeuZurGH3b