name: CI on: push: branches: [main] pull_request: workflow_dispatch: merge_group: types: [checks_requested] jobs: linux-ci: name: Linux runs-on: ubuntu-latest strategy: matrix: toolchain: - nightly - beta - stable - 1.68.0 features: - - --features dummy_match_byte - --features malloc_size_of include: - toolchain: nightly features: --features bench - toolchain: nightly features: --features bench,dummy_match_byte steps: - uses: actions/checkout@v2 - name: Install toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.toolchain }} override: true components: rustfmt, clippy, ${{ matrix.toolchain == 'nightly' && 'miri,rust-src' || '' }} - name: Cargo format & lint run: cargo fmt --check && cargo clippy -- -Dwarnings - name: Cargo build run: cargo build ${{ matrix.features }} - name: Cargo doc run: cargo doc ${{ matrix.features }} - name: Cargo test run: cargo test ${{ matrix.features }} - name: macros build run: cargo build working-directory: macros - name: Color build run: cargo build working-directory: color - name: Color test run: cargo test working-directory: color - name: Cargo miri test if: "matrix.toolchain == 'nightly'" run: cargo miri test --features skip_long_tests ${{ matrix.features }} build_result: name: Result runs-on: ubuntu-latest needs: - "linux-ci" steps: - name: Mark the job as successful run: exit 0 if: success() - name: Mark the job as unsuccessful run: exit 1 if: "!success()"