name: CI
on:
pull_request:
push:
branches:
- master
schedule:
- cron: '40 15 * * 1,4'
env:
RUSTFLAGS: -Dwarnings
jobs:
test:
name: ${{ matrix.rust }} ${{ matrix.os }} ${{ join(matrix.extras) }}
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- rust: 1.32.0
os: ubuntu-20.04
- rust: 1.32.0
os: ubuntu-20.04
extras: [update]
- rust: 1.32.0
os: windows-latest
- rust: 1.32.0
os: windows-latest
extras: [update]
- rust: 1.39.0
os: ubuntu-20.04
- rust: stable
os: ubuntu-20.04
- rust: nightly
os: ubuntu-20.04
- rust: nightly
os: ubuntu-20.04
extras: [update]
- rust: nightly
os: windows-latest
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 macro editions
run: cargo test -p test_2015 -p test_2018
- name: Prep compiler errors
if: ${{ matrix.rust == '1.39.0' }}
working-directory: test_compile_errors/src/compile-fail
run: cp v.33.stderr v.stderr
- name: Test compile errors
if: ${{ matrix.rust != '1.32.0' }}
run: cargo test -p test_compile_errors
- name: Build all targets
if: ${{ matrix.rust == 'nightly' }}
run: cargo build --release --all-targets