Skip to content

Fix gh-pages deploy: restore java lock URLs and build docs on PRs#734

Merged
horgh merged 2 commits into
mainfrom
greg/fix-pages-mise-lock
Jun 30, 2026
Merged

Fix gh-pages deploy: restore java lock URLs and build docs on PRs#734
horgh merged 2 commits into
mainfrom
greg/fix-pages-mise-lock

Conversation

@oschwald

@oschwald oschwald commented Jun 30, 2026

Copy link
Copy Markdown
Member

The "Deploy to GitHub Pages" workflow failed on main after a recent merge.

Root cause

The deploy's Setup mise step runs mise install --locked, which installs the full toolchain — including java. A prior mise.lock regeneration (4db616f2 "Update mise deps") had replaced java's per-platform url/checksum entries with a bare [tools.java.options] shorthand_vendor = "openjdk". With no locked URLs, the install fails:

mise ERROR Failed to install core:java@latest: No lockfile URL found for java@26.0.1 on platform linux-x64 (--locked mode)

This wasn't caught on the PR because pages.yml only triggered on push: [main], and the PR job that does use mise (links.yml) installs lychee-only (install: false) — so no PR ever ran the full locked install. (This same java-URL removal was previously fixed in aa48e2b3 and regressed.)

Changes (two commits)

  1. Restore java platform URLs in mise.lock — recovers mise install --locked so the Pages deploy works again. (Restored byte-identical to the last known-good lockfile; the hugo/lychee/maven version bumps from the regeneration are untouched.)
  2. Build docs on pull requestspages.yml now also runs on pull_request, executing Setup mise (full mise install --locked) + Build docs, with the gh-pages publish step gated to pushes on main. A broken lockfile or docs build now fails the PR before merge. Concurrency group is scoped per-ref so PR runs don't cancel the main deploy.

Note: commits are unsigned because the local 1Password signing agent was unavailable at authoring time.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated the site automation to run on pull requests and manual runs, in addition to main-branch updates.
    • Adjusted deployment flow so preview/build checks run for pull requests, while publishing to the public site happens only for main-branch changes.
    • Enhanced workflow isolation and improved concurrent run handling for more reliable execution.

@coderabbitai

coderabbitai Bot commented Jun 30, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 833168f4-3b86-4b04-ae56-397d018170a4

📥 Commits

Reviewing files that changed from the base of the PR and between f2d16e5 and 2ced449.

⛔ Files ignored due to path filters (1)
  • mise.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • .github/workflows/pages.yml

📝 Walkthrough

Walkthrough

The GitHub Actions pages workflow now triggers on pull_request and workflow_dispatch events in addition to pushes to main. Workflow permissions are restricted to empty, concurrency grouping is scoped by git ref, and the gh-pages deployment push step now runs only on pushes to main.

Changes

Pages Workflow Update

Layer / File(s) Summary
Workflow triggers, permissions, and concurrency
.github/workflows/pages.yml
Adds pull_request/workflow_dispatch triggers, sets permissions: {}, and changes concurrency.group to pages-${{ github.ref }}.
Gated deployment step
.github/workflows/pages.yml
The "Push rendered site to gh-pages" step gains an if condition restricting execution to push events on main, while build steps still run for pull requests.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

Poem

A bunny hops through YAML fields so neat,
New triggers added, push and pull complete,
Permissions trimmed to nothing but the bare,
Gh-pages waits for main, with patient care,
Hop hop, deploy! 🐇✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly reflects the main changes: fixing Pages deploys and enabling docs builds on pull requests.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch greg/fix-pages-mise-lock

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request updates mise.lock to define platform-specific download URLs and checksums for Java. The reviewer identified a critical issue where the URLs incorrectly reference a non-existent JDK version 26.0.1 instead of 22.0.1, which matches the provided checksums and build hash. This mismatch would result in 404 errors during installation, and the reviewer provided a code suggestion to fix the URLs and version.

Important

The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.

Comment thread mise.lock
Comment on lines +39 to +57
[tools.java."platforms.linux-arm64"]
checksum = "sha256:12a3649b2f4a0c9f6491d220bdd04b4fff07cae502b435aaff46eac0e36f4df1"
url = "https://download.java.net/java/GA/jdk26.0.1/458fda22e4c54d5ba572ab8d2b22eb83/8/GPL/openjdk-26.0.1_linux-aarch64_bin.tar.gz"

[tools.java."platforms.linux-x64"]
checksum = "sha256:2f2802d57b5fc414f1ddf6648ba12cc9a6454cf67b32ac95407c018f2e6ab0b0"
url = "https://download.java.net/java/GA/jdk26.0.1/458fda22e4c54d5ba572ab8d2b22eb83/8/GPL/openjdk-26.0.1_linux-x64_bin.tar.gz"

[tools.java."platforms.macos-arm64"]
checksum = "sha256:b2d57405194a312ed4ec6ec08e83b314d3fd2e425e895d704ec5ef8ea6059e17"
url = "https://download.java.net/java/GA/jdk26.0.1/458fda22e4c54d5ba572ab8d2b22eb83/8/GPL/openjdk-26.0.1_macos-aarch64_bin.tar.gz"

[tools.java."platforms.macos-x64"]
checksum = "sha256:e52bc05aefe4991329a6a103c9b42ae4b9b77240a9f9d3d12f6a7365db1ae16a"
url = "https://download.java.net/java/GA/jdk26.0.1/458fda22e4c54d5ba572ab8d2b22eb83/8/GPL/openjdk-26.0.1_macos-x64_bin.tar.gz"

[tools.java."platforms.windows-x64"]
checksum = "sha256:b381d30647aed9ff440abed5ab61af01d8578c290cd407c57e064ebc4b0151be"
url = "https://download.java.net/java/GA/jdk26.0.1/458fda22e4c54d5ba572ab8d2b22eb83/8/GPL/openjdk-26.0.1_windows-x64_bin.zip"

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

high

The URLs specified for Java contain jdk26.0.1 and openjdk-26.0.1, but the checksums and the build hash (458fda22e4c54d5ba572ab8d2b22eb83/8/GPL) actually correspond to Java 22.0.1.

Since JDK 26.0.1 does not exist, attempting to download from these URLs will result in a 404 Not Found error, breaking the mise install --locked step.

Please restore the URLs to use 22.0.1 instead of 26.0.1, and also update the version field on line 36 to "22.0.1".

[tools.java."platforms.linux-arm64"]
checksum = "sha256:12a3649b2f4a0c9f6491d220bdd04b4fff07cae502b435aaff46eac0e36f4df1"
url = "https://download.java.net/java/GA/jdk22.0.1/458fda22e4c54d5ba572ab8d2b22eb83/8/GPL/openjdk-22.0.1_linux-aarch64_bin.tar.gz"

[tools.java."platforms.linux-x64"]
checksum = "sha256:2f2802d57b5fc414f1ddf6648ba12cc9a6454cf67b32ac95407c018f2e6ab0b0"
url = "https://download.java.net/java/GA/jdk22.0.1/458fda22e4c54d5ba572ab8d2b22eb83/8/GPL/openjdk-22.0.1_linux-x64_bin.tar.gz"

[tools.java."platforms.macos-arm64"]
checksum = "sha256:b2d57405194a312ed4ec6ec08e83b314d3fd2e425e895d704ec5ef8ea6059e17"
url = "https://download.java.net/java/GA/jdk22.0.1/458fda22e4c54d5ba572ab8d2b22eb83/8/GPL/openjdk-22.0.1_macos-aarch64_bin.tar.gz"

[tools.java."platforms.macos-x64"]
checksum = "sha256:e52bc05aefe4991329a6a103c9b42ae4b9b77240a9f9d3d12f6a7365db1ae16a"
url = "https://download.java.net/java/GA/jdk22.0.1/458fda22e4c54d5ba572ab8d2b22eb83/8/GPL/openjdk-22.0.1_macos-x64_bin.tar.gz"

[tools.java."platforms.windows-x64"]
checksum = "sha256:b381d30647aed9ff440abed5ab61af01d8578c290cd407c57e064ebc4b0151be"
url = "https://download.java.net/java/GA/jdk22.0.1/458fda22e4c54d5ba572ab8d2b22eb83/8/GPL/openjdk-22.0.1_windows-x64_bin.zip"

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

(Claude, replying on Greg's behalf.)

Declining this one — it's not correct. Java 26.0.1 is a real release (2026-04-21), and these URLs/checksums were generated by mise lock against live metadata:

  • The jdk26.0.1 linux-x64 URL returns HTTP 200 (227 MB); the jdk22.0.1 URL suggested here returns HTTP 404.
  • CI confirms it: the build-and-deploy job's mise install --locked step installed openjdk version "26.0.1" 2026-04-21 with a matching checksum.

Switching these to 22.0.1 would break mise install --locked, so we're keeping 26.0.1.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/pages.yml:
- Around line 6-12: The Pages workflow currently gives the main job a
write-scoped token even on pull_request and workflow_dispatch runs; split the
workflow into a read-only build job and a separate deploy job that keeps
contents: write and the existing publish gate. Use the existing pages workflow
job names/steps (especially the build/publish logic) to move artifact creation
into build, then have deploy depend on it and run only when publishing is
allowed.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 91f6392d-73b5-47ec-9429-c0214a5751f9

📥 Commits

Reviewing files that changed from the base of the PR and between 914767e and f2d16e5.

⛔ Files ignored due to path filters (1)
  • mise.lock is excluded by !**/*.lock
📒 Files selected for processing (1)
  • .github/workflows/pages.yml

Comment thread .github/workflows/pages.yml
oschwald and others added 2 commits June 30, 2026 19:12
A prior mise.lock regeneration left the core:java entry with only
[tools.java.options] and no per-platform url/checksum entries. Under
the mise version used in CI, 'mise install --locked' then fails with
'No lockfile URL found for java@26.0.1', which broke the gh-pages
deploy (it runs the full locked install). Regenerated with 'mise lock
java' to populate the per-platform entries.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The Pages workflow only ran on pushes to main, so a broken mise.lock or
docs build was not detected until after merge (when the deploy runs the
full 'mise install --locked'). Run the build on pull requests too, and
gate the gh-pages publish step to pushes on main so PRs validate without
deploying. Scope the concurrency group per ref so PR runs do not cancel
the main deploy.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@oschwald oschwald force-pushed the greg/fix-pages-mise-lock branch from f2d16e5 to 2ced449 Compare June 30, 2026 19:12
@horgh horgh merged commit 51e32b0 into main Jun 30, 2026
31 checks passed
@horgh horgh deleted the greg/fix-pages-mise-lock branch June 30, 2026 20: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