diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml new file mode 100644 index 00000000..3f8872b8 --- /dev/null +++ b/.github/workflows/freebsd.yml @@ -0,0 +1,41 @@ +name: TestFreeBSD + +on: + [push, pull_request] + +concurrency: + group: ${{ github.workflow }}-${{ github.ref }}-${{ github.event_name }} + cancel-in-progress: true + +jobs: + test: + runs-on: ubuntu-latest + strategy: + matrix: + toolchain: ["stable"] # ["nightly", "beta", "stable"] # + steps: + - uses: actions/checkout@v4 + - name: Test in FreeBSD + id: test + uses: vmactions/freebsd-vm@v1 + with: + usesh: true + sync: rsync + copyback: false + prepare: | + pkg install -y curl pkgconf glib + curl --proto '=https' --tlsv1.2 https://sh.rustup.rs -sSf > install.sh + chmod +x install.sh + ./install.sh -y --default-toolchain ${{ matrix.toolchain }} + run: | + . "$HOME/.cargo/env" + set -ex + + # Add feature "nightly" if toolchain is nightly + if [ "${{ matrix.toolchain }}" = "nightly" ]; then + ARGS="$ARGS --features nightly" + fi + + RUST_BACKTRACE=1 cargo +${{ matrix.toolchain }} fmt --all -- --check + RUST_BACKTRACE=1 cargo +${{ matrix.toolchain }} clippy --all-features -- -D warnings + RUST_BACKTRACE=1 cargo +${{ matrix.toolchain }} build --all-features