cascada 0.3.0

A general purpose UI layout engine
Documentation
name: CI
on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]
concurrency:
  group: ci-${{github.ref}}-${{github.workflow}}
  cancel-in-progress: true
env:
  CARGO_TERM_COLOR: always
jobs:
  semver:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Check semver
        uses: obi1kenobi/cargo-semver-checks-action@v2
  clippy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Cache cargo
        uses: actions/cache@v4
        with:
          key: cargo-${{runner.os}}-${{hashFiles('**/Cargo.toml')}}
          path: |
            ~/.cargo
            target
          restore-keys: cargo-${{runner.os}}-
      - name: Run cargo clippy
        run: cargo clippy --all-targets --all-features -- -D warnings
  format:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Check formatting
        run: cargo fmt --check
  test:
    strategy:
      fail-fast: false
      matrix:
        os: [ 'ubuntu-latest','macos-latest','windows-latest' ]
    runs-on: ${{matrix.os}}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/cache@v4
        with:
          key: cargo-${{runner.os}}-${{hashFiles('**/Cargo.toml')}}
          path: |
            target/
            ~/.cargo
          restore-keys: cargo-${{runner.os}}-
      - uses: taiki-e/install-action@cargo-nextest
      - name: Run tests
        run: cargo nextest run --all-targets --all-features
  doc-tests:
    strategy:
      fail-fast: false
      matrix:
        os: [ 'ubuntu-latest','macos-latest','windows-latest' ]
    runs-on: ${{matrix.os}}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/cache@v4
        with:
          key: cargo-${{runner.os}}-${{hashFiles('**/Cargo.toml')}}
          path: |
            ~/.cargo
            target/
          restore-keys: cargo-${{runner.os}}-
      - name: Run doc tests
        run: cargo test --doc --all-features
  wasm:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions/cache@v4
        with:
          key: cargo-${{runner.os}}-${{hashFiles('**/Cargo.toml')}}
          path: |
            ~/.cargo
            target/
          restore-keys: cargo-${{runner.os}}-
      - run: rustup target add wasm32-unknown-unknown
      - run: cargo check --target wasm32-unknown-unknown
  build:
    strategy:
      matrix:
        os: ["windows-latest","macos-latest","ubuntu-latest"]
        features: ["--all-features","--no-default-features"]
    runs-on: ${{matrix.os}}
    steps:
      - uses: actions/checkout@v4
      - uses: actions/cache@v4
        with:
          key: cargo-${{runner.os}}-${{hashFiles('**/Cargo.toml')}}
          path: |
            ~/.cargo
            target/
          restore-keys: cargo-${{runner.os}}-
      - run: cargo build ${{matrix.features}}
  all-systems-pass:
    runs-on: ubuntu-latest
    needs:
      - clippy
      - doc-tests
      - test
      - semver
      - format
      - wasm
      - build
    steps:
      - uses: actions/checkout@v5
      - run: echo All good