Run prek in your GitHub Actions workflows.
name: Prek checks
on: [push, pull_request]
jobs:
prek:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2.0.6prek is always invoked as:
prek run --show-diff-on-failure --color=always <extra-args>
For v2 and earlier releases, major and minor tags such as v2 and v2.0 are moving tags. Starting with v3, major and minor tags are no longer published. Always use an exact version such as j178/prek-action@v3.0.0; for stronger protection against supply-chain attacks, pin to a full commit SHA.
| Input | Description | Required | Default |
|---|---|---|---|
extra-args |
Additional arguments appended to prek run --show-diff-on-failure --color=always |
No | --all-files |
extra_args |
Deprecated alias for extra-args |
No | |
prek-version |
Version or semver range to install, for example 0.2.30, 0.3.x, <=1.0.0, or latest |
No | latest |
install-only |
Install prek but skip prek run |
No | false |
working-directory |
Directory where prek run is executed |
No | . |
show-verbose-logs |
Print the prek verbose log after prek run completes |
No | true |
cache |
Cache the prek environment between workflow runs | No | true |
token |
Deprecated and unused; retained for backward compatibility | No | '' |
| Output | Description |
|---|---|
prek-version |
The resolved prek version, normalized to a v-prefixed tag |
cache-hit |
Whether the restored prek cache exactly matched the computed primary cache key |
Install and run against all files:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2.0.6Pass extra arguments:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2.0.6
with:
extra-args: '--all-files --directory packages/'Pin a specific prek version:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2.0.6
with:
prek-version: '0.2.30'Resolve a semver range:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2.0.6
with:
prek-version: '0.3.x'Install only:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2.0.6
with:
install-only: true
- run: prek run --show-diff-on-failure --color=always --all-filesDisable verbose log output after the run:
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
- uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2.0.6
with:
show-verbose-logs: falseThe target repository needs a prek or pre-commit configuration file:
prek.toml.pre-commit-config.yaml.pre-commit-config.yml
For contributor setup, testing, bundling, and release steps, see CONTRIBUTING.md.