Run prek in your GitHub Actions workflows.
Usage
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.6
prek is always invoked as:
prek run --show-diff-on-failure --color=always <extra-args>
Version Tags
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.
Inputs
| 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 | '' |
Outputs
| 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 |
Examples
Install and run against all files:
steps: - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 - uses: j178/prek-action@5337cb91e0fa35a7ff31b9ca345126d8bbbcdf16 # v2.0.6
Pass 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-files
Disable 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: false
Requirements
The target repository needs a prek or pre-commit configuration file:
prek.toml.pre-commit-config.yaml.pre-commit-config.yml
Contributing
For contributor setup, testing, bundling, and release steps, see CONTRIBUTING.md.