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

75 lines
2.7 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 > zig.tar.gz ;
unxz zig.tar.xz ;
tar -xf zig.tar zig ;
ls ;
ls -lh zig ;
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 }}