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
ci: use ubuntu-slim for lightweight lint jobs - #117
Move only Lint / fmt and Lint / zizmor (GitHub Actions Security), neither with a matrix, to ubuntu-slim. Keep all steps and permissions unchanged.
GitHub documents public/private availability, 1 CPU, 5 GB RAM, 14 GB disk and a 15-minute job limit. The runner is an unprivileged container; privileged mounts and Docker-in-Docker are unsupported. Its Ubuntu 24.04 image includes Bash, Git, curl, Node, Python and pip, but no preinstalled Rust toolchain. The existing Rust setup installs rustfmt. The pinned zizmor action downloads a Python wheel and does not use Docker.
Retained: CI/test, Lint/clippy, Lint/lint-docs, Lint/external-types, Coverage/coverage and Release/release use compilation, dependency analysis or Nix; Benchmark/benchmarks needs its dedicated CodSpeed ARM runner. Release and coverage workflows were not triggered for measurement.
Validation: prettier --check .github/workflows/lint.yml passed (the YAML check from the justfile). Hosted compatibility evidence is pending.
Historical baseline, all successful on ubuntu-latest; execution seconds = completed_at minus started_at, excluding queue time:
Baseline n=3 each; medians: fmt 19s, zizmor 10s. Cache hits were not verified; Rust setup uses its default caching and zizmor has no explicit workflow cache. Historical commits, mutable nightly/tool downloads, cache state and runner-image differences confound comparison. Queue times were not measured or included. Slim n=0; median and percent change 100*(slim/base-1) pending. No compatibility failure or speed claim yet.
First slim result: Lint run https://github.com/x52dev/httpea/actions/runs/41636802863 attempt 1, head 0cf93f3. Both changed jobs passed on ubuntu-slim: fmt 32s (12:34:08–12:34:40 UTC), zizmor 18s (12:34:11–12:34:29 UTC). Slim n=1 medians 32s/18s; historical baseline comparison +68.4%/+80.0%. These are provisional historical comparisons, not same-code causal estimates. All Lint jobs and CI/test passed; the unchanged benchmark is still running. A second Lint-only attempt was requested to increase sample count without invoking release, coverage upload or benchmarks.
Attempt 2 passed: same head and ubuntu-slim labels, fmt 24s (12:37:46–12:38:10 UTC), zizmor 13s (12:37:46–12:37:59 UTC). Attempt 1 fmt had a confirmed cache miss. A third Lint-only attempt is requested for n=3. All PR checks passed before this rerun.
CodSpeed reported chunk_ext_empty changing from 8ns to 7ns, with an explicit software-environment mismatch warning. This result is from the unchanged dedicated benchmark runner and is excluded from the ubuntu-slim timing comparison. It is not evidence that these runner changes improve application performance.
Change = 100*(slim/base-1). These remain historical comparisons, not controlled same-code comparisons. Formatting attempt 1 missed the Rust cache; attempt 2 restored it. Baseline cache state remains unverified. Queue time is excluded and unmeasured. No pending timing samples. The increased median execution time is 12s for fmt and 3s for zizmor; both remain suitable lightweight tasks under the runner limit.
Failure audit: all three Lint attempts, CI and Benchmark succeeded. No executed failures, timeouts or capacity cancellations were observed, and no earlier failures required fixes. CodeRabbit was skipped, not failed. CI and Benchmark results are from their original executions, not additional measurement attempts. CodSpeed used baseline values for 77 skipped benchmarks; those are not executed samples. No rerun API rejections occurred. An initial PR-create HTTP 502 was resolved by retry and was not a CI failure.
Merging this PR will improve performance by 14.29%
1 warning
⚠️1 benchmark with a significant change ran in a different software environment
Its base and head results were measured with a different OS or toolchain, such as compiler, runtime or library versions, so the change might come from this difference rather than from the code. Open the benchmark to see what changed.
No actionable comments were generated in the recent review.
Walkthrough
The fmt and zizmor jobs in the lint workflow now run on ubuntu-slim instead of ubuntu-latest. Other workflow jobs and settings are unchanged.
Merge Risk: Minimal · up to 0cf93
The runner changes appear mergeable. Reported runs passed; the modest execution-time increases do not indicate a workflow blocker.
Pre-merge checks: 5
Check name
Status
Explanation
Title check
The title clearly and concisely describes the main change: moving lightweight lint jobs to ubuntu-slim.
Description check
The description directly explains the runner changes, scope, validation, compatibility results, and timing measurements.
Docstring Coverage
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
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: Docstring Coverage
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
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.
Run CodeRabbit Verify to test the changes in this pull request.
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: CHILL
Plan: Advanced
Run ID: 26719d91-b76f-43e5-b126-bc15b230e9fe
Commits
Reviewing files that changed from the base of the PR and between fd7ae81 and 0cf93f3.
Files selected for processing: 1
.github/workflows/lint.yml
Included review availability: This review used your included allowance. Your plan provides up to 1 included review per hour; 0 remain after this review.
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.
Move only
Lint / fmtandLint / zizmor(GitHub Actions Security), neither with a matrix, to ubuntu-slim. Keep all steps and permissions unchanged.GitHub documents public/private availability, 1 CPU, 5 GB RAM, 14 GB disk and a 15-minute job limit. The runner is an unprivileged container; privileged mounts and Docker-in-Docker are unsupported. Its Ubuntu 24.04 image includes Bash, Git, curl, Node, Python and pip, but no preinstalled Rust toolchain. The existing Rust setup installs rustfmt. The pinned zizmor action downloads a Python wheel and does not use Docker.
Sources: https://docs.github.com/en/actions/reference/runners/github-hosted-runners and https://github.com/actions/runner-images/blob/main/images/ubuntu-slim/ubuntu-slim-Readme.md
Retained: CI/test, Lint/clippy, Lint/lint-docs, Lint/external-types, Coverage/coverage and Release/release use compilation, dependency analysis or Nix; Benchmark/benchmarks needs its dedicated CodSpeed ARM runner. Release and coverage workflows were not triggered for measurement.
Validation:
prettier --check .github/workflows/lint.ymlpassed (the YAML check from the justfile). Hosted compatibility evidence is pending.Historical baseline, all successful on ubuntu-latest; execution seconds = completed_at minus started_at, excluding queue time:
Baseline n=3 each; medians: fmt 19s, zizmor 10s. Cache hits were not verified; Rust setup uses its default caching and zizmor has no explicit workflow cache. Historical commits, mutable nightly/tool downloads, cache state and runner-image differences confound comparison. Queue times were not measured or included. Slim n=0; median and percent change
100*(slim/base-1)pending. No compatibility failure or speed claim yet.First slim result: Lint run https://github.com/x52dev/httpea/actions/runs/41636802863 attempt 1, head 0cf93f3. Both changed jobs passed on ubuntu-slim: fmt 32s (12:34:08–12:34:40 UTC), zizmor 18s (12:34:11–12:34:29 UTC). Slim n=1 medians 32s/18s; historical baseline comparison +68.4%/+80.0%. These are provisional historical comparisons, not same-code causal estimates. All Lint jobs and CI/test passed; the unchanged benchmark is still running. A second Lint-only attempt was requested to increase sample count without invoking release, coverage upload or benchmarks.
Attempt 2 passed: same head and ubuntu-slim labels, fmt 24s (12:37:46–12:38:10 UTC), zizmor 13s (12:37:46–12:37:59 UTC). Attempt 1 fmt had a confirmed cache miss. A third Lint-only attempt is requested for n=3. All PR checks passed before this rerun.
CodSpeed reported chunk_ext_empty changing from 8ns to 7ns, with an explicit software-environment mismatch warning. This result is from the unchanged dedicated benchmark runner and is excluded from the ubuntu-slim timing comparison. It is not evidence that these runner changes improve application performance.
Final measurements: attempt 3 passed, fmt 31s (12:39:51–12:40:22 UTC), zizmor 8s (12:39:51–12:39:59 UTC). All three slim attempts used head 0cf93f3 and no matrix. Attempt URLs: https://github.com/x52dev/httpea/actions/runs/41636802863/attempts/1, https://github.com/x52dev/httpea/actions/runs/41636802863/attempts/2, https://github.com/x52dev/httpea/actions/runs/41636802863/attempts/3.
Change = 100*(slim/base-1). These remain historical comparisons, not controlled same-code comparisons. Formatting attempt 1 missed the Rust cache; attempt 2 restored it. Baseline cache state remains unverified. Queue time is excluded and unmeasured. No pending timing samples. The increased median execution time is 12s for fmt and 3s for zizmor; both remain suitable lightweight tasks under the runner limit.
Failure audit: all three Lint attempts, CI and Benchmark succeeded. No executed failures, timeouts or capacity cancellations were observed, and no earlier failures required fixes. CodeRabbit was skipped, not failed. CI and Benchmark results are from their original executions, not additional measurement attempts. CodSpeed used baseline values for 77 skipped benchmarks; those are not executed samples. No rerun API rejections occurred. An initial PR-create HTTP 502 was resolved by retry and was not a CI failure.