Skip to content

use set-git-hooks-dir for setting Git hooks automatically #513

use set-git-hooks-dir for setting Git hooks automatically

use set-git-hooks-dir for setting Git hooks automatically #513

Workflow file for this run

name: CI
on: [push, pull_request]
jobs:
unit-test:
strategy:
matrix:
os: [ubuntu-latest, macos-latest, windows-latest, macos-12]
fail-fast: true
runs-on: ${{ matrix.os }}
env:
RUSTFLAGS: -D warnings
RUST_BACKTRACE: 1
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: llvm-tools-preview
- uses: Swatinem/rust-cache@v2
- name: Install cargo-llvm-cov
uses: taiki-e/install-action@cargo-llvm-cov
- name: Run tests
run: |
cargo llvm-cov --color always --lcov --output-path lcov.info
cargo llvm-cov --color always --no-run
shell: bash
- name: Sanity check
run: cargo run --color always -- hgrep README.md
- run: cargo run --color always --no-default-features --features syntect-printer -- --version
- run: cargo run --color always --no-default-features --features bat-printer -- --version
- run: cargo run --color always --no-default-features --features syntect-printer,bat-printer -- --version
- run: cargo run --color always --no-default-features --features ripgrep,syntect-printer -- --version
- run: cargo run --color always --no-default-features --features ripgrep,bat-printer -- --version
# Test hgrep can ignore broken pipe error. `head -n` exits before `cargo run` exits. Since `cargo run` does not
# know that, it tries to write additional outputs to stdout. But the stdout is already closed by the succeeding
# process.
- run: cargo run --color always -- Printer src | head -n 5
if: ${{ matrix.os != 'windows-latest' }}
- run: |
$ErrorActionPreference = "Continue"
cargo run --color always -- Printer src | head -n 5
if: ${{ matrix.os == 'windows-latest' }}
shell: pwsh
- uses: codecov/codecov-action@v4
with:
files: lcov.info
token: ${{ secrets.CODECOV_TOKEN }}
lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: dtolnay/rust-toolchain@stable
with:
components: rustfmt, clippy
- uses: Swatinem/rust-cache@v2
- name: rustfmt
run: cargo fmt -- --check --color always
- name: clippy
run: cargo clippy --color always --benches --tests --all -- -D warnings