jj/.github/workflows/build.yml
Martin von Zweigbergk ff3edb642f github: build and test all targets
It seems that at least examples are not included in the default set of
targets, and we clearly want to check that the examples compile, as
that's an important reason we have them. We don't have any tests for
the examples yet, but let's add the flag now so we don't forget it
later.
2023-01-18 23:03:30 -08:00

99 lines
2.7 KiB
YAML

name: build
on:
push:
branches:
- main
pull_request:
permissions: read-all
jobs:
build:
strategy:
fail-fast: false
matrix:
build: [linux, linux-msrv, macos, win]
include:
- build: linux
os: ubuntu-latest
rust_version: stable
- build: linux-msrv
os: ubuntu-latest
rust_version: "1.60"
- build: macos
os: macos-latest
rust_version: stable
- build: win
os: windows-latest
rust_version: stable
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- name: Install Rust (${{ matrix.rust_version }})
uses: dtolnay/rust-toolchain@e645b0cf01249a964ec099494d38d2da0f0b349f
with:
toolchain: ${{ matrix.rust_version }}
- name: Build
run: cargo build --workspace --all-targets --verbose
- name: Test
run: cargo test --workspace --all-targets --verbose
env:
RUST_BACKTRACE: 1
check-protos:
name: Check protos
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: dtolnay/rust-toolchain@e645b0cf01249a964ec099494d38d2da0f0b349f
with:
toolchain: stable
- run: sudo apt update && sudo apt-get -y install protobuf-compiler
- name: Generate Rust code from .proto files
run: cargo run -p gen-protos
- name: Check for uncommitted changes
run: git diff --exit-code
rustfmt:
name: Check formatting
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: dtolnay/rust-toolchain@e645b0cf01249a964ec099494d38d2da0f0b349f
with:
toolchain: nightly
components: rustfmt
- run: cargo fmt --all -- --check
cargo-deny:
runs-on: ubuntu-latest
strategy:
matrix:
checks:
- advisories
- bans licenses sources
# Prevent sudden announcement of a new advisory from failing ci:
continue-on-error: ${{ matrix.checks == 'advisories' }}
steps:
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: EmbarkStudios/cargo-deny-action@8a8607bd8e2b3a514d5a40174cc7c55b229d9ba7
with:
command: check ${{ matrix.checks }}
clippy-check:
name: Clippy check
permissions:
checks: write
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c
- uses: dtolnay/rust-toolchain@e645b0cf01249a964ec099494d38d2da0f0b349f
with:
toolchain: stable
components: clippy
- run: cargo clippy --all-features --workspace --all-targets -- -D warnings