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