mirror of
https://github.com/max-sixty/worktrunk.git
synced 2026-09-14 20:00:38 +08:00
397c3b2df4
Weekly CI pin bump for the three tool pins that drifted this week. All three are patch-level. - **cargo-llvm-cov** `=0.9.0` → `=0.9.1` — `coverage.yaml` - **cargo-nextest** `=0.9.143` → `=0.9.144` — `coverage.yaml`, `.github/actions/test-setup/action.yaml`, `.github/actions/tend-setup/action.yaml`, and `.codex/cloud.sh`, which the weekly checklist keeps level with `test-setup` - **PowerShell** `7.6.5` → `7.6.6` — `.codex/cloud.sh` and `setup-web` in `Taskfile.yaml`. Nothing under `.github/` pins PowerShell (CI uses whatever the runner image ships), so this one answers only to these two setup paths Toolchain compatibility against the pinned `1.97.0`: `cargo-llvm-cov` 0.9.1 declares `rust-version = 1.87`, `cargo-nextest` 0.9.144 declares `1.91`. Both build under `baptiste0928/cargo-install`. The two download URLs still resolve at the new versions: `powershell-7.6.6-linux-x64.tar.gz` and `powershell_7.6.6-1.deb_amd64.deb` are both published on the `v7.6.6` release, and `cargo-nextest-0.9.144-x86_64-unknown-linux-gnu.tar.gz` on the `cargo-nextest-0.9.144` tag. The `worktrunk` pin also drifted this week and is in #4088 instead — it is the `wt` that drives `wt hook pre-merge` on all three platforms, so a red matrix there shouldn't hold back these. Co-authored-by: worktrunk-bot <254187624+worktrunk-bot@users.noreply.github.com>
85 lines
2.9 KiB
YAML
85 lines
2.9 KiB
YAML
name: coverage
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
workflow_dispatch:
|
|
|
|
# Keyed per-commit on main, so a merge train can't cancel a queued upload:
|
|
# GitHub cancels the pending run whenever a newer one joins the group, and
|
|
# codecov picks a PR's base by walking back to the newest ancestor that has a
|
|
# report. A main commit that skips its upload therefore leaves later PRs
|
|
# comparing against a stale base. That's why coverage sits outside `ci`, whose
|
|
# group is shared with jobs that hold a run open for hours. PR runs still
|
|
# supersede their own.
|
|
concurrency:
|
|
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.sha }}
|
|
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
|
|
|
|
env:
|
|
# Swatinem/rust-cache hashes CARGO*/RUST* into the cache key, so these track
|
|
# ci.yaml (.github/CLAUDE.md → Build environment).
|
|
CARGO_TERM_COLOR: always
|
|
CARGO_INCREMENTAL: 0
|
|
RUSTFLAGS: -C debuginfo=0
|
|
|
|
jobs:
|
|
code-coverage:
|
|
runs-on: ubuntu-24.04
|
|
steps:
|
|
- name: 📂 Checkout code
|
|
uses: actions/checkout@v7
|
|
|
|
- uses: baptiste0928/cargo-install@v3
|
|
with:
|
|
crate: cargo-llvm-cov
|
|
version: "=0.9.1"
|
|
|
|
- uses: baptiste0928/cargo-install@v3
|
|
with:
|
|
crate: cargo-nextest
|
|
version: "=0.9.144"
|
|
|
|
- name: 💰 Cache
|
|
uses: Swatinem/rust-cache@v2
|
|
with:
|
|
# Own cache — coverage-instrumented builds differ from the shared test
|
|
# cache. Already main-gated; cache-bin:false matches everywhere else.
|
|
cache-bin: "false"
|
|
save-if: ${{ github.ref == 'refs/heads/main' }}
|
|
|
|
- name: Install shells (zsh, fish)
|
|
run: sudo apt-get update && sudo apt-get install -y zsh fish
|
|
|
|
- name: Install nushell
|
|
uses: hustcer/setup-nu@v3
|
|
with:
|
|
version: '0.115.1'
|
|
|
|
# Ensure nothing remains from caching
|
|
- run: cargo llvm-cov clean --workspace
|
|
|
|
- name: 📊 Generate coverage report
|
|
# Match the regular suite's process isolation. Cargo's in-process runner
|
|
# lets one busy PTY test delay another before it can paint its prompt.
|
|
run: cargo llvm-cov nextest --features shell-integration-tests --cobertura --output-path=cobertura.xml
|
|
|
|
- name: Upload code coverage results
|
|
uses: actions/upload-artifact@v7
|
|
with:
|
|
name: code-coverage-report
|
|
path: cobertura.xml
|
|
|
|
- name: Upload to codecov.io
|
|
uses: codecov/codecov-action@v7.0.0
|
|
with:
|
|
files: cobertura.xml
|
|
# Soft-fail on fork PRs: secrets aren't available there, so we rely on
|
|
# tokenless upload, which can hiccup. Keep hard-fail on the main repo.
|
|
# The head repo is what tells the two apart — `github.repository_owner`
|
|
# is the base repo's owner on a fork PR too.
|
|
fail_ci_if_error: ${{ github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name == github.repository }}
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|