name: ci on: push: branches: [main] pull_request: workflow_dispatch: env: CARGO_TERM_COLOR: always RUSTFLAGS: -D warnings jobs: check: strategy: fail-fast: false matrix: os: [ubuntu-latest, macos-latest] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@stable with: components: rustfmt, clippy - uses: Swatinem/rust-cache@v2 # The pty suite drives each shell for real, so it can only check the ones # that are installed. macOS ships bash 3.2, which has no # command_not_found_handle; the suite skips it unless a newer one is found. - name: shells (linux) if: runner.os == 'Linux' run: sudo apt-get update && sudo apt-get install -y zsh fish - name: shells (macos) if: runner.os == 'macOS' run: brew install bash fish - run: cargo fmt --all --check - run: cargo clippy --all-targets --all-features - run: cargo test - run: cargo build --release - run: python3 tests/shells.py msrv: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@1.70.0 - uses: Swatinem/rust-cache@v2 - run: cargo build --release