Skip to content

CI

CI #464

Workflow file for this run

name: CI
on:
pull_request:
branches:
- main
push:
workflow_dispatch:
jobs:
# --------------------------------------------------------------------------
# LINT
lint:
runs-on: ubuntu-latest
steps:
- name: Lint | install dependencies
run: |
sudo sed -i 's/azure.archive.ubuntu.com/archive.ubuntu.com/' /etc/apt/sources.list
sudo apt-get -qq update
sudo apt install -qq -y libudev-dev
- name: Lint | checkout
uses: actions/checkout@v2
- name: Lint | install toolchain
uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable
components: clippy, rustfmt
- name: Lint | rust-cache
uses: Swatinem/rust-cache@v2
- name: Lint | check formatting
run: cargo fmt -- --check
- name: Lint | clippy
run: cargo clippy --all-targets --all-features
# --------------------------------------------------------------------------
# MSRV
#
# Check at least once per platform.
msrv-aarch64-apple-darwin:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
target: aarch64-apple-darwin
toolchain: "1.59.0"
msrv-arm-linux-androideabi:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
target: arm-linux-androideabi
toolchain: "1.59.0"
msrv-x86_64-unknown-freebsd:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
target: x86_64-unknown-freebsd
toolchain: "1.59.0"
msrv-x86_64-unknown-linux-gnu:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
extra_packages: libudev-dev
target: x86_64-unknown-linux-gnu
toolchain: "1.59.0"
msrv-x86_64-unknown-linux-musl:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
extra_packages: gcc-aarch64-linux-gnu
target: aarch64-unknown-linux-musl
toolchain: "1.59.0"
msrv-x86_64-pc-windows-msvc:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
runs_on: windows-2019
target: x86_64-pc-windows-msvc
toolchain: "1.59.0"
msrv-x86_64-unknown-netbsd:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
target: x86_64-unknown-netbsd
toolchain: "1.59.0"
# --------------------------------------------------------------------------
# cargo-deny
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@v3
- uses: EmbarkStudios/cargo-deny-action@v1
with:
command: check ${{ matrix.checks }}
# --------------------------------------------------------------------------
# BUILD
aarch64-apple-darwin:
uses: ./.github/workflows/build.yaml
with:
disable_tests: true
runs_on: macos-latest
target: aarch64-apple-darwin
aarch64-apple-ios:
uses: ./.github/workflows/build.yaml
with:
disable_tests: true
runs_on: macos-latest
target: aarch64-apple-ios
aarch64-unknown-linux-gnu:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
extra_packages: libudev-dev gcc-aarch64-linux-gnu libc6-dev-arm64-cross
target: aarch64-unknown-linux-gnu
aarch64-unknown-linux-musl:
uses: ./.github/workflows/build.yaml
with:
disable_tests: true
extra_packages: gcc-aarch64-linux-gnu
target: aarch64-unknown-linux-musl
arm-linux-androideabi:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
target: arm-linux-androideabi
armv7-linux-androideabi:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
target: armv7-linux-androideabi
i686-pc-windows-gnu:
uses: ./.github/workflows/build.yaml
with:
runs_on: windows-2019
target: i686-pc-windows-gnu
i686-pc-windows-msvc:
uses: ./.github/workflows/build.yaml
with:
runs_on: windows-2019
target: i686-pc-windows-msvc
i686-unknown-linux-gnu:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
extra_packages: libudev-dev gcc-multilib
target: i686-unknown-linux-gnu
i686-unknown-linux-musl:
uses: ./.github/workflows/build.yaml
with:
extra_packages: libudev-dev gcc-multilib
target: i686-unknown-linux-musl
x86_64-apple-darwin:
uses: ./.github/workflows/build.yaml
with:
runs_on: macos-latest
target: x86_64-apple-darwin
x86_64-pc-windows-gnu:
uses: ./.github/workflows/build.yaml
with:
runs_on: windows-2019
target: x86_64-pc-windows-gnu
x86_64-pc-windows-msvc:
uses: ./.github/workflows/build.yaml
with:
runs_on: windows-2019
target: x86_64-pc-windows-msvc
x86_64-unknown-freebsd:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
target: x86_64-unknown-freebsd
x86_64-unknown-linux-gnu:
uses: ./.github/workflows/build.yaml
with:
extra_packages: libudev-dev
target: x86_64-unknown-linux-gnu
x86_64-unknown-linux-musl:
uses: ./.github/workflows/build.yaml
with:
target: x86_64-unknown-linux-musl
x86_64-unknown-netbsd:
uses: ./.github/workflows/build.yaml
with:
disable_extra_builds: true
disable_tests: true
target: x86_64-unknown-netbsd
# --------------------------------------------------------------------------
# NIGHTLY BUILD
aarch64-apple-darwin-nightly:
uses: ./.github/workflows/build.yaml
with:
continue-on-error: true
disable_tests: true
runs_on: macos-latest
target: aarch64-apple-darwin
toolchain: nightly
x86_64-pc-windows-msvc-nightly:
uses: ./.github/workflows/build.yaml
with:
continue-on-error: true
runs_on: windows-2019
target: x86_64-pc-windows-msvc
toolchain: nightly
x86_64-unknown-linux-gnu-nightly:
uses: ./.github/workflows/build.yaml
with:
continue-on-error: true
extra_packages: libudev-dev
target: x86_64-unknown-linux-gnu
toolchain: nightly