macaw 0.30.0

An opinionated game math library built on top the excellent glam
Documentation
name: CI
on:
  push:
    branches:
      - main
    tags:
      - "*"
  pull_request:

concurrency:
  group: ${{ github.workflow }}-${{ github.head_ref || github.run_id }}
  cancel-in-progress: true

jobs:
  lint:
    name: Lint
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
        with:
          components: "clippy, rustfmt"
      - uses: Swatinem/rust-cache@v2

      # make sure all code has been formatted with rustfmt and linted with clippy
      - name: rustfmt
        run: cargo fmt -- --check --color always

      # run clippy to verify we have no warnings
      - run: cargo fetch
      - name: cargo clippy
        run: cargo clippy --all-targets --all-features -- -D warnings

  test:
    name: Test
    strategy:
      matrix:
        os: [ubuntu-22.04, macos-14]
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v4
        with:
          submodules: true
      - uses: dtolnay/rust-toolchain@stable
      - uses: Swatinem/rust-cache@v2
      - run: cargo fetch
      - name: cargo test build
        run: cargo build --tests
      - run: cargo test

  publish-check:
    name: Publish Check
    runs-on: ubuntu-22.04
    steps:
      - uses: actions/checkout@v4
      - uses: dtolnay/rust-toolchain@stable
      - uses: Swatinem/rust-cache@v2
      - run: cargo fetch
      - name: cargo publish
        run: cargo publish --dry-run

  test_success:
    runs-on: ubuntu-22.04
    needs: [lint, test, publish-check]
    steps:
      - run: echo "All test jobs passed"