Skip to content

Fix CI: pin opencode install and repair fx/php builds on Ubuntu resolute base - #15

Merged
f3l1x merged 5 commits into
masterfrom
claude/nodejs-ci-fix-349fz6
Aug 10, 2026
Merged

Fix CI: pin opencode install and repair fx/php builds on Ubuntu resolute base#15
f3l1x merged 5 commits into
masterfrom
claude/nodejs-ci-fix-349fz6

Conversation

@f3l1x

@f3l1x f3l1x commented Aug 6, 2026

Copy link
Copy Markdown
Member

Summary

Fixes the flaky opencode installation that broke the nodejs smoke test, and repairs the fx/php builds that broke when codercom/enterprise-base:ubuntu moved to Ubuntu resolute.

Key Changes

opencode install hardened (all five images)

  • Version is pinned via ENV OPENCODE_VERSION (same convention as GLAB_VERSION). This skips the installer's unauthenticated api.github.com/releases/latest lookup, which gets rate-limited on shared GitHub Actions runner IPs — the cause of the original nodejs failure.
  • The binary stays in /home/coder/.opencode/bin owned by coder, so the coder user can still run opencode upgrade inside a workspace.
  • The || true around the installer is gone and opencode --version runs 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/php publishes 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 and software-properties-common are removed.
  • ⚠️ php8.5-imap is 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 ... || true late in the RUN chain: since && and || bind with equal precedence, that || true rescued the failed apt-get update, skipped every install step in between, and let the build "succeed" with an image missing node/php entirely. Ownership chowns 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

@f3l1x f3l1x changed the title Simplify OpenCode installation to use npm package Fix CI: pin opencode install and repair fx/php builds on Ubuntu resolute base Aug 6, 2026
@f3l1x
f3l1x force-pushed the claude/nodejs-ci-fix-349fz6 branch from e01fd54 to bd1e479 Compare August 10, 2026 17:10
claude added 5 commits August 10, 2026 17:13
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
f3l1x force-pushed the claude/nodejs-ci-fix-349fz6 branch from bd1e479 to 28b5586 Compare August 10, 2026 17:13
@f3l1x
f3l1x merged commit 2ecb3a6 into master Aug 10, 2026
5 checks passed
@f3l1x
f3l1x deleted the claude/nodejs-ci-fix-349fz6 branch August 10, 2026 17:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

2 participants