name: Check
on:
push:
branches: [ "*" ]
pull_request:
branches: [ "*" ]
env:
CARGO_TERM_COLOR: always
BABASHKA_VERSION: "1.12.215"
jobs:
test_linux:
name: Test Linux
runs-on: ubuntu-latest
strategy:
matrix:
target:
- "x86_64-unknown-linux-gnu"
- "i686-unknown-linux-gnu"
env:
RUSTFLAGS: "-D warnings"
RUSTDOCFLAGS: "-D warnings"
CARGO_BUILD_TARGET: ${{ matrix.target }}
steps:
- name: Update sources
run: sudo apt update
- name: Install libc6-dev-i386
run: sudo apt install libc6-dev-i386
if: ${{ contains(matrix.target, 'i686') }}
- uses: actions/checkout@v7.0.0
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
toolchain: stable minus 2 releases
- uses: turtlequeue/setup-babashka@v1.7.0
with:
babashka-version: ${{ env.BABASHKA_VERSION }}
- name: Test gnu
run: bb cargo-test
build_linux:
name: Build Linux
runs-on: ubuntu-latest
strategy:
matrix:
target:
- "x86_64-unknown-linux-gnu"
- "i686-unknown-linux-gnu"
- "arm-unknown-linux-gnueabihf"
- "armv7-unknown-linux-gnueabihf"
- "aarch64-unknown-linux-gnu"
env:
RUSTFLAGS: "-D warnings"
RUSTDOCFLAGS: "-D warnings"
CARGO_BUILD_TARGET: ${{ matrix.target }}
steps:
- name: Update sources
run: sudo apt update
- name: Install libc6-dev-i386
run: sudo apt install libc6-dev-i386
if: ${{ contains(matrix.target, 'i686') }}
- name: Install libc6-dev-armhf-cross
run: sudo apt install libc6-dev-armhf-cross gcc-arm-linux-gnueabihf
if: ${{ contains(matrix.target, 'arm') }}
- name: Install libc6-dev-arm64-cross
run: sudo apt install libc6-dev-arm64-cross gcc-aarch64-linux-gnu
if: ${{ contains(matrix.target, 'aarch64') }}
- uses: actions/checkout@v7.0.0
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
toolchain: stable minus 2 releases
- uses: turtlequeue/setup-babashka@v1.7.0
with:
babashka-version: ${{ env.BABASHKA_VERSION }}
- name: Build gnu target
run: bb cargo-build
build_windows:
name: Build Windows
runs-on: windows-latest
strategy:
matrix:
target: ["x86_64-pc-windows-msvc", "i686-pc-windows-msvc"]
env:
RUSTFLAGS: "-D warnings"
RUSTDOCFLAGS: "-D warnings"
CARGO_BUILD_TARGET: ${{ matrix.target }}
steps:
- uses: actions/checkout@v7.0.0
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
toolchain: stable minus 2 releases
- uses: turtlequeue/setup-babashka@v1.7.0
with:
babashka-version: ${{ env.BABASHKA_VERSION }}
- name: Build Windows
run: bb cargo-build
test_windows:
name: Test Windows
runs-on: windows-latest
strategy:
matrix:
target: ["x86_64-pc-windows-msvc", "i686-pc-windows-msvc"]
env:
RUSTFLAGS: "-D warnings"
RUSTDOCFLAGS: "-D warnings"
CARGO_BUILD_TARGET: ${{ matrix.target }}
steps:
- uses: actions/checkout@v7.0.0
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
toolchain: stable minus 2 releases
- uses: turtlequeue/setup-babashka@v1.7.0
with:
babashka-version: ${{ env.BABASHKA_VERSION }}
- name: Test Windows
run: bb cargo-test
build_macos:
name: Build macOS
runs-on: macos-latest
env:
RUSTFLAGS: "-D warnings"
RUSTDOCFLAGS: "-D warnings"
steps:
- uses: actions/checkout@v7.0.0
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable minus 2 releases
- uses: turtlequeue/setup-babashka@v1.7.0
with:
babashka-version: ${{ env.BABASHKA_VERSION }}
- name: Build macOS
run: bb cargo-build
build_linux_arm64:
name: Build Linux ARM64
runs-on: ubuntu-24.04-arm
env:
RUSTFLAGS: "-D warnings"
RUSTDOCFLAGS: "-D warnings"
CARGO_BUILD_TARGET: aarch64-unknown-linux-gnu
steps:
- uses: actions/checkout@v7.0.0
- uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-unknown-linux-gnu
toolchain: stable minus 2 releases
- uses: turtlequeue/setup-babashka@v1.7.0
with:
babashka-version: ${{ env.BABASHKA_VERSION }}
- name: Build ARM64
run: bb cargo-build
test_linux_arm64:
name: Test Linux ARM64
runs-on: ubuntu-24.04-arm
env:
RUSTFLAGS: "-D warnings"
RUSTDOCFLAGS: "-D warnings"
CARGO_BUILD_TARGET: aarch64-unknown-linux-gnu
steps:
- uses: actions/checkout@v7.0.0
- uses: dtolnay/rust-toolchain@stable
with:
targets: aarch64-unknown-linux-gnu
toolchain: stable minus 2 releases
- uses: turtlequeue/setup-babashka@v1.7.0
with:
babashka-version: ${{ env.BABASHKA_VERSION }}
- name: Test ARM64
run: bb cargo-test
test_macos:
name: Test macOS
runs-on: macos-latest
env:
RUSTFLAGS: "-D warnings"
RUSTDOCFLAGS: "-D warnings"
steps:
- uses: actions/checkout@v7.0.0
- uses: dtolnay/rust-toolchain@stable
with:
toolchain: stable minus 2 releases
- uses: turtlequeue/setup-babashka@v1.7.0
with:
babashka-version: ${{ env.BABASHKA_VERSION }}
- name: Test macOS
run: bb cargo-test
build_embedded:
name: Build Embedded
runs-on: ubuntu-latest
strategy:
matrix:
target:
- "thumbv6m-none-eabi"
env:
RUSTFLAGS: "-D warnings --cfg portable_atomic_unsafe_assume_single_core"
RUSTDOCFLAGS: "-D warnings"
steps:
- uses: actions/checkout@v7.0.0
- uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
toolchain: stable minus 2 releases
- name: no_std_release_build_sets
run: cargo build --no-default-features --features floats --target ${{ matrix.target }}
- name: no_std_release_build
run: cargo build --no-default-features --target ${{ matrix.target }}
- name: pico-edn example
run: cargo build --manifest-path examples/pico/pico-edn/Cargo.toml --target ${{ matrix.target }}
fmt:
runs-on: ubuntu-latest
name: fmt
steps:
- uses: actions/checkout@v7.0.0
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt
- uses: turtlequeue/setup-babashka@v1.7.0
with:
babashka-version: ${{ env.BABASHKA_VERSION }}
- run: bb cargo-fmt
clippy_check:
name: clippy
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v7.0.0
- uses: dtolnay/rust-toolchain@stable
with:
components: clippy
toolchain: stable minus 2 releases
- uses: turtlequeue/setup-babashka@v1.7.0
with:
babashka-version: ${{ env.BABASHKA_VERSION }}
- run: bb clippy