gergo/pre commit (#906)

* Adds hadolint as pre-commit

* Addresses all hadolint comments

* Hadolint docker works when entrypoint explicitly provided

* Use noninteractive apt-get frontend and clean after install

* build(circleci): filters for pre-commit should be same as for test-server

* remove cache prefix as not currently necessary due to pre-commit-config.yaml changing

* build(circleci): enable remote docker for pre-commit

* build(circleci): use speckle pre-commit runner with built-in hadolint

* build(server): dockerfile RUN statements are consolidated

Each RUN statement in a Dockerfile creates a new layer.  Hadolint rule DL3059 suggests they should
be consolidated.

* build(server): dockerfile RUN statements are consolidated

Each RUN statement in a Dockerfile creates a new layer.  Hadolint rule DL3059 suggests they should
be consolidated.

* Improve husky bash script to catch errors

* Integrates pre-commit with husky

* pre-commit should now be run by husky on every commit
* pre-commit which requires additional installed dependencies is moved to separate file

* Update README for revised developer instructions

* Updates pre-commit yarn script

* refactor(pre-commit): make everyone happy with loosly integrating husky and pre-commit scripts

* chore(clean up pre-commit configs): clean some more pre-commit mess

* chore(pre-commit): run pre-commit in ci too

* fix(husky pre-commit): fix ci build husky invocation, the script is not commited to git

* fix(circleci config): install yarn packages for linting in pre-commit

* fix(pre-commit): fix shellcheck disable comment placement

* fix(pre-commit): add shellcheck ignore

* fix(pre-commit husyk): fix shellcheck ignore version

Co-authored-by: Iain Sproat <68657+iainsproat@users.noreply.github.com>
This commit is contained in:
Gergő Jedlicska
2022-08-11 13:49:47 +02:00
committed by GitHub
parent 0427f5cfd1
commit 5535197a48
5 changed files with 57 additions and 61 deletions
+28 -12
View File
@@ -1,16 +1,32 @@
#!/usr/bin/env bash
set -eo pipefail
[ -n "$CI" ] && exit 0
#!/usr/bin/env sh
# shellcheck disable=SC1091
set -e
#shellcheck source=/dev/null
. "$(dirname "$0")/_/husky.sh"
if [ -n "$CI" ]
then
echo "running eslint"
yarn lint
yarn prettier:check
else
# shellcheck disable=SC1090
. "$(dirname "$0")/_/husky.sh"
yarn lint-staged
fi
yarn lint-staged
if ! command -v pre-commit &> /dev/null; then exit 0; fi
echo "🔍 Detected pre-commit on this system. Running pre-commit checks..."
pre-commit run --all-files --config .pre-commit-config.yaml
echo "🔍 looking for additional linter dependencies"
if ! command -v hadolint &> /dev/null || ! command -v helm &> /dev/null || ! command -v shellcheck &> /dev/null; then exit 0; fi
echo "🔍 Detected additional dependencies (hadolint, helm, and shellcheck) on this system. Running additional pre-commit checks..."
pre-commit run --all-files --config .pre-commit-config.deployment.yaml
check_dependencies_available() {
for i in "${@}"
do
if ! command -v "${i}"; then
echo "No ${i} executable found skipping additional checks" >&2
exit 0
fi
done
}
check_dependencies_available pre-commit hadolint helm shellcheck
echo "All systems functional, running additional pre-commit checks..."
pre-commit run --all-files