| name: ci |
| on: |
| pull_request: |
| push: |
| branches: |
| - master |
| schedule: |
| - cron: '00 01 * * *' |
| jobs: |
| test: |
| name: test |
| env: |
| # For some builds, we use cross to test on 32-bit and big-endian |
| # systems. |
| CARGO: cargo |
| # When CARGO is set to CROSS, TARGET is set to `--target matrix.target`. |
| TARGET: |
| runs-on: ${{ matrix.os }} |
| strategy: |
| matrix: |
| build: |
| - pinned |
| - stable |
| - stable-32 |
| - stable-mips |
| - beta |
| - nightly |
| - macos |
| - win-msvc |
| - win-gnu |
| include: |
| - build: pinned |
| os: ubuntu-18.04 |
| rust: 1.41.1 |
| - build: stable |
| os: ubuntu-18.04 |
| rust: stable |
| - build: stable-32 |
| os: ubuntu-18.04 |
| rust: stable |
| target: i686-unknown-linux-gnu |
| - build: stable-mips |
| os: ubuntu-18.04 |
| rust: stable |
| target: mips64-unknown-linux-gnuabi64 |
| - build: beta |
| os: ubuntu-18.04 |
| rust: beta |
| - build: nightly |
| os: ubuntu-18.04 |
| rust: nightly |
| - build: macos |
| os: macos-latest |
| rust: stable |
| - build: win-msvc |
| os: windows-2019 |
| rust: stable |
| - build: win-gnu |
| os: windows-2019 |
| rust: stable-x86_64-gnu |
| steps: |
| - name: Checkout repository |
| uses: actions/checkout@v1 |
| with: |
| fetch-depth: 1 |
| - name: Install Rust |
| uses: actions-rs/toolchain@v1 |
| with: |
| toolchain: ${{ matrix.rust }} |
| profile: minimal |
| override: true |
| - name: Use Cross |
| if: matrix.target != '' |
| run: | |
| # FIXME: to work around bugs in latest cross release, install master. |
| # See: https://github.com/rust-embedded/cross/issues/357 |
| cargo install --git https://github.com/rust-embedded/cross |
| echo "CARGO=cross" >> $GITHUB_ENV |
| echo "TARGET=--target ${{ matrix.target }}" >> $GITHUB_ENV |
| - name: Show command used for Cargo |
| run: | |
| echo "cargo command is: ${{ env.CARGO }}" |
| echo "target flag is: ${{ env.TARGET }}" |
| - name: Show CPU info for debugging |
| if: matrix.os == 'ubuntu-18.04' |
| run: lscpu |
| - run: ${{ env.CARGO }} build --verbose |
| - run: ${{ env.CARGO }} doc --verbose |
| - run: ${{ env.CARGO }} test --verbose |
| - if: matrix.build == 'nightly' |
| run: ${{ env.CARGO }} build --manifest-path aho-corasick-debug/Cargo.toml |
| - if: matrix.build == 'nightly' |
| run: ${{ env.CARGO }} bench --verbose --manifest-path bench/Cargo.toml -- --test |
| |
| rustfmt: |
| name: rustfmt |
| runs-on: ubuntu-18.04 |
| steps: |
| - name: Checkout repository |
| uses: actions/checkout@v1 |
| with: |
| fetch-depth: 1 |
| - name: Install Rust |
| uses: actions-rs/toolchain@v1 |
| with: |
| toolchain: stable |
| profile: minimal |
| components: rustfmt |
| - name: Check formatting |
| run: | |
| cargo fmt --all -- --check |