54 lines
1 KiB
YAML
54 lines
1 KiB
YAML
|
name: CI
|
||
|
|
||
|
on:
|
||
|
push:
|
||
|
branches:
|
||
|
- main
|
||
|
pull_request:
|
||
|
|
||
|
jobs:
|
||
|
lint-and-format:
|
||
|
name: Lint and format
|
||
|
runs-on: ubuntu-latest
|
||
|
|
||
|
steps:
|
||
|
- name: Checkout code
|
||
|
uses: actions/checkout@v2
|
||
|
|
||
|
- name: Install Rust (stable)
|
||
|
uses: actions-rs/toolchain@v1
|
||
|
with:
|
||
|
toolchain: stable
|
||
|
|
||
|
- name: Run format check
|
||
|
run: cargo fmt -- --check
|
||
|
|
||
|
- name: Run clippy check
|
||
|
run: cargo clippy
|
||
|
|
||
|
test-and-build:
|
||
|
name: Test and build
|
||
|
|
||
|
strategy:
|
||
|
fail-fast: false
|
||
|
matrix:
|
||
|
os: [ubuntu-latest, macos-latest, windows-latest]
|
||
|
rust_version: [1.31.0, 1.56.0, stable, nightly]
|
||
|
|
||
|
runs-on: ${{ matrix.os }}
|
||
|
|
||
|
steps:
|
||
|
- name: Checkout code
|
||
|
uses: actions/checkout@v2
|
||
|
|
||
|
- name: Install Rust (${{ matrix.rust_version }})
|
||
|
uses: actions-rs/toolchain@v1
|
||
|
with:
|
||
|
toolchain: ${{ matrix.rust_version }}
|
||
|
|
||
|
- name: Run tests
|
||
|
run: cargo test
|
||
|
|
||
|
- name: Build package
|
||
|
run: cargo build
|