bty 0.2.0

Streamlined definition and usage of branded types in Rust
Documentation
name: CI

on:
  push:
  pull_request:
  workflow_dispatch:
    schedule:
      - cron: "40 1 * * *"

permissions:
  contents: read

env:
  RUSTFLAGS: -Dwarnings

jobs:
  test:
    name: ${{ matrix.name || format('Rust {0}', matrix.rust) }}
    runs-on: ${{ matrix.os }}-latest
    strategy:
      fail-fast: false
      matrix:
        rust: [nightly, beta, stable, 1.60.0]
        os: [ubuntu]
        include:
          - name: macOS
            os: macos
            rust: nightly
          - name: Windows (gnu)
            os: windows
            rust: nightly-x86_64-pc-windows-gnu
          - name: Windows (msvc)
            os: windows
            rust: nightly-x86_64-pc-windows-msvc
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@master
        with:
          toolchain: ${{matrix.rust}}
      - name: Enable type layout randomization
        run: echo RUSTFLAGS=${RUSTFLAGS}\ -Zrandomize-layout >> $GITHUB_ENV
        if: startsWith(matrix.rust, 'nightly')
      - run: cargo test

  clippy:
    name: Clippy
    runs-on: ubuntu-latest
    if: github.event_name != 'pull_request'
    timeout-minutes: 30
    steps:
      - uses: actions/checkout@v3
      - uses: dtolnay/rust-toolchain@clippy
      - run: cargo clippy --tests -- -Dclippy::all -Dclippy::pedantic