32 lines
1.4 KiB
Markdown
32 lines
1.4 KiB
Markdown
|
# verdigado pre-commit container
|
||
|
|
||
|
A container image to include all dependencies (and a warmed up cache) used in our [`pre-commit`](https://pre-commit.com/) hooks/CI steps to speed up execution.
|
||
|
|
||
|
If you see any pre-commit CI jobs installing dependencies:
|
||
|
|
||
|
- Make sure to execute `pre-commit` using this container
|
||
|
- Add the hook to this repo's `.pre-commit-config.yaml`
|
||
|
- Optionally install dependencies in the `Dockerfile` with the versions set up for `Renovate`
|
||
|
|
||
|
## Usage
|
||
|
|
||
|
In your `.woodpecker.yaml`, adapt and add the following block:
|
||
|
|
||
|
```yaml
|
||
|
steps:
|
||
|
check-pre-commit:
|
||
|
image: git.verdigado.com/verdigado-images/container-pre-commit:latest
|
||
|
environment:
|
||
|
- SKIP=no-commit-to-branch # Ignore "don't commit to protected branch" check
|
||
|
commands:
|
||
|
- pre-commit run --all-files
|
||
|
```
|
||
|
|
||
|
If renovate is set up, it'll add and update the pinned digest/hash of the image.
|
||
|
|
||
|
## Development
|
||
|
|
||
|
If you need to copy files into the container, don't forget to add exclusions to the general _exclude all_ in `.dockerignore`.
|
||
|
|
||
|
To update the base image (like `3.12.4-alpine3.20` to a newer Alpine version), manual work is still required. In the `Dockerfile`, update the Alpine version for the image, the renovate comments (`# renovate: datasource=repology depName=alpine_3_20/gcc versioning=loose`), and the package versions for that OS version from the repo (Like on the [Alpine Package Page for gcc](https://pkgs.alpinelinux.org/packages?name=gcc&branch=v3.20&repo=&arch=x86_64)).
|