summaryrefslogtreecommitdiff
path: root/subprojects/thiserror/.github/workflows/ci.yml
diff options
context:
space:
mode:
authorJohn Turner <jturner.usa@gmail.com>2025-11-15 20:18:36 +0000
committerJohn Turner <jturner.usa@gmail.com>2025-11-15 20:18:36 +0000
commitc0bd0c9efd429b35354484e24fe272fa1fbfe901 (patch)
tree395d4918e6a2b882fc05b285001b6cb72ab10af2 /subprojects/thiserror/.github/workflows/ci.yml
parent0436fbc77039fa3d754f2db5cfefdd437fea51d1 (diff)
parent6eba9cd92c295c5389944f6adda1f1e83b2cb008 (diff)
downloadgentoo-utils-c0bd0c9efd429b35354484e24fe272fa1fbfe901.tar.gz
Merge commit '6eba9cd92c295c5389944f6adda1f1e83b2cb008' as 'subprojects/thiserror'
Diffstat (limited to 'subprojects/thiserror/.github/workflows/ci.yml')
-rw-r--r--subprojects/thiserror/.github/workflows/ci.yml128
1 files changed, 128 insertions, 0 deletions
diff --git a/subprojects/thiserror/.github/workflows/ci.yml b/subprojects/thiserror/.github/workflows/ci.yml
new file mode 100644
index 0000000..8320187
--- /dev/null
+++ b/subprojects/thiserror/.github/workflows/ci.yml
@@ -0,0 +1,128 @@
+name: CI
+
+on:
+ push:
+ pull_request:
+ workflow_dispatch:
+ schedule: [cron: "40 1 * * *"]
+
+permissions:
+ contents: read
+
+env:
+ RUSTFLAGS: -Dwarnings
+
+jobs:
+ pre_ci:
+ uses: dtolnay/.github/.github/workflows/pre_ci.yml@master
+
+ test:
+ name: Rust ${{matrix.rust}}
+ needs: pre_ci
+ if: needs.pre_ci.outputs.continue
+ runs-on: ubuntu-latest
+ strategy:
+ fail-fast: false
+ matrix:
+ rust: [nightly, beta, stable, 1.81.0, 1.76.0]
+ timeout-minutes: 45
+ steps:
+ - uses: actions/checkout@v5
+ - uses: dtolnay/rust-toolchain@master
+ with:
+ toolchain: ${{matrix.rust}}
+ components: rust-src
+ - name: Enable type layout randomization
+ run: echo RUSTFLAGS=${RUSTFLAGS}\ -Zrandomize-layout >> $GITHUB_ENV
+ if: matrix.rust == 'nightly'
+ - name: Enable nightly-only tests
+ run: echo RUSTFLAGS=${RUSTFLAGS}\ --cfg=thiserror_nightly_testing >> $GITHUB_ENV
+ if: matrix.rust == 'nightly'
+ - run: cargo test --workspace --exclude thiserror_no_std_test
+ - run: cargo test --manifest-path tests/no-std/Cargo.toml
+ if: matrix.rust != '1.76.0'
+ - run: cargo test --no-default-features
+ - uses: actions/upload-artifact@v4
+ if: matrix.rust == 'nightly' && always()
+ with:
+ name: Cargo.lock
+ path: Cargo.lock
+ continue-on-error: true
+
+ msrv:
+ name: Rust 1.68.0
+ needs: pre_ci
+ if: needs.pre_ci.outputs.continue
+ runs-on: ubuntu-latest
+ timeout-minutes: 45
+ steps:
+ - uses: actions/checkout@v5
+ - uses: dtolnay/rust-toolchain@1.68.0
+ with:
+ components: rust-src
+ - run: cargo check
+
+ minimal:
+ name: Minimal versions
+ needs: pre_ci
+ if: needs.pre_ci.outputs.continue
+ runs-on: ubuntu-latest
+ timeout-minutes: 45
+ steps:
+ - uses: actions/checkout@v5
+ - uses: dtolnay/rust-toolchain@nightly
+ - run: cargo generate-lockfile -Z minimal-versions
+ - run: cargo check --locked
+
+ doc:
+ name: Documentation
+ needs: pre_ci
+ if: needs.pre_ci.outputs.continue
+ runs-on: ubuntu-latest
+ timeout-minutes: 45
+ env:
+ RUSTDOCFLAGS: -Dwarnings
+ steps:
+ - uses: actions/checkout@v5
+ - uses: dtolnay/rust-toolchain@nightly
+ with:
+ components: rust-src
+ - uses: dtolnay/install@cargo-docs-rs
+ - run: cargo docs-rs
+
+ clippy:
+ name: Clippy
+ runs-on: ubuntu-latest
+ if: github.event_name != 'pull_request'
+ timeout-minutes: 45
+ steps:
+ - uses: actions/checkout@v5
+ - uses: dtolnay/rust-toolchain@nightly
+ with:
+ components: clippy, rust-src
+ - run: cargo clippy --tests --workspace -- -Dclippy::all -Dclippy::pedantic
+
+ miri:
+ name: Miri
+ needs: pre_ci
+ if: needs.pre_ci.outputs.continue
+ runs-on: ubuntu-latest
+ timeout-minutes: 45
+ steps:
+ - uses: actions/checkout@v5
+ - uses: dtolnay/rust-toolchain@miri
+ - run: cargo miri setup
+ - run: cargo miri test
+ env:
+ MIRIFLAGS: -Zmiri-strict-provenance
+
+ outdated:
+ name: Outdated
+ runs-on: ubuntu-latest
+ if: github.event_name != 'pull_request'
+ timeout-minutes: 45
+ steps:
+ - uses: actions/checkout@v5
+ - uses: dtolnay/rust-toolchain@stable
+ - uses: dtolnay/install@cargo-outdated
+ - run: cargo outdated --workspace --exit-code 1