name: tests
on:
push: { branches: ["master", "main"] }
pull_request: { branches: "*" }
jobs:
build_and_test:
name: Linux
runs-on: ${{ matrix.os }}
strategy:
matrix:
build: [stable, beta, nightly, stable-musl]
include:
- build: stable
os: ubuntu-latest
rust: stable
target: x86_64-unknown-linux-gnu
- build: beta
os: ubuntu-latest
rust: beta
target: x86_64-unknown-linux-gnu
- build: nightly
os: ubuntu-latest
rust: nightly
target: x86_64-unknown-linux-gnu
- build: stable-musl
os: ubuntu-latest
rust: stable
target: x86_64-unknown-linux-musl
steps:
- name: Checkout code
uses: actions/checkout@master
- name: Install toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: ${{ matrix.rust }}
profile: minimal
components: clippy
target: ${{ matrix.target }}
- name: Build
uses: actions-rs/cargo@v1
with:
command: build
toolchain: ${{ matrix.rust }}
args: --all-features --color=always --target ${{ matrix.target }}
- name: Test
uses: actions-rs/cargo@v1
with:
command: test
toolchain: ${{ matrix.rust }}
args: --all-features --color=always --target ${{ matrix.target }}
- name: Clippy
uses: actions-rs/clippy-check@v1
if: matrix.build == 'nightly'
with:
toolchain: ${{ matrix.rust }}
token: ${{ secrets.GITHUB_TOKEN }}
args: --release --all-features
vmactions:
runs-on: ubuntu-latest
name: FreeBSD
steps:
- uses: actions/checkout@v6
- name: Start VM
uses: vmactions/freebsd-vm@v1
with:
release: "14.4"
usesh: true
- name: Install dependencies
shell: freebsd {0}
run: |
pkg install -y curl
fetch https://sh.rustup.rs -o rustup.sh
sh rustup.sh -y --profile=minimal
- name: Build
shell: freebsd {0}
run: |
. $HOME/.cargo/env
cargo build --all-features --color=always
- name: Test
shell: freebsd {0}
run: |
. $HOME/.cargo/env
cargo test --all-features --color=always