From 36ed8524c487e164bb5175dc51ab8acb52cad5f9 Mon Sep 17 00:00:00 2001 From: Inflation <2375962+inflation@users.noreply.github.com> Date: Mon, 22 Jan 2024 23:04:14 +0800 Subject: [PATCH] Test win ci --- .github/workflows/ci.yml | 123 ++++++++++++++++++++++++++------------- 1 file changed, 82 insertions(+), 41 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 3000f26..920f05b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,34 +1,40 @@ name: CI -on: [push, pull_request] +on: + push: + branches: + - master + - ci + pull_request: env: CARGO_TERM_COLOR: always RUST_BACKTRACE: 1 - CARGO_INCREMENTAL: 0 concurrency: group: ${{ github.workflow }}-${{ github.ref }} cancel-in-progress: true jobs: - coverage: - name: Code Coverage - runs-on: ubuntu-latest - timeout-minutes: 10 + test: + name: Test + if: ${{ false }} + strategy: + matrix: + os: [ubuntu-latest, macos-13, windows-latest] + runs-on: ${{ matrix.os }} + timeout-minutes: 30 steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Install Rust run: rustup update nightly - - name: Install cargo-llvm-cov - uses: taiki-e/install-action@cargo-llvm-cov - name: Install cargo-nextest uses: taiki-e/install-action@nextest - name: Dependency run: cargo fetch - - uses: actions/cache@v3 + - uses: actions/cache@v4 with: path: | ~/.cargo/bin/ @@ -38,19 +44,55 @@ jobs: target/ key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.lock') }} - name: Generate code coverage - run: cargo +nightly llvm-cov nextest - --all-features --workspace - --ignore-filename-regex jpegxl-sys/ - --lcov --output-path lcov.info - - name: Upload coverage to Codecov - uses: codecov/codecov-action@v3 - with: - token: ${{ secrets.CODECOV_TOKEN }} - files: lcov.info - fail_ci_if_error: true - + run: cargo +nightly nextest run --all-features --workspace + sanitizer: name: Sanitizers + strategy: + matrix: + target: + - os: ubuntu-latest + triple: x86_64-unknown-linux-gnu + - os: macos-13 + triple: x86_64-apple-darwin + sanitizer: [address, leak, thread] + include: + - sanitizer: memory + target: + - os: ubuntu-latest + triple: x86_64-unknown-linux-gnu + runs-on: ${{ matrix.target.os }} + timeout-minutes: 10 + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Install Rust + run: rustup update nightly + - name: Add rust-src + run: rustup +nightly component add rust-src + - name: Install cargo-nextest + uses: taiki-e/install-action@nextest + - name: Dependency + run: cargo fetch + - uses: actions/cache@v4 + with: + path: | + ~/.cargo/bin/ + ~/.cargo/registry/index/ + ~/.cargo/registry/cache/ + ~/.cargo/git/db/ + target/ + key: ${{ runner.os }}-cargo-sanitizer-${{ matrix.sanitizer }}-${{ hashFiles('**/Cargo.lock') }} + - name: Address Sanitizer + run: cargo +nightly nextest run -Z build-std --target=${{ matrix.target.triple }} --all-features + env: + RUSTFLAGS: "-Z sanitizer=${{ matrix.sanitizer }}" + RUSTDOCFLAGS: "-Z sanitizer=${{ matrix.sanitizer }}" + + coverage: + name: Code Coverage + if: ${{ false }} runs-on: ubuntu-latest timeout-minutes: 10 steps: @@ -59,13 +101,13 @@ jobs: submodules: recursive - name: Install Rust run: rustup update nightly - - name: Add rust-src - run: rustup +nightly component add rust-src + - name: Install cargo-llvm-cov + uses: taiki-e/install-action@cargo-llvm-cov - name: Install cargo-nextest uses: taiki-e/install-action@nextest - name: Dependency run: cargo fetch - - uses: actions/cache@v3 + - uses: actions/cache@v4 with: path: | ~/.cargo/bin/ @@ -73,45 +115,44 @@ jobs: ~/.cargo/registry/cache/ ~/.cargo/git/db/ target/ - key: ${{ runner.os }}-cargo-sanitizer-${{ hashFiles('**/Cargo.lock') }} - - name: Address Sanitizer - run: cargo +nightly nextest run -Z build-std --target=x86_64-unknown-linux-gnu --all-features - env: - RUSTFLAGS: "-Z sanitizer=address" - RUSTDOCFLAGS: "-Z sanitizer=address" + key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.lock') }} + - name: Generate code coverage + run: cargo +nightly llvm-cov nextest + --all-features --workspace + --ignore-filename-regex jpegxl-sys/ + --lcov --output-path lcov.info + - name: Upload coverage to Codecov + uses: codecov/codecov-action@v3 + with: + token: ${{ secrets.CODECOV_TOKEN }} + files: lcov.info + fail_ci_if_error: true clippy: name: Clippy runs-on: ubuntu-latest timeout-minutes: 10 + env: + CARGO_INCREMENTAL: 0 steps: - uses: actions/checkout@v4 with: submodules: recursive - name: Install Rust run: rustup update stable - - name: Dependency - run: cargo fetch - - uses: actions/cache@v3 - with: - path: | - ~/.cargo/bin/ - ~/.cargo/registry/index/ - ~/.cargo/registry/cache/ - ~/.cargo/git/db/ - target/ - key: ${{ runner.os }}-cargo-clippy-${{ hashFiles('**/Cargo.lock') }} - name: Run Clippy with reviewdog uses: giraffate/clippy-action@v1.0.1 with: github_token: ${{ secrets.GITHUB_TOKEN }} - clippy_flags: --all-features --tests -- -D warnings + clippy_flags: --tests -- -D warnings reporter: github-check fmt: name: Rustfmt runs-on: ubuntu-latest timeout-minutes: 10 + env: + CARGO_INCREMENTAL: 0 steps: - uses: actions/checkout@v4 - name: Install Rust