zerus 0.12.0

Lightweight binary to download only project required crates for offline crates.io mirror
on:
  push:
    branches:
      - master
  pull_request:
    branches:
      - master

name: ci

jobs:
  # build, test all supported targets
  build-stable:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        targets:
          - x86_64-unknown-linux-musl
        toolchain:
          - stable

    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - uses: dtolnay/rust-toolchain@c5a29ddb4d9d194e7c84ec8c3fba61b1c31fee8c # master
        with:
          toolchain: ${{ matrix.toolchain }}
          target: ${{ matrix.targets }}
      - run: cargo install cross --git https://github.com/cross-rs/cross --force
      - run: cross build --locked --workspace --target ${{ matrix.targets }}

  # test (only x86-64-unknown-linux-musl)
  test-stable:
    runs-on: ubuntu-latest
    strategy:
      matrix:
        targets:
          - x86_64-unknown-linux-musl
       toolchain:
          - nightly-2025-10-09


    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - uses: dtolnay/rust-toolchain@c5a29ddb4d9d194e7c84ec8c3fba61b1c31fee8c # master
        with:
          toolchain: ${{ matrix.toolchain }}
          target: x86_64-unknown-linux-musl, x86_64-unknown-linux-gnu
      - uses: actions/setup-python@v5
        with:
          python-version: '3.12' 
      - run: python3 -m http.server -h
      - run: cargo install cross --git https://github.com/cross-rs/cross --force
      - run: echo "${CARGO_HOME:-$HOME/.cargo}/bin" >> $GITHUB_PATH
      - run: echo "${CARGO_HOME:-$HOME/.rustup}/bin" >> $GITHUB_PATH
      - run: rustup install nightly-2024-05-19
      - run: rustup +nightly-2024-05-19 component add rust-src
      - run: rustup install nightly-2024-10-09
      - run: rustup +nightly-2024-10-09 component add rust-src
      - run: cargo test --locked --workspace --target x86_64-unknown-linux-gnu

  # fmt and clippy on nightly builds
  fmt-clippy-nightly:
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
      - uses: dtolnay/rust-toolchain@c5a29ddb4d9d194e7c84ec8c3fba61b1c31fee8c # master
        with:
          toolchain: nightly
          target: x86_64-unknown-linux-musl
          components: rustfmt, clippy
      - run: cargo install cargo-quickinstall
      - run: cargo quickinstall cross
      - run: cargo fmt --all --check
      - run: cross clippy --target x86_64-unknown-linux-gnu --workspace -- -D warnings