This repository has been archived by the owner on Jul 7, 2023. It is now read-only.
ci #1253
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 | |
- stable-thumb | |
- 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: stable-thumb | |
os: ubuntu-18.04 | |
rust: stable | |
target: thumbv7em-none-eabihf | |
- 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: | | |
cargo install 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: Build | |
if: matrix.build != 'stable-thumb' | |
run: ${{ env.CARGO }} build --verbose ${{ env.TARGET }} | |
- name: Build docs | |
if: matrix.build != 'stable-thumb' | |
run: ${{ env.CARGO }} doc --verbose ${{ env.TARGET }} | |
# Our dev dependencies are increasing their MSRV more quickly then we want | |
# to, so the following are only run on non-pinned targets. | |
- name: Build examples | |
if: matrix.build != 'pinned' && matrix.build != 'stable-thumb' | |
run: ${{ env.CARGO }} build --manifest-path examples/Cargo.toml --examples | |
- name: Run tests | |
if: matrix.build != 'pinned' && matrix.build != 'stable-thumb' && matrix.build != 'stable-mips' | |
run: ${{ env.CARGO }} test --verbose --features transducer ${{ env.TARGET }} | |
# The mips test runner is quite sluggish, so don't run the full test | |
# suite there. Unfortunate, but CI times balloon otherwise. | |
- name: Run tests | |
if: matrix.build == 'stable-mips' | |
run: ${{ env.CARGO }} test --verbose --features transducer --lib ${{ env.TARGET }} | |
- name: Build without default features | |
if: matrix.build != 'pinned' | |
run: ${{ env.CARGO }} build --verbose --no-default-features ${{ env.TARGET }} | |
- name: Build docs without default features | |
if: matrix.build != 'pinned' | |
run: ${{ env.CARGO }} doc --verbose --lib --no-default-features ${{ env.TARGET }} | |
- name: Run tests without default features | |
if: matrix.build != 'pinned' && matrix.build != 'stable-thumb' | |
run: ${{ env.CARGO }} test --verbose --lib --no-default-features ${{ env.TARGET }} | |
- name: Compile debug tool | |
if: matrix.build != 'pinned' && matrix.build != 'stable-thumb' | |
run: ${{ env.CARGO }} build --verbose --manifest-path regex-cli/Cargo.toml ${{ env.TARGET }} | |
- name: Test benchmarks | |
if: matrix.build != 'pinned' && matrix.build != 'stable-thumb' | |
run: ${{ env.CARGO }} bench --manifest-path bench/Cargo.toml --verbose ${{ env.TARGET }} -- --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 | |
override: true | |
profile: minimal | |
components: rustfmt | |
- name: Check formatting | |
run: | | |
cargo fmt --all -- --check |