Skip to content

Node 26, release on v* tags, one shared release build - #2

Merged
mannes merged 3 commits into
mainfrom
node-26
Sep 24, 2026
Merged

mannes merged 3 commits into
mainfrom
node-26

Conversation

@mannes

@mannes mannes commented Sep 24, 2026 •

Copy link
Copy Markdown
Contributor

Moves the Docker build stage and the workflows from Node 22 to Node 26 (Active LTS from October).

  • Dockerfile: Node 26 no longer bundles corepack; install it from npm so
    packageManager in package.json still pins pnpm.
  • @types/node ^26.

Tested locally in node:26-alpine: image builds and passes docker/smoke.sh.

Release on v* tags (second commit): merging to main no longer publishes. Pushing a v* tag deploys Pages and pushes ghcr.io/libreble/bikefit as <version>, <major>.<minor> and latest (the sha-* and main-latest tags are gone). PRs still build + smoke-test the image. The github-pages environment now allows v* tags as well as main.

One release workflow (third commit): deploy.yml + docker.yml → release.yml. One job installs once, builds on the runner (once — the relative build serves both), uploads the Pages artifact, and builds the image from that output via the new Dockerfile target prebuilt (--build-context dist=…). No more emulated Node build for arm64. docker build . from source is unchanged. Verified locally: Pages base paths, prebuilt image smoke test, arm64 prebuilt build, from-source build.

Node 26 becomes Active LTS in October; move the Docker build stage and the
GitHub Actions workflows from Node 22 to 26.

- Dockerfile: Node 26 no longer bundles corepack; install it from npm so
  packageManager in package.json still pins pnpm.
- @types/node ^26.
Merging to main no longer publishes anything. Pushing a v* tag deploys to
GitHub Pages and pushes ghcr.io/libreble/bikefit as <version>, <major>.<minor>
and latest. Pull requests still build and smoke-test the image; the Pages
workflow can still be run by hand from main.
@mannes mannes changed the title Build on Node 26 Node 26, and release on v* tags Sep 24, 2026
deploy.yml and docker.yml become release.yml. A single job installs once and
builds on the runner, uploads the Pages artifact and builds the image from the
prebuilt output (new Dockerfile target `prebuilt`, fed via --build-context
dist=...). The arm64 image no longer runs an emulated Node build. Building the
Dockerfile from source (the default target) is unchanged for self-hosters.
@mannes mannes changed the title Node 26, and release on v* tags Node 26, release on v* tags, one shared release build Sep 24, 2026
@mannes
mannes merged commit 8fb9588 into main Sep 24, 2026
2 checks passed
@mannes
mannes deleted the node-26 branch September 24, 2026 06:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant