Add pre-commit hook (#1071)

This commit is contained in:
Michael Weimann 2023-01-24 14:26:10 +01:00 committed by GitHub
parent 5a2b8f7ff9
commit 2db70c96ed
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 34 additions and 12 deletions

View File

@ -152,12 +152,6 @@ yarn lint:
script:
- yarn lint
check-editorconfig:
image: mstruebing/editorconfig-checker
stage: validate
script:
- ec -v
#
# Build
#
@ -175,7 +169,6 @@ build-image:
<<: *container_definition
stage: build
needs:
- check-editorconfig
- phpcs
- phpstan
- composer validate

View File

@ -38,13 +38,23 @@ The following instructions explain how to get, build and run the latest Engelsys
find resources/lang/ -type f -name '*.po' -exec sh -c 'file="{}"; msgfmt "${file%.*}.po" -o "${file%.*}.mo"' \;
```
## Git setup (optional, recommended)
Ignore mass-changes like code formatting in Git blame:
## Pre-commit hooks
You should set up the pre-commit hook to check the code style and run tests on commit:
```bash
git config blame.ignoreRevsFile .git-blame-ignore-revs
Docker (recommended):
```sh
echo "docker exec engelsystem_dev-es_workspace-1 bin/pre-commit" > .git/hooks/pre-commit
chmod u+x .git/hooks/pre-commit
```
Host machine:
```sh
ln -s ../../bin/pre-commit .git/hooks/pre-commit
```
## Testing
To run the unit tests use
```bash

12
bin/pre-commit Executable file
View File

@ -0,0 +1,12 @@
#!/usr/bin/env sh
# immediate exit after an error
set -e
yarn check
yarn lint
composer validate
composer phpcs
composer phpstan
./vendor/bin/phpunit

View File

@ -9,9 +9,10 @@
"build": "NODE_ENV=production yarn build:webpack",
"build:webpack": "webpack",
"build:watch": "webpack --watch",
"lint": "yarn lint:eslint && yarn lint:prettier",
"lint": "yarn lint:eslint && yarn lint:prettier && yarn lint:ec",
"lint:eslint": "eslint .",
"lint:prettier": "prettier --check resources/assets",
"lint:ec": "ec --exclude \"node_modules|vendor|public/assets|.git\"",
"lint:fix": "yarn lint:fix:eslint && yarn lint:fix:prettier",
"lint:fix:eslint": "eslint --fix .",
"lint:fix:prettier": "prettier --write resources/assets"
@ -31,6 +32,7 @@
"bootstrap-icons": "^1.10.2",
"css-loader": "^6.7.2",
"css-minimizer-webpack-plugin": "^3.4.1",
"editorconfig-checker": "^5.0.1",
"eslint": "^8.28.0",
"eslint-plugin-editorconfig": "^4.0.2",
"mini-css-extract-plugin": "^2.7.0",

View File

@ -1762,6 +1762,11 @@ domutils@^2.8.0:
domelementtype "^2.2.0"
domhandler "^4.2.0"
editorconfig-checker@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/editorconfig-checker/-/editorconfig-checker-5.0.1.tgz#cb4bf7a9b80f1b63b141b8897d7cc326fce0d3ae"
integrity sha512-6hXq9VVDkyCxVYKdGtIj+yhVR1fi/6W6Ykz/+kItLPARulJvr2/VXgWZ5OGWx1UYm2RD6XOzWyx1JF6DLgQ/8Q==
editorconfig@^0.15.0:
version "0.15.3"
resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5"