ansible-collection-hetzner-.../.pre-commit-config.yaml
Julian Tölle eb4114bad3
ci: setup release-please (#317)
##### SUMMARY

The current release process for this project requires multiple manual
local steps to prepare and then tag the release. This introduces the
standard release-please workflow we have in most of our integrations.

Release-please will open a new PR whenever there is a releasable change
and it updates the CHANGELOG & other files automatically in this PR.
Once the PR is merged a new tag is created.

This repository has some additional complexity as it uses
`antsibull-changelog` to maintain the user-facing changelog. This is
implemented ina second job in the `release-please` workflow which
executes when the release-please PR is updated and then runs
`antsibull-changelog release` against the version. The resulting changes
are pushed as a second commit to the same PR.
2023-09-05 14:49:05 +02:00

100 lines
2.7 KiB
YAML

---
# See https://pre-commit.com for more information
# See https://pre-commit.com/hooks.html for more hooks
exclude: ^plugins/module_utils/vendor/hcloud/.*$
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
rev: v4.4.0
hooks:
- id: check-added-large-files
- id: check-case-conflict
- id: check-symlinks
- id: destroyed-symlinks
- id: check-json
- id: check-yaml
- id: check-toml
- id: check-merge-conflict
- id: end-of-file-fixer
- id: mixed-line-ending
- id: trailing-whitespace
- repo: https://github.com/pre-commit/mirrors-prettier
rev: v3.0.3
hooks:
- id: prettier
files: \.(md|ya?ml)$
exclude: ^changelogs/changelog.yaml$
- repo: https://github.com/asottile/pyupgrade
rev: v3.10.1
hooks:
- id: pyupgrade
args: [--py38-plus]
- repo: https://github.com/pycqa/isort
rev: 5.12.0
hooks:
- id: isort
- repo: https://github.com/psf/black
rev: 23.7.0
hooks:
- id: black
- repo: https://github.com/ansible-community/antsibull-changelog
rev: 0.23.0
hooks:
- id: antsibull-changelog-lint
- id: antsibull-changelog-lint-changelog-yaml
- repo: local
hooks:
- id: antsibull-docs-lint-collection
name: antsibull-docs lint-collection
description: Lint the collection docs
language: python
entry: antsibull-docs lint-collection-docs --plugin-docs .
pass_filenames: false
additional_dependencies:
- antsibull-docs==2.3.1
- repo: https://github.com/ansible/ansible-lint
rev: v6.18.0
hooks:
- id: ansible-lint
name: ansible-lint
- repo: local
hooks:
- id: shfmt
name: shfmt
description: Format shell scripts with shfmt
language: golang
additional_dependencies: [mvdan.cc/sh/v3/cmd/shfmt@v3.7.0]
entry: shfmt -i 2 -ci -sr -kp -w
types: [shell]
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.9.0.5
hooks:
- id: shellcheck
- repo: local
hooks:
- id: check-hcloud-vendor
name: check hcloud vendor
description: Ensure the hcloud vendored files are in sync
language: python
entry: python3 scripts/vendor.py
pass_filenames: false
files: ^scripts/vendor.py$
- id: check-integration-test-files
name: check integration test files
description: Ensure the integration test files are in sync
language: system
entry: scripts/integration-test-files.sh
pass_filenames: false
files: ^(scripts/integration-test-files.sh$|tests/integration)