Skip to content

chore(ci): fail registry tests without summary#9559

Merged
jdx merged 1 commit intomainfrom
codex/fail-registry-test-tool-without-summary
May 3, 2026
Merged

chore(ci): fail registry tests without summary#9559
jdx merged 1 commit intomainfrom
codex/fail-registry-test-tool-without-summary

Conversation

@jdx
Copy link
Copy Markdown
Owner

@jdx jdx commented May 3, 2026

Summary

  • write registry test-tool Docker output to a writable temp summary file, then append it to the real GitHub step summary
  • fail the job when mise test-tool exits nonzero without reporting Failed Tools
  • apply the same guard to the retry path

Why

PR #9557 showed mise test-tool elixir-ls crashing while appending /tmp/github_summary, but the workflow still passed because the Docker command was followed by || true and no failed-tool marker was emitted.

Validation

  • actionlint .github/workflows/registry.yml
  • commit hook lint suite, including actionlint and cargo check

Note

Medium Risk
Workflow logic now fails CI when mise test-tool crashes before emitting a Failed Tools marker, and the e2e image/package registry updates can change which tools install/test successfully across platforms.

Overview
Registry CI is made strict about mise test-tool failures. The workflow now writes step summaries to a runner-temp mounted directory inside the e2e container, appends that output back into $GITHUB_STEP_SUMMARY, and fails the job if mise test-tool exits non-zero without reporting Failed Tools (applied to both initial run and retry).

Tool registry and e2e environment are refreshed. The embedded aqua-registry tag is bumped, the e2e Docker image gains additional system deps (notably a headless JDK and various libs), and multiple registry entries are updated/added: new tools (e.g. markdown-oxide, openapi-generator, bagel, elixir-ls, git-sync, scopeguard, flint, decaf, umoci, phrase-cli, dexter, turso-cli), repo/alias adjustments (e.g. dagu, astra-cli, vale), plus fixes/overrides to asset/version handling and several tool tests are corrected or temporarily disabled where CI/version output is unreliable.

Reviewed by Cursor Bugbot for commit 1de6c2c. Bugbot is set up for automated code reviews on this repo. Configure here.

@gemini-code-assist
Copy link
Copy Markdown
Contributor

Note

Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps Bot commented May 3, 2026

Greptile Summary

Fixes a silent-failure bug in the registry CI where Docker's || true masked crashes from mise test-tool, causing workflows to pass even when tools failed. The fix mounts a writable temp directory for Docker summary output (instead of the read-only $GITHUB_STEP_SUMMARY file), captures the docker exit code, and fails the job when the command exits non-zero without a **Failed Tools** marker — both in the initial and retry paths. Also syncs the aqua-registry to v4.505.0 with several new tool definitions and version-constraint fixes, updates the e2e Docker image with JDK and GUI libs, and disables several flaky registry tests with TODOs.

Confidence Score: 5/5

Safe to merge — no logic errors found; CI fix is well-structured and correctly handles all failure modes

No P0 or P1 findings. The core CI change correctly captures docker exit codes, uses isolated writable temp dirs per tranche, and applies the same guard to both initial and retry paths. Registry TOML tweaks and aqua-registry sync are routine maintenance.

No files require special attention

Important Files Changed

Filename Overview
.github/workflows/registry.yml Core CI fix: mounts a writable temp directory for Docker summary output instead of the read-only $GITHUB_STEP_SUMMARY file, captures docker exit code, and fails the job when the command exits non-zero without a "Failed Tools" marker; same guard applied to retry path
crates/aqua-registry/aqua-registry/registry.yaml Large upstream sync: adds new tool entries (elixir-ls, openapi-generator, bagel, markdown-oxide, vale-cli/vale, etc.), fixes version constraints/checksums for existing tools (circleci-cli, dagu repo owner, aube, microsoft/edit), and migrates vale from errata-ai to vale-cli org with an alias
packaging/e2e/Dockerfile Adds default-jdk-headless, GUI/audio libs, openssh-client, and python-is-python3 to the e2e base image
registry/btrace.toml Fixes btrace test to explicitly set JAVA_HOME so the Java binary is found in the CI container
registry/swiftlint.toml Switches version test from swiftlint to swiftlint-static binary
registry/awscli-local.toml Converts to structured backend block and adds extras = "ver1" for awscli v1 compatibility via pipx

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[Start test-tools step] --> B[Create temp summary_dir in RUNNER_TEMP]
    B --> C[chmod 777 summary_dir]
    C --> D[set +e]
    D --> E[docker run mise test-tool]
    E --> F[Capture test_tool_status]
    F --> G[set -e]
    G --> H{summary_file exists?}
    H -- Yes --> I[cat to GITHUB_STEP_SUMMARY / extract failed_tools]
    H -- No --> J[failed_tools = empty]
    I --> K{status != 0 AND failed_tools empty?}
    J --> K
    K -- Yes --> L[exit with error]
    K -- No --> M[output failed_tools]
    M --> N{failed_tools non-empty?}
    N -- Yes --> O[Retry failed tools step]
    N -- No --> P[Done]
    O --> P
Loading

Reviews (7): Last reviewed commit: "chore(ci): fail registry tests without s..." | Re-trigger Greptile

@jdx jdx force-pushed the codex/fail-registry-test-tool-without-summary branch from a512496 to 57997b3 Compare May 3, 2026 10:14
@github-actions
Copy link
Copy Markdown

github-actions Bot commented May 3, 2026

Hyperfine Performance

mise x -- echo

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.28 x -- echo 24.1 ± 0.5 23.1 27.1 1.00
mise x -- echo 25.3 ± 1.0 23.5 33.3 1.05 ± 0.05

mise env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.28 env 24.1 ± 1.0 22.5 29.7 1.00
mise env 24.8 ± 1.6 22.9 44.4 1.03 ± 0.08

mise hook-env

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.28 hook-env 24.9 ± 0.8 23.6 28.1 1.00
mise hook-env 24.9 ± 0.6 23.8 28.0 1.00 ± 0.04

mise ls

Command Mean [ms] Min [ms] Max [ms] Relative
mise-2026.4.28 ls 21.0 ± 0.3 20.3 22.5 1.00
mise ls 21.6 ± 0.4 20.9 23.0 1.03 ± 0.02

xtasks/test/perf

Command mise-2026.4.28 mise Variance
install (cached) 157ms 162ms -3%
ls (cached) 80ms 81ms -1%
bin-paths (cached) 84ms 86ms -2%
task-ls (cached) 815ms 799ms +2%

@jdx jdx force-pushed the codex/fail-registry-test-tool-without-summary branch 2 times, most recently from a3cbe1e to 960ff67 Compare May 3, 2026 10:51
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 960ff67. Configure here.

Comment thread registry/bfs.toml Outdated
@jdx jdx force-pushed the codex/fail-registry-test-tool-without-summary branch 2 times, most recently from 374dbb1 to ae34c16 Compare May 3, 2026 11:31
@jdx jdx force-pushed the codex/fail-registry-test-tool-without-summary branch from ae34c16 to 1de6c2c Compare May 3, 2026 11:54
@jdx jdx merged commit 13cc3e1 into main May 3, 2026
67 of 75 checks passed
@jdx jdx deleted the codex/fail-registry-test-tool-without-summary branch May 3, 2026 12:34
mise-en-dev added a commit that referenced this pull request May 3, 2026
### 🚀 Features

- **(conda)** graduate conda backend out of experimental by @jdx in
[#9544](#9544)
- **(deps)** Add dart and flutter providers by @tjarvstrand in
[#9505](#9505)
- **(registry)** add neo4j by @mnm364 in
[#9525](#9525)
- **(registry)** add rustfs by @mnm364 in
[#9530](#9530)
- **(task)** support exclusion patterns in task sources by
@jlarmstrongiv in [#9496](#9496)
- **(vfox)** add stat function to lua file module by @esteve in
[#9497](#9497)

### 🐛 Bug Fixes

- **(backend)** flag regex prerelease versions by @jdx in
[#9500](#9500)
- **(backend)** mark -nightly/-canary/-experimental as prereleases by
@jdx in [#9523](#9523)
- **(backend)** suppress no-versions warning for unresolved-latest
backends by @jdx in [#9548](#9548)
- **(backend)** include dotnet prereleases from package flags by @jdx in
[#9551](#9551)
- **(backend)** scope PEP 440 prerelease detection to Python backends by
@jdx in [#9558](#9558)
- **(cargo)** Apply install_env during cargo install by @c22 in
[#9502](#9502)
- **(copr)** drop epel-9 chroots since rust >= 1.91 is unavailable by
@jdx in [#9484](#9484)
- **(github)** skip attestations on non-default api_url by @jdx in
[#9486](#9486)
- **(github)** retry ip allow list errors without auth by @risu729 in
[#9506](#9506)
- **(http)** update versions host tracking endpoint by @jdx in
[#9527](#9527)
- **(install)** don't warn for configured tools when version is passed
via CLI by @jdx in [#9522](#9522)
- **(install)** refresh latest before installing missing tools by @jdx
in [#9545](#9545)
- **(install)** don't cache nonexistent install paths by @jdx in
[#9553](#9553)
- **(lockfile)** don't propagate ad-hoc CLI overrides into the project
lockfile by @jdx in [#9562](#9562)
- **(plugin)** detect plugin types after cloning by @risu729 in
[#9540](#9540)
- **(release)** pass --no-git-checks to aube publish by @jdx in
[#9483](#9483)
- **(task)** convert PATH to MSYS Unix form when spawning POSIX shells
on Windows by @JamBalaya56562 in
[#9547](#9547)

### 📚 Documentation

- **(contributing)** require popularity check for registry PRs by @jdx
in
[7bbeebe](7bbeebe)
- **(watch)** update pitchfork domain to en.dev by @risu729 in
[#9536](#9536)
- document ghtkn GitHub token setup by @jdx in
[#9546](#9546)
- clarify registry backend acceptance policy by @jdx in
[#9543](#9543)
- Change exec command to use bash for variable echo by @kuboon in
[#9567](#9567)

### 🧪 Testing

- **(e2e)** run test-tool targets in parallel by @jdx in
[#9564](#9564)
- **(e2e)** run tests in parallel by @jdx in
[#9563](#9563)
- **(e2e)** bind-mount /tmp on disk and surface failed tests in CI
summary by @jdx in [#9570](#9570)
- **(tasks)** migrate test_task_help atask to usage field by @jdx in
[#9549](#9549)

### 📦️ Dependency Updates

- update fedora:45 docker digest to 8b838b3 by @renovate[bot] in
[#9507](#9507)
- update ghcr.io/jdx/mise:deb docker digest to f02194c by @renovate[bot]
in [#9509](#9509)
- update taiki-e/install-action digest to 7769b73 by @renovate[bot] in
[#9512](#9512)
- update ghcr.io/jdx/mise:alpine docker digest to 581f8a8 by
@renovate[bot] in [#9508](#9508)
- update rust crate ctor to v0.10.1 by @renovate[bot] in
[#9515](#9515)
- update ghcr.io/jdx/mise:rpm docker digest to a5c9655 by @renovate[bot]
in [#9510](#9510)
- update rust docker digest to a9cfb75 by @renovate[bot] in
[#9511](#9511)
- update rust crate age to v0.11.3 by @renovate[bot] in
[#9514](#9514)
- update rust crate jiff to v0.2.24 by @renovate[bot] in
[#9516](#9516)
- update dependency vitepress-plugin-tabs to ^0.9.0 by @renovate[bot] in
[#9518](#9518)
- update autofix-ci/action action to v1.3.4 by @renovate[bot] in
[#9513](#9513)
- update rust crate usage-lib to v3.2.1 by @renovate[bot] in
[#9517](#9517)
- update apple-actions/import-codesign-certs action to v7 by
@renovate[bot] in [#9519](#9519)
- update taiki-e/install-action digest to 51cd0b8 by @renovate[bot] in
[#9531](#9531)
- exclude taiki-e/install-action from renovate by @jdx in
[#9532](#9532)
- update rust crate blake3 to v1.8.5 by @renovate[bot] in
[#9533](#9533)

### 📦 Registry

- enable shellcheck on windows by @zeitlinger in
[#9487](#9487)
- add google-java-format by @zeitlinger in
[#9488](#9488)
- add expert
([aqua:expert-lsp/expert](https://github.com/expert-lsp/expert)) by
@AlternateRT in [#9498](#9498)
- update entry for checkmake by @eread in
[#9504](#9504)
- add systemctl-tui
([aqua:rgwood/systemctl-tui](https://github.com/rgwood/systemctl-tui))
by @2xdevv in [#9521](#9521)
- add codon by @3w36zj6 in
[#9538](#9538)
- add tool yr (backend:github:VirusTotal/yara-x) by @adam-moss in
[#9542](#9542)
- add tool betterleaks (backend:aqua/betterleaks/betterleaks) by
@adam-moss in [#9541](#9541)
- add `git-filter-repo` by @garysassano in
[#9550](#9550)
- add umoci
([aqua:opencontainers/umoci](https://github.com/opencontainers/umoci))
by @2xdevv in [#9555](#9555)
- add aqua backend for elixir-ls by @AlternateRT in
[#9557](#9557)
- deny inline backend options by @risu729 in
[#9565](#9565)

### Chore

- **(ci)** fail registry tests without summary by @jdx in
[#9559](#9559)
- **(ci)** use !cancelled() instead of always() for test-ci aggregator
by @jdx in [#9569](#9569)
- **(ci)** use namespace runners for ci jobs by @jdx in
[#9561](#9561)
- **(config)** deprecate shorthands_file setting by @risu729 in
[#9534](#9534)
- **(docs)** remove shrill.en.dev analytics script by @jdx in
[#9539](#9539)
- **(release)** replace bc with awk in release-plz star formatting by
@jdx in
[d7f177f](d7f177f)
- bump hk to 1.44.3 by @jdx in
[#9493](#9493)
- invert CLAUDE.md/AGENTS.md so AGENTS.md is canonical by @jdx in
[#9560](#9560)
- set dev profile debug to 1 by @jdx in
[#9572](#9572)

### New Contributors

- @kuboon made their first contribution in
[#9567](#9567)
- @AlternateRT made their first contribution in
[#9557](#9557)
- @2xdevv made their first contribution in
[#9555](#9555)
- @adam-moss made their first contribution in
[#9541](#9541)
- @jlarmstrongiv made their first contribution in
[#9496](#9496)
- @tjarvstrand made their first contribution in
[#9505](#9505)
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