name: CI
on:
pull_request:
push:
schedule:
- cron: '53 15 * * 1,4'
env:
RUSTFLAGS: -Dwarnings
jobs:
test:
name: ${{ matrix.rust }} ${{ matrix.os }} ${{ join(matrix.extras) }}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
- rust: 1.45.2
os: ubuntu-20.04
- rust: 1.45.2
os: ubuntu-20.04
extras: [update]
- rust: 1.45.2
os: windows-latest
- rust: 1.45.2
os: windows-latest
extras: [update]
- rust: stable
os: ubuntu-20.04
extras: [update]
- rust: nightly
os: ubuntu-20.04
- rust: nightly
os: ubuntu-20.04
extras: [update]
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install rust (${{ matrix.rust }})
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.rust }}
override: true
- name: Update deps
if: ${{ contains(matrix.extras, 'update') }}
run: cargo update
- name: Test
run: cargo test
- name: Test current-thread
run: cargo test --features current-thread
- name: Test tokio-oneshot
run: cargo test --no-default-features --features tokio-oneshot
- name: Test tokio-threaded,tokio-oneshot
run: cargo test --no-default-features --features tokio-threaded,tokio-oneshot
- name: Test tokio-semaphore,tokio-oneshot
run: cargo test --no-default-features --features tokio-semaphore,tokio-oneshot
- name: Test tokio-omnibus
run: cargo test --no-default-features --features tokio-omnibus
- name: Test cleaver
run: cargo test --features cleaver
- name: Test yield-stream
run: cargo test --features yield-stream
- name: Test futures-intrusive
run: cargo test --features futures-intrusive
- name: Test tokio-threaded,futures-intrusive
run: cargo test --features tokio-threaded,futures-intrusive
- name: Test all features
run: cargo test --all-features
- name: Test all features/targets
if: ${{ matrix.rust == 'nightly' }}
run: cargo test --all-features --all-targets