Skip to content

chore(ci): isolate mise state in performance jobs - #815

Merged
jdx merged 1 commit into
mainfrom
codex/fnox-perf-mise-directory
Sep 6, 2026
Merged

chore(ci): isolate mise state in performance jobs#815
jdx merged 1 commit into
mainfrom
codex/fnox-perf-mise-directory

Conversation

@jdx

@jdx jdx commented Sep 6, 2026

Copy link
Copy Markdown
Owner

The delayed performance check on #814 fails before building fnox because mise-action cannot write /github/home/.local/share/mise/bin/mise. Removing the old executable leaves its parent directory unwritable. Failing run.

Give both performance workflows fresh mise data, cache, and state directories beneath RUNNER_TEMP, shared with subsequent steps through GITHUB_ENV. The pinned runner image, Rust toolchain, and benchmark commands stay the same.

Validation: Actionlint and ShellCheck pass for both workflows; the extracted setup step successfully creates and exports three writable directories. The self-hosted performance run needs to validate the full setup after merge because its trusted workflow comes from the default branch.

AI-assisted — Tool: Codex; model: OpenAI/GPT-6; version: unavailable.


Note

Low Risk
CI-only workflow setup change; no application code, auth, or data paths affected.

Overview
Fixes self-hosted performance jobs failing when mise-action cannot write under the shared runner home (e.g. after removing a stale mise binary left directories owned by another user).

In perf.yml and perf-pr.yml, the sudo rm mise cleanup step is replaced with Prepare writable mise directories: a temp tree under RUNNER_TEMP and MISE_DATA_DIR, MISE_CACHE_DIR, and MISE_STATE_DIR appended to GITHUB_ENV so later steps (including jdx/mise-action) use isolated, writable state. Benchmark pinning, Rust toolchain, and measurement commands are unchanged.

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

Summary by CodeRabbit

  • Chores
    • Improved performance test workflow reliability by isolating temporary tool configuration and state for each run.
    • Removed cleanup of a shared runner-level tool installation.

@coderabbitai

coderabbitai Bot commented Sep 6, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Repository YAML (base), Central YAML (inherited), Organization UI (inherited)

Review profile: CHILL

Plan: Team

Run ID: cdd71ef9-b4ec-4659-82ec-eb419b37ec8e

📥 Commits

Reviewing files that changed from the base of the PR and between eb9f097 and b5a2c6a.

📒 Files selected for processing (2)
  • .github/workflows/perf-pr.yml
  • .github/workflows/perf.yml

Included review availability: Your plan provides up to 8 included reviews per hour; 3 remain after this review.


📝 Walkthrough

Walkthrough

The performance workflows now create temporary writable mise directories under the runner temporary directory. They export the data, cache, and state paths through GITHUB_ENV and remove shared stale-binary cleanup.

Changes

Performance workflow isolation

Layer / File(s) Summary
Configure isolated mise directories
.github/workflows/perf-pr.yml, .github/workflows/perf.yml
The setup steps create temporary mise roots under $RUNNER_TEMP and export MISE_DATA_DIR, MISE_CACHE_DIR, and MISE_STATE_DIR. They no longer delete the runner-owned mise binary.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Merge Risk: ⚪ Minimal · up to b5a2c

Performance workflows now use per-job writable mise state rather than shared runner state, preventing the prior unwritable-directory failure without changing benchmark commands or toolchain configuration.

Poem

A rabbit reads each line,
The patch grows clear beneath the moon,
Small changes hop in place,
Tests guard the garden path,
Reviews bloom before the dawn.

🚥 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 and concisely describes the main change: isolating mise state in performance CI jobs.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
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.

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.

@greptile-apps

greptile-apps Bot commented Sep 6, 2026

Copy link
Copy Markdown

Greptile Summary

The PR isolates mise data, cache, and state for both performance workflows in fresh per-job directories beneath RUNNER_TEMP.

  • Replaces cleanup of the stale shared-home mise executable.
  • Exports the isolated directories through GITHUB_ENV before invoking mise-action.
  • Applies identical setup to pull-request and scheduled performance measurements.

Confidence Score: 5/5

The PR appears safe to merge; no actionable correctness, security, or repository-rule issues were identified.

The fresh mise root is created atomically, its directory variables persist to subsequent steps through GITHUB_ENV, and mise-action creates the required child directories and installs its binary under the overridden data directory.

Important Files Changed

Filename Overview
.github/workflows/perf-pr.yml Creates and exports isolated mise directories before the pull-request performance job installs and invokes mise.
.github/workflows/perf.yml Creates and exports isolated mise directories before the recurring performance job installs and invokes mise.

Reviews (1): Last reviewed commit: "chore(ci): isolate mise state in perform..." | Re-trigger Greptile

@jdx
jdx merged commit 1fc6094 into main Sep 6, 2026
22 of 23 checks passed
@jdx
jdx deleted the codex/fnox-perf-mise-directory branch September 6, 2026 00:11
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