ci: one workflow per portable OS, so each job's log is readable when it ends
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01HS8WZziDnyxunC23MUxrLp
This commit is contained in:
1 parent
74f1691f77
commit
1353be0c10
2 files changed
+65
-8
No files matched your search
@@ -0,0 +1,59 @@
|
||||
# The portable builds (plan P11a step 0, D-56): the workspace builds and
|
||||
# passes its tests on macOS and Windows, not only on Linux. A workflow of
|
||||
# its own per OS, not a job beside `check` or beside the other OS: GitHub
|
||||
# serves a job's log only when its whole run has completed, and `check`
|
||||
# takes over an hour (the Windows suite most of one), so a failure's reason
|
||||
# was unreadable for that long while it sat in a shared run.
|
||||
name: portable-macos
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
concurrency:
|
||||
group: portable-macos-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
jobs:
|
||||
# The destination is one installation for macOS, Windows and Linux (D-56,
|
||||
# P11a step 0): the workspace must build and pass its tests on each, not
|
||||
# only here. `just check` (fmt, clippy, rustdoc, proofs' friends) stays
|
||||
# the Linux job's; these run the build and the tests. The job tells
|
||||
# which OS a failure is on; neither is allowed to hide the other.
|
||||
portable:
|
||||
name: portable (${{ matrix.os }})
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: macos-latest
|
||||
experimental: false
|
||||
runs-on: ${{ matrix.os }}
|
||||
continue-on-error: ${{ matrix.experimental }}
|
||||
# Same disk discipline as above: no incremental caches, line tables only.
|
||||
env:
|
||||
CARGO_INCREMENTAL: "0"
|
||||
CARGO_PROFILE_DEV_DEBUG: line-tables-only
|
||||
CARGO_PROFILE_TEST_DEBUG: line-tables-only
|
||||
# macOS: a Unix socket path holds 104 bytes, and the runner's default
|
||||
# temp folder (/var/folders/...) plus a test home plus
|
||||
# `Library/Application Support/wanderbooks/run/` is longer than that;
|
||||
# the server then refuses the root ("too long for its sockets"). The
|
||||
# tests' temp homes go under /tmp there. Windows ignores TMPDIR.
|
||||
TMPDIR: /tmp
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
- name: Rust (the version mise.toml pins)
|
||||
shell: bash
|
||||
run: rustup toolchain install 1.99 --profile minimal && rustup default 1.99
|
||||
- name: Room for the build
|
||||
shell: bash
|
||||
run: df -h . | tail -1
|
||||
- name: The server-only build (no viewer)
|
||||
run: cargo build -p ledger-cli --no-default-features
|
||||
- name: Everything compiles
|
||||
run: cargo build --workspace --all-targets
|
||||
- name: Tests
|
||||
run: cargo test --workspace
|
||||
- name: What the build used
|
||||
if: always()
|
||||
shell: bash
|
||||
run: df -h . | tail -1
|
||||
@@ -1,16 +1,16 @@
|
||||
# The portable builds (plan P11a step 0, D-56): the workspace builds and
|
||||
# passes its tests on macOS and Windows, not only on Linux. A workflow of
|
||||
# its own, not a job beside `check`: GitHub serves a job's log only when
|
||||
# its whole run has completed, and `check` takes over an hour, so a macOS
|
||||
# failure's reason was unreadable for that long while it sat in the same
|
||||
# run. Here each OS's run completes on its own.
|
||||
name: portable
|
||||
# its own per OS, not a job beside `check` or beside the other OS: GitHub
|
||||
# serves a job's log only when its whole run has completed, and `check`
|
||||
# takes over an hour (the Windows suite most of one), so a failure's reason
|
||||
# was unreadable for that long while it sat in a shared run.
|
||||
name: portable-windows
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
workflow_dispatch:
|
||||
concurrency:
|
||||
group: portable-${{ github.ref }}
|
||||
group: portable-windows-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
jobs:
|
||||
# The destination is one installation for macOS, Windows and Linux (D-56,
|
||||
@@ -24,8 +24,6 @@ jobs:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
include:
|
||||
- os: macos-latest
|
||||
experimental: false
|
||||
- os: windows-latest
|
||||
experimental: true
|
||||
runs-on: ${{ matrix.os }}
|
||||
Reference in new issue
Block a user