ecow 0.2.6

Compact, clone-on-write vector and string.
Documentation
name: CI

on:
  push:
  pull_request:
  schedule:
    # Run weekly to keep Rust toolchain changes fresh
    - cron: '0 0 * * 1'

jobs:
  multiple_toolchains:
    name: Stable and Beta tasks
    runs-on: ubuntu-latest
    strategy:
      matrix:
        rust:
          - 1.73
          - beta

    steps:
      - uses: actions/checkout@v3
      - name: Install ${{ matrix.rust }} toolchain
        uses: dtolnay/rust-toolchain@master
        with:
            toolchain: ${{ matrix.rust }}
            components: rustfmt
      - name: Check formatting
        run: cargo fmt --all --check
      - name: Check check
        env:
          RUSTFLAGS: -D warnings
        run: cargo check
      - name: Run test suite
        run: cargo test
      - name: Check docs
        env:
          RUSTDOCFLAGS: -D warnings
        run: cargo doc --no-deps --document-private-items
      - name: Run loom tests
        env:
          RUSTFLAGS: --cfg loom
        run: cargo test --release loom --features loom

  # We use a healthy amount of unsafe, so run tests with Miri to check for UB
  nightly_only:
    name: Nightly tasks
    runs-on: ubuntu-latest

    steps:
      - uses: actions/checkout@v3
      - name: Install nightly toolchain
        uses: dtolnay/rust-toolchain@master
        with:
            toolchain: nightly
            components: miri
      - name: Miri 64-bit LE
        run: cargo miri test --target x86_64-unknown-linux-gnu
      - name: Miri 64-bit BE
        run: cargo miri test --target sparc64-unknown-linux-gnu
      - name: Miri 32-bit LE
        run: cargo miri test --target i686-unknown-linux-gnu