| # Licensed under the Apache-2.0 license |
| |
| name: Nightly |
| |
| on: |
| schedule: |
| - cron: '0 2 * * *' # Run every day at 2 AM UTC |
| workflow_dispatch: # Allow manual triggering |
| |
| env: |
| CARGO_TERM_COLOR: always |
| RUST_BACKTRACE: 1 |
| |
| jobs: |
| nightly-test: |
| name: Nightly Test |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v5 |
| |
| - name: Install Rust nightly toolchain |
| uses: dtolnay/rust-toolchain@master |
| with: |
| toolchain: nightly-2025-02-15 |
| components: clippy, rust-src, llvm-tools, rustfmt, rustc-dev |
| |
| - name: Cache cargo registry |
| uses: actions/cache@v4 |
| with: |
| path: | |
| ~/.cargo/registry |
| ~/.cargo/git |
| target |
| key: ${{ runner.os }}-nightly-cargo-${{ hashFiles('**/Cargo.lock') }} |
| |
| - name: Run tests with nightly |
| run: cargo xtask test |
| |
| - name: Run clippy with nightly |
| run: cargo xtask clippy |
| |
| - name: Build with nightly |
| run: cargo xtask build |
| |
| dependency-update: |
| name: Dependency Update Check |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v5 |
| |
| - name: Install Rust toolchain |
| uses: dtolnay/rust-toolchain@stable |
| |
| - name: Install cargo-outdated |
| run: cargo install cargo-outdated |
| |
| - name: Check for outdated dependencies |
| run: cargo outdated --exit-code 1 |
| continue-on-error: true |
| |
| - name: Install cargo-audit |
| run: cargo install cargo-audit |
| |
| - name: Run security audit |
| run: cargo audit |
| |
| benchmark: |
| name: Benchmark |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v5 |
| |
| - name: Install Rust toolchain |
| uses: dtolnay/rust-toolchain@stable |
| |
| - name: Cache cargo registry |
| uses: actions/cache@v4 |
| with: |
| path: | |
| ~/.cargo/registry |
| ~/.cargo/git |
| target |
| key: ${{ runner.os }}-benchmark-cargo-${{ hashFiles('**/Cargo.lock') }} |
| |
| - name: Run benchmarks |
| run: cargo bench --workspace |
| continue-on-error: true |