name: Rust
on:
push:
branches: master
pull_request:
schedule:
- cron: '00 07 * * 0'
jobs:
run-tests:
strategy:
matrix:
os: [ubuntu-latest, windows-latest, macos-latest]
toolchain: [stable, beta, nightly]
name: ${{ matrix.toolchain }} on ${{ matrix.os }}
runs-on: ${{ matrix.os }}
steps:
- name: Checkout
uses: actions/checkout@v2
- name: Install Rust
uses: actions-rs/toolchain@v1
with:
profile: minimal
toolchain: ${{ matrix.toolchain }}
override: true
- name: Cache cargo registry
uses: actions/cache@v1
with:
path: ~/.cargo/registry
key: ${{ runner.os }}-${{ matrix.toolchain }}-cargo-registry
- name: Cache cargo index
uses: actions/cache@v1
with:
path: ~/.cargo/git
key: ${{ runner.os }}-${{ matrix.toolchain }}-cargo-index
- name: Cache cargo build
uses: actions/cache@v1
with:
path: target
key: ${{ runner.os }}-${{ matrix.toolchain }}-cargo-build
- name: Cargo build
run: cargo build
- name: Cargo test
run: cargo test
- name: Run examples
run: |
cargo run --example empty-reads
cargo run --example redirect
cargo run --example scoping_examples
cargo run --example unix
cargo run --example windows