chore: Add pre-push hooks

Adding pre-push hooks to cloudflared. While developing in cloudflared, I found myself constantly bumping into issues in CI, as I was forgetting to run linters and tests at times. We should run these before pushing any code to our repo.
This commit is contained in:
Miguel da Costa Martins Marcelino
2026-04-29 13:09:22 +00:00
parent df981b4d89
commit f827e6216b
3 changed files with 43 additions and 1 deletions
+29
View File
@@ -0,0 +1,29 @@
#!/bin/sh
# Pre-push hook for cloudflared
# Runs linting and tests before allowing pushes
set -e
echo "========================================"
echo "Running pre-push checks..."
echo "========================================"
# Run formatting check
echo ""
echo "==> Checking formatting..."
make fmt-check
# Run linter
echo ""
echo "==> Running linter..."
make lint
# Run tests
echo ""
echo "==> Running tests..."
make test
echo ""
echo "========================================"
echo "All pre-push checks passed!"
echo "========================================"
+6
View File
@@ -289,3 +289,9 @@ ci-test: fmt-check lint test
.PHONY: ci-fips-test .PHONY: ci-fips-test
ci-fips-test: ci-fips-test:
@FIPS=true $(MAKE) ci-test @FIPS=true $(MAKE) ci-test
.PHONY: install-hooks
install-hooks:
git config core.hooksPath .githooks
@echo "Git hooks installed from .githooks/"
@echo "Pre-push hook will run: make fmt-check lint test"
+8 -1
View File
@@ -79,4 +79,11 @@ To locally run the tests run `make test`
To format the code and keep a good code quality use `make fmt` and `make lint` To format the code and keep a good code quality use `make fmt` and `make lint`
### Mocks ### Mocks
After changes on interfaces you might need to regenerate the mocks, so run `make mock` After changes on interfaces you might need to regenerate the mocks, so run `make mocks`
### Git Hooks
To avoid CI errors, you can install pre-push hooks that run linting and tests before each push:
```bash
make install-hooks
```
This will configure git to use the hooks in `.githooks/` that run `make fmt-check lint test` before each push.