pict-rs/.forgejo/workflows/check.yaml
2024-02-07 14:18:16 -06:00

72 lines
2.6 KiB
YAML

on:
push:
pull_request:
branches:
- main
jobs:
zigbuild:
runs-on: docker
container:
image: docker.io/node:20-bookworm
steps:
- uses: actions/checkout@v4
- run: |
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain stable --profile minimal -y
export PATH=$PATH:/root/.cargo/bin
rustup target add x86_64-unknown-linux-musl
rustup target add armv7-unknown-linux-musleabihf
rustup target add aarch64-unknown-linux-musl
rustup component add clippy
curl -L --proto '=https' --tlsv1.2 -sSf https://raw.githubusercontent.com/cargo-bins/cargo-binstall/main/install-from-binstall-release.sh | bash
yes | cargo binstall cargo-zigbuild
curl -L --proto '=https' --tlsv1.2 -sSf https://ziglang.org/download/0.11.0/zig-linux-x86_64-0.11.0.tar.xz | unxz > zig.tar
tar -xf zig.tar
export PATH=$PATH:$(pwd)/zig
chmod +x ./zig/zig
cargo zigbuild --target x86_64-unknown-linux-musl
cargo zigbuild --target armv7-unknown-linux-musleabihf
cargo zigbuild --target aarch64-unknown-linux-musl
cargo clippy --no-default-features -- -D warnings
clippy:
runs-on: docker
container:
image: docker.io/asonix/rust-builder:latest-linux-amd64
steps:
- run: |
git clone ${{ env.github_server_url }}/${{ env.github_repository }} .
git checkout ${{ env.github_sha }}
rustup component add clippy
cargo clippy --no-default-features -- -D warnings
cargo clippy --no-default-features --features io-uring -- -D warnings
tests:
runs-on: docker
container:
image: docker.io/asonix/rust-builder:latest-linux-amd64
steps:
- run: |
git clone ${{ env.github_server_url }}/${{ env.github_repository }} .
git checkout ${{ env.github_sha }}
cargo test
check:
strategy:
matrix:
include:
- image: docker.io/asonix/rust-builder:latest-linux-amd64
target: x86_64-unknown-linux-musl
- image: docker.io/asonix/rust-builder:latest-linux-arm32v7
target: armv7-unknown-linux-musleabihf
- image: docker.io/asonix/rust-builder:latest-linux-arm64v8
target: aarch64-unknown-linux-musl
runs-on: docker
container:
image: ${{ matrix.image }}
steps:
- run: |
git clone ${{ env.github_server_url }}/${{ env.github_repository }} .
git checkout ${{ env.github_sha }}
cargo check --target ${{ matrix.target }}