name: CI
on:
push:
branches: [ "main", "feature-**", "patch-**" ]
paths-ignore:
- 'LICENSE'
- 'README.md'
- 'CONTRIBUTING.md'
- 'CHANGELOG.md'
pull_request:
branches: [ "main", "feature-**", "patch-**" ]
paths-ignore:
- 'LICENSE'
- 'README.md'
- 'CONTRIBUTING.md'
- 'CHANGELOG.md'
env:
CARGO_TERM_COLOR: always
jobs:
build_and_test:
name: Build and test
permissions:
contents: read
pull-requests: write
strategy:
matrix:
os:
- ubuntu-latest
- macos-latest
- windows-latest
runs-on: ${{ matrix.os }}
steps:
- run: git config --global core.autocrlf false
- name: Checkout repository
uses: actions/checkout@v4
- name: Update local toolchain
run: |
rustup update
- name: Toolchain info
run: |
cargo --version --verbose
rustc --version
cargo clippy --version
- name: Check and format
run: |
cargo fmt
cargo clippy
- name: Run tests
run: |
cargo check
cargo test --all
- name: Build
run: |
cargo build