name: CI on: push: pull_request: env: CARGO_TERM_COLOR: always RUST_BACKTRACE: short RUSTFLAGS: -D warnings jobs: fmt: name: cargo fmt --check runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@1.83 with: components: rustfmt - run: cargo fmt --all -- --check clippy: name: cargo clippy runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@1.83 with: components: clippy - uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-clippy-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} restore-keys: | ${{ runner.os }}-cargo-clippy- - run: cargo clippy --workspace --all-targets -- -D warnings test: name: cargo test runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@1.83 - uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} restore-keys: | ${{ runner.os }}-cargo-test- - run: cargo test --workspace --all-targets keymaps: name: editor keymaps runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: dtolnay/rust-toolchain@1.83 - uses: actions/cache@v4 with: path: | ~/.cargo/registry ~/.cargo/git target key: ${{ runner.os }}-cargo-test-${{ hashFiles('**/Cargo.lock', '**/Cargo.toml') }} restore-keys: | ${{ runner.os }}-cargo-test- - name: install neovim run: | sudo apt-get update -qq sudo apt-get install -y --no-install-recommends neovim nvim --version | head -1 - name: run keymap harness run: ./scripts/test-keymaps.sh