proc-ctl 0.4.1

A helper library for querying and manipulating processes
Documentation
name: Rust

on:
  push:
    branches: [ "main" ]
  pull_request:
    branches: [ "main" ]

env:
  CARGO_TERM_COLOR: always

concurrency:
    group: ${{ github.workflow }}-${{ github.ref_name }}
    cancel-in-progress: true

jobs:
  build:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest, windows-latest]
      fail-fast: false
    runs-on: ${{ matrix.os }}
    steps:
    - uses: actions/checkout@v4

    - uses: Swatinem/rust-cache@v2

    - name: Check formatting
      run: cargo fmt --all -- --check

    - name: Lint
      run: |
        cargo clippy --all-targets -- -Dwarnings
        cargo clippy --no-default-features --all-targets -- -Dwarnings
        cargo clippy --features resilience --all-targets -- -Dwarnings
        cargo clippy --features async --all-targets -- -Dwarnings
        cargo clippy --all-features --all-targets -- -Dwarnings

    - name: Run tests
      run: |-
        # Create test binaries
        cargo build --release --bins
        
        cargo test -- --test-threads=1
        cargo test --no-default-features --test lib_test -- --test-threads=1
        cargo test --features resilience -- --test-threads=1
        cargo test --features async -- --test-threads=1
        cargo test --all-features -- --test-threads=1