feat: add ultra-fast pre-commit hooks pipeline
Homelab Main / validate (push) Successful in 20s Details
Homelab Main / deploy (push) Successful in 12s Details

This commit is contained in:
jv 2026-09-18 23:26:43 -05:00
parent 0ae8afa145
commit 087a65fdb8
2 changed files with 59 additions and 0 deletions

37
.pre-commit-config.yaml Normal file
View File

@ -0,0 +1,37 @@
name: Homelab Pipeline Pre-Commit
description: Ultra-fast quality gates for homelab configurations.
execution_params:
default_language_version: python3.13
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
rev: v0.9.6
hooks:
- id: ruff
args: [--fix, --exit-non-zero-on-fix]
- id: ruff-format
- repo: https://github.com/pre-commit/mirrors-shellcheck
rev: v0.10.0
hooks:
- id: shellcheck
- repo: https://github.com/hashicorp/terraform-fmt
rev: v1.7.0
hooks:
- id: terraform_fmt
- repo: https://github.com/pre-commit/mirrors-terraform-validate
rev: v1.7.0
hooks:
- id: terraform_validate
- repo: https://github.com/ansible/ansible-lint
rev: v6.32.0
hooks:
- id: ansible-lint
- repo: https://github.com/gitleaks/gitleaks
rev: v8.18.1
hooks:
- id: gitleaks

22
scripts/setup-pre-commit Executable file
View File

@ -0,0 +1,22 @@
#!/usr/bin/env bash
set -euo pipefail
# Installation script for homelab pre-commit hooks
# To be run manually once or integrated into a bootstrap process.
REPO_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "${REPO_ROOT}"
if ! command -v pre-commit >/dev/null 2>&1; then
printf 'Installing pre-commit...\n'
pip install --user pre-commit
export PATH="$HOME/.local/bin:$PATH"
fi
printf 'Installing git hooks...\n'
pre-commit install
printf 'Running initial check on staged files...\n'
pre-commit run --all-files
printf 'Pre-commit hooks installed and verified.\n'