reedline 0.47.0

A readline-like crate for CLI text input
Documentation
on:
  pull_request:
  push: # Run CI on the main branch after every merge. This is important to fill the GitHub Actions cache in a way that pull requests can see it
    branches:
      - main

name: continuous-integration

jobs:
  build-lint-test:
    strategy:
      fail-fast: false
      matrix:
        platform: [ubuntu-latest]
        rust:
          - stable
        # Define the feature sets that will be built here (for caching you define a separate name)
        style: [bashisms, default, sqlite, basqlite, external_printer, helix]
        include:
          - style: bashisms
            flags: "--features bashisms"
          - style: external_printer
            flags: "--features external_printer"
          - style: default
            flags: ""
          - style: sqlite
            flags: "--features sqlite"
          - style: basqlite
            flags: "--features bashisms,sqlite"
          - style: helix
            flags: "--features helix"


    runs-on: ${{ matrix.platform }}

    steps:
      - uses: actions/checkout@v5

      - name: Setup Rust toolchain
        uses: actions-rust-lang/setup-rust-toolchain@v1
        with:
            components: clippy, rustfmt

      - name: Setup nextest
        uses: taiki-e/install-action@nextest

      - name: Rustfmt
        run: cargo fmt --all -- --check

      - name: Clippy
        run: cargo clippy ${{ matrix.flags }} --all-targets --all -- -D warnings

      - name: Tests
        run: cargo nextest run --all ${{ matrix.flags }}

      - name: Check for clean repo
        shell: bash
        run: |

          if [ -n "$(git status --porcelain)" ]; then
            echo "there are changes";
            git status --porcelain
            exit 1
          else
            echo "no changes in working directory";
          fi

      - name: Check lockfile
        run: cargo check --locked ${{ matrix.flags }} --all-targets --all

      - name: Doctests
        run: cargo test --doc ${{ matrix.flags }}