You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
chore(deps): update jdx/mise-action action to v5.2.8 - #35
On Windows, the action can now install mise when MISE_DATA_DIR is on a different drive from the temporary directory. Before this fix, the install failed with EXDEV: cross-device link not permitted.
Fixed
Installing mise on Windows no longer fails when MISE_DATA_DIR is on another drive. On hosted windows-2025 runners, the workspace and RUNNER_TEMP are on D:, but the action downloaded mise to os.tmpdir() on C:. If MISE_DATA_DIR pointed into the workspace, moving mise.exe into place failed:
##[error]EXDEV: cross-device link not permitted, rename 'C:\Users\RUNNER~1\AppData\Local\Temp\mise-action-…\extract\mise\bin\mise.exe' -> 'D:\a\…\tool-cache\mise\bin\mise.exe'
The action now downloads to RUNNER_TEMP when that variable is set and the directory exists. Otherwise it falls back to the system temp directory. If moving mise.exe, mise-shim.exe or a raw mise binary still crosses drives, the action copies the file and then deletes the original. This also covers self-hosted runners where RUNNER_TEMP is on a different drive from the data directory. Setups that use the default data directory were not affected. If you set TEMP and TMP to ${{ runner.temp }} to work around this, you can remove those settings. (#732 by @jdx and @HengYangDS, fixes #730)
When the action can't download mise, the log now shows the HTTP status and host for each failed attempt. Retries wait longer between attempts, so a short GitHub outage is less likely to fail the job.
Fixed
Download failures now show what went wrong, and brief outages are retried for longer. Before this release, a failed mise download logged only The process '/usr/bin/curl' failed with exit code 22 and retried five times with a fixed 2-second wait. From that message you couldn't tell a rate limit from a missing asset or a server error. Each failed attempt now logs the HTTP status and the host that answered:
Download attempt 1/6 failed: Could not download github.com/…/mise-v2026.10.21-linux-x64.tar.zst (HTTP 503 from github.com). Retrying in 3.4 seconds.
The wait between attempts doubles from about 2s up to a 30s cap, with random jitter, so the five retries cover roughly a minute. Only transient failures are retried: connection errors and timeouts, and HTTP 408, 429 and 5xx responses. A 404, any other 4xx, or a local file-write error fails at once. The log shows only the host and file name of each URL, never signed query strings or curl/wget stderr. Partial files are deleted before the next attempt. wget now runs with --tries=1, so its own 20-retry default no longer stacks on top of the action's retries. This applies to every download the action makes: the release archive, checksums and the packslip bundle. Checksum and signature verification are unchanged, and there are no new inputs. (#722 by @jdx, fixes #721)
Changed
packslip, which the action uses to verify downloaded mise releases, is updated from 1.11.0 to 1.11.2. This version includes upstream hardening of its verifier checks. (#726)
The action now exits as soon as its work is done. Before this release, a cache restore that failed during the download could leave the step running for up to ten minutes after setup had finished.
Fixed
A failed cache restore no longer leaves the step hanging. If the mise cache download failed partway through, for example with getaddrinfo EAI_AGAIN, the action logged a warning, installed the tools and saved the cache, then stopped producing output. The step stayed in progress until the job was cancelled or a timer inside @actions/cache fired after 10 minutes. That timer is left running when a download fails (actions/toolkit#2470), and it kept the Node process alive. The action now exits explicitly after both the main step and the post step finish. It waits up to 5 seconds for log output to flush, then exits. The exit code set by any earlier failure is kept. Errors that aren't Error objects now mark the step as failed with their message. Before, they caused an unhandled rejection. (#718 by @jdx and @kjanat, fixes #717)
This release updates the packslip library that the action uses to verify downloaded mise releases, and updates the README examples to use the current major versions.
Changed
packslip updated from 1.8.0 to 1.11.0. The action uses packslip to check a downloaded mise binary against the signed packslip.sigstore.json that ships with mise releases from 2026.9.3 onward. The new version runs extra checks on the signed statement: the identity it declares must match the certificate that signed it, and the certificate must belong to the github.com/jdx/mise repository. GitHub and GitLab repository names now match regardless of letter case. The action still asks for the same identity, issuer and tag as before, and there are no new inputs. (#715)
The README examples now use jdx/mise-action@v5 and actions/checkout@v7. (#710 by @deining)
Jobs that restore mise from the cache no longer have to download its signed checksums from GitHub on every run, so a network failure at that step no longer fails a job that otherwise restored correctly.
Fixed
Restoring a cached mise no longer needs a network download of the checksums. The action checks the cached mise binary against the signed SHASUMS256.txt and its .minisig. Before this release it downloaded both files from GitHub on every run, even when the cache restored correctly. When that download failed, for example after repeated curl errors, the job failed. Now, once the signature checks out, the action saves both files as SHASUMS256-<version>.txt and .minisig in <mise_dir>/bin, which is part of the mise cache. On later runs it reads them from the restored cache and checks the minisign signature again before using them. If the files are missing, corrupt or tampered with, the action downloads them as it did before. There are no new inputs. (#708 by @jdx)
Caches saved by earlier versions don't contain these files. The main cache is only saved on a cache miss, so runs keep downloading the checksums until the cache is saved again or its key changes.
The cache key no longer comes from searching the whole workspace for mise config files. In repos that already contain node_modules or vendor/bundle, this removes a delay of several minutes in "Restoring mise cache".
Fixed
"Restoring mise cache" no longer takes minutes after installing dependencies. To build the cache key, the action used to match about 25 **/… glob patterns. That meant it walked every subdirectory of the workspace, including node_modules and vendor/bundle, before checking the cache at all. When the action ran after a step like pnpm install or ruby/setup-ruby with bundler-cache: true, this could take 3–7 minutes. The action now looks for mise config files the same way mise does: only in the working directory and each parent directory up to the workspace root. It checks for mise.toml, .mise.toml, .config/mise/…, conf.d fragments, .tool-versions, and their local, env-specific and .lock variants. The step also logs Hashed mise config files in N.Ns. (#703 by @jdx and @corsicanec82)
If you set a custom cache_key that doesn't use {{file_hash}} or {{default}}, the action no longer hashes config files at all.
Config files in subdirectories, such as monorepo sub-projects, no longer affect the cache key. mise only loads them with --monorepo.
Cache keys change, so the first run after you upgrade will miss the cache.
The cache key now includes mise conf.d/*.toml config fragments, so changing one of them invalidates the cache.
Fixed
Editing a conf.d fragment now invalidates the cache. mise can load config from single-file fragments in conf.d/ directories, but the action didn't hash those files when it built the cache key. As a result, adding or changing tools in a fragment could restore an outdated cache. The cache key now also hashes conf.d/*.toml files under .config/mise/, .mise/ and mise/. If your repo already uses these fragments, the cache will miss once after you upgrade. (#698 by @rileymichael)
The action now refuses to install mise 2026.9.3 or later if the release's signed packslip is missing. This closes a gap where verification could be downgraded to the weaker checksum check.
Fixed
A missing packslip no longer weakens the check on recent mise releases. v5.2.0 started checking the mise binary against the release's signed packslip.sigstore.json. If that file wasn't found, though, the action quietly fell back to the minisign-signed SHASUMS256 checksums. Anyone who could hide the file could force the weaker check. Every mise release from 2026.9.3 on includes a packslip, so for those versions a missing bundle now stops the install with an error like this:
mise v2026.10.11 must ship a signed packslip, but https://github.com/jdx/mise/releases/download/v2026.10.11/packslip.sigstore.json was not found
Releases before 2026.9.3 don't include a packslip, so they're still checked against the signed checksums. A version string that isn't three dot-separated numbers also requires a packslip. If you set the sha256 input, it still takes precedence over both checks. A packslip that fails verification still never falls back to the checksums. (#695 by @jdx)
This updates the scan job's mise action from v5.2.0 to v5.2.8, which brings Windows cross-drive install fixes, download retries, and caching improvements. No concrete risk was found, so the change can be merged after the usual CI run.
Architecture risk: Low · up to a4dc9
The changed surface does not map to a changed system, dependency edge, entrypoint, or external dependency.
Changed systems: None identified.
Architecture concerns
No architecture-level concerns identified.
Review details
Before / after behavior
observed — Modified behavior in .github/workflows/test-template.yml: The scan job’s jdx/mise-action reference changes from v5.2.0 to v5.2.8.
Pre-merge checks: 4
Check name
Status
Explanation
Description Check
Check skipped - CodeRabbit’s high-level summary is enabled.
Title check
The title names the change: it updates the jdx/mise-action dependency to v5.2.8. The raw summary confirms the only change is the action version bump in .github/workflows/test-template.yml, from v5.2.0…
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Title check
Explanation
The title names the change: it updates the jdx/mise-action dependency to v5.2.8. The raw summary confirms the only change is the action version bump in .github/workflows/test-template.yml, from v5.2.0 to v5.2.8. The title is specific and matches the changeset.
Finishing Touches
Generate unit tests (beta)
Commit to this branch
Create a new PR
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info
Run configuration
Source mode: Auto
Repository: Unavailable
Branch: Unavailable
File: No configuration file from this repository applied
Commit: Unavailable
Layers: Organization UI
Review profile: ASSERTIVE
Plan: Advanced
Run ID: 5636fe57-c11b-4817-92fd-30a26f81431f
Commits
Reviewing files that changed from the base of the PR and between 83764dd and a4dc987.
Files selected for processing: 1
.github/workflows/test-template.yml
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.
renovateBot
changed the title
chore(deps): update jdx/mise-action action to v5.2.6
chore(deps): update jdx/mise-action action to v5.2.7
Nov 6, 2026
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
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.
This PR contains the following updates:
v5.2.0→v5.2.8Release Notes
jdx/mise-action
v5.2.8: : Fix mise install on Windows when MISE_DATA_DIR is on another driveCompare Source
On Windows, the action can now install mise when
MISE_DATA_DIRis on a different drive from the temporary directory. Before this fix, the install failed withEXDEV: cross-device link not permitted.Fixed
Installing mise on Windows no longer fails when
MISE_DATA_DIRis on another drive. On hostedwindows-2025runners, the workspace andRUNNER_TEMPare onD:, but the action downloaded mise toos.tmpdir()onC:. IfMISE_DATA_DIRpointed into the workspace, movingmise.exeinto place failed:The action now downloads to
RUNNER_TEMPwhen that variable is set and the directory exists. Otherwise it falls back to the system temp directory. If movingmise.exe,mise-shim.exeor a raw mise binary still crosses drives, the action copies the file and then deletes the original. This also covers self-hosted runners whereRUNNER_TEMPis on a different drive from the data directory. Setups that use the default data directory were not affected. If you setTEMPandTMPto${{ runner.temp }}to work around this, you can remove those settings. (#732 by @jdx and @HengYangDS, fixes #730)New Contributors
Full Changelog: jdx/mise-action@v5.2.7...v5.2.8
v5.2.7: : Retry failed mise downloads with backoff and show the HTTP statusCompare Source
When the action can't download mise, the log now shows the HTTP status and host for each failed attempt. Retries wait longer between attempts, so a short GitHub outage is less likely to fail the job.
Fixed
Download failures now show what went wrong, and brief outages are retried for longer. Before this release, a failed mise download logged only
The process '/usr/bin/curl' failed with exit code 22and retried five times with a fixed 2-second wait. From that message you couldn't tell a rate limit from a missing asset or a server error. Each failed attempt now logs the HTTP status and the host that answered:The wait between attempts doubles from about 2s up to a 30s cap, with random jitter, so the five retries cover roughly a minute. Only transient failures are retried: connection errors and timeouts, and HTTP 408, 429 and 5xx responses. A 404, any other 4xx, or a local file-write error fails at once. The log shows only the host and file name of each URL, never signed query strings or curl/wget stderr. Partial files are deleted before the next attempt. wget now runs with
--tries=1, so its own 20-retry default no longer stacks on top of the action's retries. This applies to every download the action makes: the release archive, checksums and the packslip bundle. Checksum and signature verification are unchanged, and there are no new inputs. (#722 by @jdx, fixes #721)Changed
Full Changelog: jdx/mise-action@v5.2.6...v5.2.7
v5.2.6: : Fix step hanging after a failed cache restoreCompare Source
The action now exits as soon as its work is done. Before this release, a cache restore that failed during the download could leave the step running for up to ten minutes after setup had finished.
Fixed
getaddrinfo EAI_AGAIN, the action logged a warning, installed the tools and saved the cache, then stopped producing output. The step stayed in progress until the job was cancelled or a timer inside@actions/cachefired after 10 minutes. That timer is left running when a download fails (actions/toolkit#2470), and it kept the Node process alive. The action now exits explicitly after both the main step and the post step finish. It waits up to 5 seconds for log output to flush, then exits. The exit code set by any earlier failure is kept. Errors that aren'tErrorobjects now mark the step as failed with their message. Before, they caused an unhandled rejection. (#718 by @jdx and @kjanat, fixes #717)Full Changelog: jdx/mise-action@v5.2.5...v5.2.6
v5.2.5: : Bundled packslip verifier updated to 1.11.0; README examples use v5Compare Source
This release updates the packslip library that the action uses to verify downloaded mise releases, and updates the README examples to use the current major versions.
Changed
packslip.sigstore.jsonthat ships with mise releases from 2026.9.3 onward. The new version runs extra checks on the signed statement: the identity it declares must match the certificate that signed it, and the certificate must belong to thegithub.com/jdx/miserepository. GitHub and GitLab repository names now match regardless of letter case. The action still asks for the same identity, issuer and tag as before, and there are no new inputs. (#715)jdx/mise-action@v5andactions/checkout@v7. (#710 by @deining)Full Changelog: jdx/mise-action@v5.2.4...v5.2.5
v5.2.4: : Reuse cached signed checksums when restoring miseCompare Source
Jobs that restore mise from the cache no longer have to download its signed checksums from GitHub on every run, so a network failure at that step no longer fails a job that otherwise restored correctly.
Fixed
SHASUMS256.txtand its.minisig. Before this release it downloaded both files from GitHub on every run, even when the cache restored correctly. When that download failed, for example after repeated curl errors, the job failed. Now, once the signature checks out, the action saves both files asSHASUMS256-<version>.txtand.minisigin<mise_dir>/bin, which is part of the mise cache. On later runs it reads them from the restored cache and checks the minisign signature again before using them. If the files are missing, corrupt or tampered with, the action downloads them as it did before. There are no new inputs. (#708 by @jdx)Full Changelog: jdx/mise-action@v5.2.3...v5.2.4
v5.2.3: : Faster cache key computation in large workspacesCompare Source
The cache key no longer comes from searching the whole workspace for mise config files. In repos that already contain
node_modulesorvendor/bundle, this removes a delay of several minutes in "Restoring mise cache".Fixed
**/…glob patterns. That meant it walked every subdirectory of the workspace, includingnode_modulesandvendor/bundle, before checking the cache at all. When the action ran after a step likepnpm installorruby/setup-rubywithbundler-cache: true, this could take 3–7 minutes. The action now looks for mise config files the same way mise does: only in the working directory and each parent directory up to the workspace root. It checks formise.toml,.mise.toml,.config/mise/…,conf.dfragments,.tool-versions, and their local, env-specific and.lockvariants. The step also logsHashed mise config files in N.Ns. (#703 by @jdx and @corsicanec82)cache_keythat doesn't use{{file_hash}}or{{default}}, the action no longer hashes config files at all.--monorepo.New Contributors
Full Changelog: jdx/mise-action@v5.2.2...v5.2.3
v5.2.2: : Include conf.d config fragments in the cache keyCompare Source
The cache key now includes mise
conf.d/*.tomlconfig fragments, so changing one of them invalidates the cache.Fixed
conf.dfragment now invalidates the cache. mise can load config from single-file fragments inconf.d/directories, but the action didn't hash those files when it built the cache key. As a result, adding or changing tools in a fragment could restore an outdated cache. The cache key now also hashesconf.d/*.tomlfiles under.config/mise/,.mise/andmise/. If your repo already uses these fragments, the cache will miss once after you upgrade. (#698 by @rileymichael)New Contributors
Full Changelog: jdx/mise-action@v5.2.1...v5.2.2
v5.2.1: : Require the signed packslip for mise 2026.9.3 and laterCompare Source
The action now refuses to install mise 2026.9.3 or later if the release's signed packslip is missing. This closes a gap where verification could be downgraded to the weaker checksum check.
Fixed
packslip.sigstore.json. If that file wasn't found, though, the action quietly fell back to the minisign-signedSHASUMS256checksums. Anyone who could hide the file could force the weaker check. Every mise release from 2026.9.3 on includes a packslip, so for those versions a missing bundle now stops the install with an error like this:sha256input, it still takes precedence over both checks. A packslip that fails verification still never falls back to the checksums. (#695 by @jdx)Full Changelog: jdx/mise-action@v5.2.0...v5.2.1
Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.