Skip to main content

Makefile (Deprecated)

Deprecated

Makefiles have been deprecated in favor of Taskfiles. Please refer to the Taskfile documentation for the current approach.

To test your hook locally, you may use the following makefile.

#!/usr/bin/make -f

include_guard = set
hook = finding-post-processing

include ../../hooks.mk

See Local Deployment for examples how to use the Makefiles.

Available makefile targets

TargetUse
reset-integration-tests-namespaceResets the integration-tests namespace
unit-testsRun your hook unit tests
docker-buildBuilds your hook
docker-exportExports your hook into a .tar file
kind-importLoads your hook .tar files into your local kind cluster
deployDeploys your hook helm chart into your local kind cluster
deploy-test-depsDeploys your hook's test dependencies (demo-targets) into your local kind cluster
integration-testsDeletes all scans and runs your integration test scanners/SCANNER_NAME.test.js

Configuring your makefile (examples)

Adding test dependencies (demo-targets)

#!/usr/bin/make -f

include_guard = set
hook = generic-webhook

include ../../hooks.mk


deploy-test-deps: deploy-test-dep-http-webhook deploy-test-dep-test-scan

deploy:
@echo ".: 💾 Deploying '$(name)' $(hook-prefix) HelmChart with the docker tag '$(IMG_TAG)' into kind namespace 'integration-tests'."
helm -n integration-tests upgrade --install ro-hook . \
--set="hook.image.repository=docker.io/$(IMG_NS)/$(hook-prefix)-$(name)" \
--set="hook.image.tag=$(IMG_TAG)" \
--set="webhookUrl=http://http-webhook/hallo-welt"

integration-tests:
@echo ".: 🩺 Starting integration test in kind namespace 'integration-tests'."
kubectl -n integration-tests delete scans --all
cd ../../tests/integration/ && npm ci && npx --yes --package jest@$(JEST_VERSION) jest --verbose --ci --colors --coverage --passWithNoTests generic/read-only-write-hook.test.js

This adds the http-webhook demo-target to your integration tests. deploy-test-dep-test-scan is a sample scanner used in most hook integration tests.

The above makefile also overrides the integration-test target such that it references the generic folder as a test suite.

Changing the unit test language

#!/usr/bin/make -f

include_guard = set
hook = persistence-defectdojo

include ../../hooks.mk

unit-tests:
@$(MAKE) -s unit-test-java

You can choose from: unit-test-js unit-test-py unit-test-java.