on: 
  push:
    branches:
      - '*'
  pull_request:
    branches:
      - main

jobs:
  clippy:
    runs-on: docker
    container:
      image: docker.io/asonix/actions-base-image:0.1
    steps:
      -
        name: Checkout pict-rs
        uses: https://github.com/actions/checkout@v4
      -
        name: Cargo Cache
        uses: https://git.asonix.dog/asonix/actions/cache-rust-dependencies@main
      -
        name: Clippy
        run: |
          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/actions-base-image:0.1
    steps:
      -
        name: Checkout pict-rs
        uses: https://github.com/actions/checkout@v4
      -
        name: Cargo Cache
        uses: https://git.asonix.dog/asonix/actions/cache-rust-dependencies@main
      -
        name: Test
        run: cargo test

  check:
    strategy:
      fail-fast: false
      matrix:
        target:
          - x86_64-unknown-linux-musl
          - armv7-unknown-linux-musleabihf
          - aarch64-unknown-linux-musl
    runs-on: docker
    container:
      image: docker.io/asonix/actions-base-image:0.1
    steps:
      -
        name: Checkout pict-rs
        uses: https://github.com/actions/checkout@v4
      -
        name: Cargo Cache
        uses: https://git.asonix.dog/asonix/actions/cache-rust-dependencies@main
      -
        name: Debug builds
        run: cargo zigbuild --target ${{ matrix.target }}