atomic-traits 0.4.0

The traits for generic atomic operations
Documentation
on: [push, pull_request]

name: Continuous integration

jobs:
  check:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rust-lang/setup-rust-toolchain@v1
      - run: |

          cargo check

  test:
    runs-on: ${{ matrix.os }}
    continue-on-error: ${{ matrix.experimental }}
    strategy:
      fail-fast: false
      matrix:
        os:
          - ubuntu-latest
          - windows-latest
          - macos-latest
        experimental: [false]
        rust:
          - stable
          - nightly
        args:
          -
          - --no-default-features
          - --features loom_atomics
        include:
          - os: ubuntu-latest
            rust: 1.34.0 # rustc-version MSRV
            experimental: true
          - os: ubuntu-latest
            rust: 1.45.0
            experimental: true
          - os: ubuntu-latest
            rust: 1.50.0
            experimental: true
          - os: ubuntu-latest
            rust: 1.60.0
            experimental: true
          - os: ubuntu-latest
            rust: nightly
            experimental: true
            args:
              - --all-features
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          toolchain: ${{ matrix.rust }}
      - if: startsWith(matrix.rust, '1.45')
        run: |

          echo "CARGO_NET_GIT_FETCH_WITH_CLI=true" >> $GITHUB_ENV
      - run: |

          cargo test -v ${{ matrix.args }}

  fmt:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: rustfmt
      - uses: actions-rust-lang/rustfmt@v1

  clippy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
          components: clippy
      - run: |

          cargo clippy -- -D warnings

  audit:
    runs-on: ubuntu-latest
    permissions:
      contents: read
      issues: write
    steps:
      - uses: actions/checkout@v4
      - uses: actions-rust-lang/audit@v1
        name: Audit Rust Dependencies
        with:
          # Comma separated list of issues to ignore
          ignore: RUSTSEC-2020-0036