| name: CI |
| |
| on: |
| push: |
| branches: [v1] |
| pull_request: |
| workflow_dispatch: |
| merge_group: |
| types: [checks_requested] |
| |
| jobs: |
| ci: |
| name: Build/Test |
| strategy: |
| matrix: |
| toolchain: ["stable", "beta", "nightly", "1.36.0"] |
| os: [ubuntu-latest] |
| include: |
| - toolchain: stable |
| fuzz: 1 |
| - toolchain: beta |
| fuzz: 1 |
| - os: windows-latest |
| toolchain: nightly |
| |
| runs-on: ${{ matrix.os }} |
| |
| steps: |
| - uses: actions/checkout@v4 |
| |
| - name: Install packages for fuzzing |
| if: runner.os == 'Linux' && matrix.fuzz == 1 |
| run: sudo apt-get update -y && sudo apt-get install -y binutils-dev libunwind8-dev libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc libiberty-dev |
| |
| - name: Install toolchain |
| uses: dtolnay/rust-toolchain@master |
| with: |
| toolchain: ${{ matrix.toolchain }} |
| |
| - name: Cargo build |
| run: cargo build --verbose |
| |
| - name: Cargo test |
| if: matrix.toolchain != '1.36.0' |
| run: cargo test --verbose |
| |
| - name: Cargo test w/ serde |
| if: matrix.toolchain != '1.36.0' |
| run: cargo test --verbose --features serde |
| |
| - name: Cargo check w/o default features |
| if: matrix.toolchain == 'nightly' |
| run: cargo check --verbose --no-default-features |
| |
| - name: Cargo test w/ union |
| if: matrix.toolchain == 'beta' |
| run: cargo test --verbose --features union |
| |
| - name: Cargo test w/ debugger_visualizer |
| if: matrix.toolchain == 'nightly' |
| run: cargo test --test debugger_visualizer --verbose --features debugger_visualizer -- --test-threads=1 |
| |
| - name: Cargo test w/ debugger_visualizer and union |
| if: matrix.toolchain == 'nightly' |
| run: cargo test --test debugger_visualizer --verbose --features 'debugger_visualizer,union' -- --test-threads=1 |
| |
| - name: Cargo test all features |
| if: matrix.toolchain == 'nightly' |
| run: cargo test --verbose --all-features |
| |
| - name: Cargo bench |
| if: matrix.toolchain == 'nightly' |
| run: cargo bench --verbose bench |
| |
| - name: miri |
| if: matrix.toolchain == 'nightly' && matrix.os == 'ubuntu-latest' |
| run: bash ./scripts/run_miri.sh |
| env: |
| MIRIFLAGS: '-Zmiri-tag-raw-pointers' |
| |
| - name: fuzz |
| if: matrix.fuzz == 1 |
| working-directory: fuzz |
| run: ./travis-fuzz.sh |
| |
| no-std: |
| name: no_std |
| runs-on: ubuntu-latest |
| steps: |
| - uses: actions/checkout@v4 |
| - name: Install toolchain |
| uses: dtolnay/rust-toolchain@master |
| with: |
| toolchain: stable |
| target: thumbv7m-none-eabi |
| - name: Cargo build |
| run: cargo build --verbose |
| |
| build_result: |
| name: Result |
| runs-on: ubuntu-latest |
| needs: |
| - "ci" |
| - "no-std" |
| |
| steps: |
| - name: Mark the job as successful |
| run: exit 0 |
| if: success() |
| - name: Mark the job as unsuccessful |
| run: exit 1 |
| if: "!success()" |