From 5404dcb93d4d4c84383798ff16c7a8a1041e93d9 Mon Sep 17 00:00:00 2001 From: Jakob Ackermann Date: Mon, 3 Feb 2025 09:49:04 +0000 Subject: [PATCH] [misc] update build scripts (#23316) * [misc] update build scripts * [misc] make shellcheck happy GitOrigin-RevId: 343655fda54aa7e835dd666dcd4218d61c58fd09 --- services/chat/Makefile | 20 ++++++++++++++++++- services/clsi/Makefile | 20 ++++++++++++++++++- services/clsi/entrypoint.sh | 2 +- services/contacts/Makefile | 20 ++++++++++++++++++- services/docstore/Makefile | 20 ++++++++++++++++++- .../test/acceptance/deps/healthcheck.sh | 4 ++-- services/document-updater/Makefile | 20 ++++++++++++++++++- services/filestore/Makefile | 20 ++++++++++++++++++- .../test/acceptance/deps/healthcheck.sh | 4 ++-- services/history-v1/Makefile | 20 ++++++++++++++++++- services/notifications/Makefile | 20 ++++++++++++++++++- services/project-history/Makefile | 20 ++++++++++++++++++- services/real-time/Makefile | 20 ++++++++++++++++++- 13 files changed, 195 insertions(+), 15 deletions(-) diff --git a/services/chat/Makefile b/services/chat/Makefile index fc3def57d6..d3d1a89ab1 100644 --- a/services/chat/Makefile +++ b/services/chat/Makefile @@ -39,6 +39,23 @@ RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.e # Same but from the top of the monorepo RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent +SHELLCHECK_OPTS = \ + --shell=bash \ + --external-sources +SHELLCHECK_COLOR := $(if $(CI),--color=never,--color) + +shellcheck: + find . -type f -name "*.sh" -print0 | xargs -0 -r docker run --rm -v $(HERE):/mnt -w /mnt \ + koalaman/shellcheck:stable $(SHELLCHECK_OPTS) $(SHELLCHECK_COLOR) + +shellcheck_fix: + @for file in $$(find . -type f -name "*.sh"); do \ + diff=$$(docker run --rm -v $(HERE):/mnt -w /mnt koalaman/shellcheck:stable $(SHELLCHECK_OPTS) --format=diff "$$file" 2>/dev/null); \ + if [ -n "$$diff" ] && ! echo "$$diff" | patch -p1 >/dev/null 2>&1; then echo "\033[31m$$file\033[0m"; \ + elif [ -n "$$diff" ]; then echo "$$file"; \ + else echo "\033[2m$$file\033[0m"; fi \ + done + format: $(RUN_LINTING) format @@ -63,7 +80,7 @@ typecheck: typecheck_ci: $(RUN_LINTING_CI) types:check -test: format lint typecheck test_unit test_acceptance +test: format lint typecheck shellcheck test_unit test_acceptance test_unit: ifneq (,$(wildcard test/unit)) @@ -137,6 +154,7 @@ publish: lint lint_fix \ build_types typecheck \ lint_ci format_ci typecheck_ci \ + shellcheck shellcheck_fix \ test test_clean test_unit test_unit_clean \ test_acceptance test_acceptance_debug test_acceptance_pre_run \ test_acceptance_run test_acceptance_run_debug test_acceptance_clean \ diff --git a/services/clsi/Makefile b/services/clsi/Makefile index 20b483bf85..34cdb02f56 100644 --- a/services/clsi/Makefile +++ b/services/clsi/Makefile @@ -40,6 +40,23 @@ RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.e # Same but from the top of the monorepo RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent +SHELLCHECK_OPTS = \ + --shell=bash \ + --external-sources +SHELLCHECK_COLOR := $(if $(CI),--color=never,--color) + +shellcheck: + find . -type f -name "*.sh" -print0 | xargs -0 -r docker run --rm -v $(HERE):/mnt -w /mnt \ + koalaman/shellcheck:stable $(SHELLCHECK_OPTS) $(SHELLCHECK_COLOR) + +shellcheck_fix: + @for file in $$(find . -type f -name "*.sh"); do \ + diff=$$(docker run --rm -v $(HERE):/mnt -w /mnt koalaman/shellcheck:stable $(SHELLCHECK_OPTS) --format=diff "$$file" 2>/dev/null); \ + if [ -n "$$diff" ] && ! echo "$$diff" | patch -p1 >/dev/null 2>&1; then echo "\033[31m$$file\033[0m"; \ + elif [ -n "$$diff" ]; then echo "$$file"; \ + else echo "\033[2m$$file\033[0m"; fi \ + done + format: $(RUN_LINTING) format @@ -64,7 +81,7 @@ typecheck: typecheck_ci: $(RUN_LINTING_CI) types:check -test: format lint typecheck test_unit test_acceptance +test: format lint typecheck shellcheck test_unit test_acceptance test_unit: ifneq (,$(wildcard test/unit)) @@ -132,6 +149,7 @@ publish: lint lint_fix \ build_types typecheck \ lint_ci format_ci typecheck_ci \ + shellcheck shellcheck_fix \ test test_clean test_unit test_unit_clean \ test_acceptance test_acceptance_debug test_acceptance_pre_run \ test_acceptance_run test_acceptance_run_debug test_acceptance_clean \ diff --git a/services/clsi/entrypoint.sh b/services/clsi/entrypoint.sh index 9446ab9e2d..bb551c91eb 100755 --- a/services/clsi/entrypoint.sh +++ b/services/clsi/entrypoint.sh @@ -2,7 +2,7 @@ # add the node user to the docker group on the host DOCKER_GROUP=$(stat -c '%g' /var/run/docker.sock) -groupadd --non-unique --gid ${DOCKER_GROUP} dockeronhost +groupadd --non-unique --gid "${DOCKER_GROUP}" dockeronhost usermod -aG dockeronhost node # compatibility: initial volume setup diff --git a/services/contacts/Makefile b/services/contacts/Makefile index 1aa1c140c7..9e103ed7f1 100644 --- a/services/contacts/Makefile +++ b/services/contacts/Makefile @@ -39,6 +39,23 @@ RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.e # Same but from the top of the monorepo RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent +SHELLCHECK_OPTS = \ + --shell=bash \ + --external-sources +SHELLCHECK_COLOR := $(if $(CI),--color=never,--color) + +shellcheck: + find . -type f -name "*.sh" -print0 | xargs -0 -r docker run --rm -v $(HERE):/mnt -w /mnt \ + koalaman/shellcheck:stable $(SHELLCHECK_OPTS) $(SHELLCHECK_COLOR) + +shellcheck_fix: + @for file in $$(find . -type f -name "*.sh"); do \ + diff=$$(docker run --rm -v $(HERE):/mnt -w /mnt koalaman/shellcheck:stable $(SHELLCHECK_OPTS) --format=diff "$$file" 2>/dev/null); \ + if [ -n "$$diff" ] && ! echo "$$diff" | patch -p1 >/dev/null 2>&1; then echo "\033[31m$$file\033[0m"; \ + elif [ -n "$$diff" ]; then echo "$$file"; \ + else echo "\033[2m$$file\033[0m"; fi \ + done + format: $(RUN_LINTING) format @@ -63,7 +80,7 @@ typecheck: typecheck_ci: $(RUN_LINTING_CI) types:check -test: format lint typecheck test_unit test_acceptance +test: format lint typecheck shellcheck test_unit test_acceptance test_unit: ifneq (,$(wildcard test/unit)) @@ -137,6 +154,7 @@ publish: lint lint_fix \ build_types typecheck \ lint_ci format_ci typecheck_ci \ + shellcheck shellcheck_fix \ test test_clean test_unit test_unit_clean \ test_acceptance test_acceptance_debug test_acceptance_pre_run \ test_acceptance_run test_acceptance_run_debug test_acceptance_clean \ diff --git a/services/docstore/Makefile b/services/docstore/Makefile index 51777d2a26..29dd4b474c 100644 --- a/services/docstore/Makefile +++ b/services/docstore/Makefile @@ -39,6 +39,23 @@ RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.e # Same but from the top of the monorepo RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent +SHELLCHECK_OPTS = \ + --shell=bash \ + --external-sources +SHELLCHECK_COLOR := $(if $(CI),--color=never,--color) + +shellcheck: + find . -type f -name "*.sh" -print0 | xargs -0 -r docker run --rm -v $(HERE):/mnt -w /mnt \ + koalaman/shellcheck:stable $(SHELLCHECK_OPTS) $(SHELLCHECK_COLOR) + +shellcheck_fix: + @for file in $$(find . -type f -name "*.sh"); do \ + diff=$$(docker run --rm -v $(HERE):/mnt -w /mnt koalaman/shellcheck:stable $(SHELLCHECK_OPTS) --format=diff "$$file" 2>/dev/null); \ + if [ -n "$$diff" ] && ! echo "$$diff" | patch -p1 >/dev/null 2>&1; then echo "\033[31m$$file\033[0m"; \ + elif [ -n "$$diff" ]; then echo "$$file"; \ + else echo "\033[2m$$file\033[0m"; fi \ + done + format: $(RUN_LINTING) format @@ -63,7 +80,7 @@ typecheck: typecheck_ci: $(RUN_LINTING_CI) types:check -test: format lint typecheck test_unit test_acceptance +test: format lint typecheck shellcheck test_unit test_acceptance test_unit: ifneq (,$(wildcard test/unit)) @@ -137,6 +154,7 @@ publish: lint lint_fix \ build_types typecheck \ lint_ci format_ci typecheck_ci \ + shellcheck shellcheck_fix \ test test_clean test_unit test_unit_clean \ test_acceptance test_acceptance_debug test_acceptance_pre_run \ test_acceptance_run test_acceptance_run_debug test_acceptance_clean \ diff --git a/services/docstore/test/acceptance/deps/healthcheck.sh b/services/docstore/test/acceptance/deps/healthcheck.sh index cd19cea637..675c205be6 100644 --- a/services/docstore/test/acceptance/deps/healthcheck.sh +++ b/services/docstore/test/acceptance/deps/healthcheck.sh @@ -1,9 +1,9 @@ #!/bin/sh # health check to allow 404 status code as valid -STATUSCODE=$(curl --silent --output /dev/null --write-out "%{http_code}" $1) +STATUSCODE=$(curl --silent --output /dev/null --write-out "%{http_code}" "$1") # will be 000 on non-http error (e.g. connection failure) -if test $STATUSCODE -ge 500 || test $STATUSCODE -lt 200; then +if test "$STATUSCODE" -ge 500 || test "$STATUSCODE" -lt 200; then exit 1 fi exit 0 diff --git a/services/document-updater/Makefile b/services/document-updater/Makefile index 2989f45aad..78cf0af872 100644 --- a/services/document-updater/Makefile +++ b/services/document-updater/Makefile @@ -39,6 +39,23 @@ RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.e # Same but from the top of the monorepo RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent +SHELLCHECK_OPTS = \ + --shell=bash \ + --external-sources +SHELLCHECK_COLOR := $(if $(CI),--color=never,--color) + +shellcheck: + find . -type f -name "*.sh" -print0 | xargs -0 -r docker run --rm -v $(HERE):/mnt -w /mnt \ + koalaman/shellcheck:stable $(SHELLCHECK_OPTS) $(SHELLCHECK_COLOR) + +shellcheck_fix: + @for file in $$(find . -type f -name "*.sh"); do \ + diff=$$(docker run --rm -v $(HERE):/mnt -w /mnt koalaman/shellcheck:stable $(SHELLCHECK_OPTS) --format=diff "$$file" 2>/dev/null); \ + if [ -n "$$diff" ] && ! echo "$$diff" | patch -p1 >/dev/null 2>&1; then echo "\033[31m$$file\033[0m"; \ + elif [ -n "$$diff" ]; then echo "$$file"; \ + else echo "\033[2m$$file\033[0m"; fi \ + done + format: $(RUN_LINTING) format @@ -63,7 +80,7 @@ typecheck: typecheck_ci: $(RUN_LINTING_CI) types:check -test: format lint typecheck test_unit test_acceptance +test: format lint typecheck shellcheck test_unit test_acceptance test_unit: ifneq (,$(wildcard test/unit)) @@ -137,6 +154,7 @@ publish: lint lint_fix \ build_types typecheck \ lint_ci format_ci typecheck_ci \ + shellcheck shellcheck_fix \ test test_clean test_unit test_unit_clean \ test_acceptance test_acceptance_debug test_acceptance_pre_run \ test_acceptance_run test_acceptance_run_debug test_acceptance_clean \ diff --git a/services/filestore/Makefile b/services/filestore/Makefile index 28dbd611ed..17e1679f77 100644 --- a/services/filestore/Makefile +++ b/services/filestore/Makefile @@ -39,6 +39,23 @@ RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.e # Same but from the top of the monorepo RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent +SHELLCHECK_OPTS = \ + --shell=bash \ + --external-sources +SHELLCHECK_COLOR := $(if $(CI),--color=never,--color) + +shellcheck: + find . -type f -name "*.sh" -print0 | xargs -0 -r docker run --rm -v $(HERE):/mnt -w /mnt \ + koalaman/shellcheck:stable $(SHELLCHECK_OPTS) $(SHELLCHECK_COLOR) + +shellcheck_fix: + @for file in $$(find . -type f -name "*.sh"); do \ + diff=$$(docker run --rm -v $(HERE):/mnt -w /mnt koalaman/shellcheck:stable $(SHELLCHECK_OPTS) --format=diff "$$file" 2>/dev/null); \ + if [ -n "$$diff" ] && ! echo "$$diff" | patch -p1 >/dev/null 2>&1; then echo "\033[31m$$file\033[0m"; \ + elif [ -n "$$diff" ]; then echo "$$file"; \ + else echo "\033[2m$$file\033[0m"; fi \ + done + format: $(RUN_LINTING) format @@ -63,7 +80,7 @@ typecheck: typecheck_ci: $(RUN_LINTING_CI) types:check -test: format lint typecheck test_unit test_acceptance +test: format lint typecheck shellcheck test_unit test_acceptance test_unit: ifneq (,$(wildcard test/unit)) @@ -130,6 +147,7 @@ publish: lint lint_fix \ build_types typecheck \ lint_ci format_ci typecheck_ci \ + shellcheck shellcheck_fix \ test test_clean test_unit test_unit_clean \ test_acceptance test_acceptance_debug test_acceptance_pre_run \ test_acceptance_run test_acceptance_run_debug test_acceptance_clean \ diff --git a/services/filestore/test/acceptance/deps/healthcheck.sh b/services/filestore/test/acceptance/deps/healthcheck.sh index cd19cea637..675c205be6 100755 --- a/services/filestore/test/acceptance/deps/healthcheck.sh +++ b/services/filestore/test/acceptance/deps/healthcheck.sh @@ -1,9 +1,9 @@ #!/bin/sh # health check to allow 404 status code as valid -STATUSCODE=$(curl --silent --output /dev/null --write-out "%{http_code}" $1) +STATUSCODE=$(curl --silent --output /dev/null --write-out "%{http_code}" "$1") # will be 000 on non-http error (e.g. connection failure) -if test $STATUSCODE -ge 500 || test $STATUSCODE -lt 200; then +if test "$STATUSCODE" -ge 500 || test "$STATUSCODE" -lt 200; then exit 1 fi exit 0 diff --git a/services/history-v1/Makefile b/services/history-v1/Makefile index 631589489b..72b241bb6e 100644 --- a/services/history-v1/Makefile +++ b/services/history-v1/Makefile @@ -39,6 +39,23 @@ RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.e # Same but from the top of the monorepo RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent +SHELLCHECK_OPTS = \ + --shell=bash \ + --external-sources +SHELLCHECK_COLOR := $(if $(CI),--color=never,--color) + +shellcheck: + find . -type f -name "*.sh" -print0 | xargs -0 -r docker run --rm -v $(HERE):/mnt -w /mnt \ + koalaman/shellcheck:stable $(SHELLCHECK_OPTS) $(SHELLCHECK_COLOR) + +shellcheck_fix: + @for file in $$(find . -type f -name "*.sh"); do \ + diff=$$(docker run --rm -v $(HERE):/mnt -w /mnt koalaman/shellcheck:stable $(SHELLCHECK_OPTS) --format=diff "$$file" 2>/dev/null); \ + if [ -n "$$diff" ] && ! echo "$$diff" | patch -p1 >/dev/null 2>&1; then echo "\033[31m$$file\033[0m"; \ + elif [ -n "$$diff" ]; then echo "$$file"; \ + else echo "\033[2m$$file\033[0m"; fi \ + done + format: $(RUN_LINTING) format @@ -63,7 +80,7 @@ typecheck: typecheck_ci: $(RUN_LINTING_CI) types:check -test: format lint typecheck test_unit test_acceptance +test: format lint typecheck shellcheck test_unit test_acceptance test_unit: ifneq (,$(wildcard test/unit)) @@ -137,6 +154,7 @@ publish: lint lint_fix \ build_types typecheck \ lint_ci format_ci typecheck_ci \ + shellcheck shellcheck_fix \ test test_clean test_unit test_unit_clean \ test_acceptance test_acceptance_debug test_acceptance_pre_run \ test_acceptance_run test_acceptance_run_debug test_acceptance_clean \ diff --git a/services/notifications/Makefile b/services/notifications/Makefile index dc268b0747..cade9cab3e 100644 --- a/services/notifications/Makefile +++ b/services/notifications/Makefile @@ -39,6 +39,23 @@ RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.e # Same but from the top of the monorepo RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent +SHELLCHECK_OPTS = \ + --shell=bash \ + --external-sources +SHELLCHECK_COLOR := $(if $(CI),--color=never,--color) + +shellcheck: + find . -type f -name "*.sh" -print0 | xargs -0 -r docker run --rm -v $(HERE):/mnt -w /mnt \ + koalaman/shellcheck:stable $(SHELLCHECK_OPTS) $(SHELLCHECK_COLOR) + +shellcheck_fix: + @for file in $$(find . -type f -name "*.sh"); do \ + diff=$$(docker run --rm -v $(HERE):/mnt -w /mnt koalaman/shellcheck:stable $(SHELLCHECK_OPTS) --format=diff "$$file" 2>/dev/null); \ + if [ -n "$$diff" ] && ! echo "$$diff" | patch -p1 >/dev/null 2>&1; then echo "\033[31m$$file\033[0m"; \ + elif [ -n "$$diff" ]; then echo "$$file"; \ + else echo "\033[2m$$file\033[0m"; fi \ + done + format: $(RUN_LINTING) format @@ -63,7 +80,7 @@ typecheck: typecheck_ci: $(RUN_LINTING_CI) types:check -test: format lint typecheck test_unit test_acceptance +test: format lint typecheck shellcheck test_unit test_acceptance test_unit: ifneq (,$(wildcard test/unit)) @@ -137,6 +154,7 @@ publish: lint lint_fix \ build_types typecheck \ lint_ci format_ci typecheck_ci \ + shellcheck shellcheck_fix \ test test_clean test_unit test_unit_clean \ test_acceptance test_acceptance_debug test_acceptance_pre_run \ test_acceptance_run test_acceptance_run_debug test_acceptance_clean \ diff --git a/services/project-history/Makefile b/services/project-history/Makefile index 54b5240563..fa2e26af34 100644 --- a/services/project-history/Makefile +++ b/services/project-history/Makefile @@ -39,6 +39,23 @@ RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.e # Same but from the top of the monorepo RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent +SHELLCHECK_OPTS = \ + --shell=bash \ + --external-sources +SHELLCHECK_COLOR := $(if $(CI),--color=never,--color) + +shellcheck: + find . -type f -name "*.sh" -print0 | xargs -0 -r docker run --rm -v $(HERE):/mnt -w /mnt \ + koalaman/shellcheck:stable $(SHELLCHECK_OPTS) $(SHELLCHECK_COLOR) + +shellcheck_fix: + @for file in $$(find . -type f -name "*.sh"); do \ + diff=$$(docker run --rm -v $(HERE):/mnt -w /mnt koalaman/shellcheck:stable $(SHELLCHECK_OPTS) --format=diff "$$file" 2>/dev/null); \ + if [ -n "$$diff" ] && ! echo "$$diff" | patch -p1 >/dev/null 2>&1; then echo "\033[31m$$file\033[0m"; \ + elif [ -n "$$diff" ]; then echo "$$file"; \ + else echo "\033[2m$$file\033[0m"; fi \ + done + format: $(RUN_LINTING) format @@ -63,7 +80,7 @@ typecheck: typecheck_ci: $(RUN_LINTING_CI) types:check -test: format lint typecheck test_unit test_acceptance +test: format lint typecheck shellcheck test_unit test_acceptance test_unit: ifneq (,$(wildcard test/unit)) @@ -137,6 +154,7 @@ publish: lint lint_fix \ build_types typecheck \ lint_ci format_ci typecheck_ci \ + shellcheck shellcheck_fix \ test test_clean test_unit test_unit_clean \ test_acceptance test_acceptance_debug test_acceptance_pre_run \ test_acceptance_run test_acceptance_run_debug test_acceptance_clean \ diff --git a/services/real-time/Makefile b/services/real-time/Makefile index 7ea1cc9009..adc5bb636b 100644 --- a/services/real-time/Makefile +++ b/services/real-time/Makefile @@ -39,6 +39,23 @@ RUN_LINTING_CI = docker run --rm --volume $(MONOREPO)/.editorconfig:/overleaf/.e # Same but from the top of the monorepo RUN_LINTING_MONOREPO = docker run --rm -v $(MONOREPO):$(MONOREPO) -w $(MONOREPO) node:20.18.2 npm run --silent +SHELLCHECK_OPTS = \ + --shell=bash \ + --external-sources +SHELLCHECK_COLOR := $(if $(CI),--color=never,--color) + +shellcheck: + find . -type f -name "*.sh" -print0 | xargs -0 -r docker run --rm -v $(HERE):/mnt -w /mnt \ + koalaman/shellcheck:stable $(SHELLCHECK_OPTS) $(SHELLCHECK_COLOR) + +shellcheck_fix: + @for file in $$(find . -type f -name "*.sh"); do \ + diff=$$(docker run --rm -v $(HERE):/mnt -w /mnt koalaman/shellcheck:stable $(SHELLCHECK_OPTS) --format=diff "$$file" 2>/dev/null); \ + if [ -n "$$diff" ] && ! echo "$$diff" | patch -p1 >/dev/null 2>&1; then echo "\033[31m$$file\033[0m"; \ + elif [ -n "$$diff" ]; then echo "$$file"; \ + else echo "\033[2m$$file\033[0m"; fi \ + done + format: $(RUN_LINTING) format @@ -63,7 +80,7 @@ typecheck: typecheck_ci: $(RUN_LINTING_CI) types:check -test: format lint typecheck test_unit test_acceptance +test: format lint typecheck shellcheck test_unit test_acceptance test_unit: ifneq (,$(wildcard test/unit)) @@ -130,6 +147,7 @@ publish: lint lint_fix \ build_types typecheck \ lint_ci format_ci typecheck_ci \ + shellcheck shellcheck_fix \ test test_clean test_unit test_unit_clean \ test_acceptance test_acceptance_debug test_acceptance_pre_run \ test_acceptance_run test_acceptance_run_debug test_acceptance_clean \