| 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.63.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()" |