name: CI on: push: branches: [auto] pull_request: workflow_dispatch: jobs: linux-ci: name: Linux runs-on: ubuntu-latest strategy: matrix: toolchain: ["stable", "beta", "nightly", "1.36.0"] include: - toolchain: stable env: DO_FUZZ: 1 - toolchain: beta env: DO_FUZZ: 1 steps: - uses: actions/checkout@v2 - name: Install packages run: sudo apt-get install -y binutils-dev libunwind8-dev libcurl4-openssl-dev libelf-dev libdw-dev cmake gcc libiberty-dev - name: Install toolchain uses: actions-rs/toolchain@v1 with: profile: minimal toolchain: ${{ matrix.toolchain }} override: true - name: Cargo build run: cargo build --verbose - name: Cargo test run: cargo test --verbose - name: Cargo test w/ serde 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 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' run: bash ./scripts/run_miri.sh - name: fuzz if: env.DO_FUZZ == '1' working-directory: fuzz run: ./travis_fuzz.sh build_result: name: homu build finished 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()"