-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
83 lines (60 loc) · 2.81 KB
/
Copy pathMakefile
File metadata and controls
83 lines (60 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
SHELL := /bin/sh
MAKEFLAGS += --no-print-directory
DRY_RUN ?= false
NO_RELOAD ?= false
.PHONY: help install build configure status uninstall check lint test dist \
test-openapi test-runtime test-sanitize test-fuzz release-check \
docker-up docker-smoke docker-test docker-benchmark docker-down
help:
$(call run_installer,usage,help)
install:
$(call run_installer,install_all,install)
build:
$(call run_installer,build_only,build)
configure:
$(call run_installer,configure_only,configure)
status:
$(call run_installer,show_status,status)
uninstall:
$(call run_installer,uninstall_all,uninstall)
check:
@sh -n scripts/*.sh scripts/manage/common.sh tests/*.sh docker/entrypoint.sh examples/run-suite.sh examples/*/*.sh
@scripts/check-layout.sh
@scripts/check-application-examples.sh
@sh tests/test-config-validation.sh
@sh tests/test-hook-api-static.sh
@sh tests/test-sqlite-contract.sh
@sh tests/test-migrations.sh
@sh tests/test-release-metadata.sh
@sh tests/test-openapi.sh
@tests/test-install-dry-run.sh
lint:
@scripts/lint.sh
test: check
test-openapi:
@sh tests/test-openapi.sh
test-runtime:
@test -n "$(IMAGE)" || { echo "IMAGE is required" >&2; exit 2; }
@IMAGE="$(IMAGE)" sh tests/test-config-validation.sh
test-sanitize:
@sh tests/test-sanitizers.sh
test-fuzz:
@sh tests/run-fuzz.sh
docker-up:
@docker compose up --build --wait --wait-timeout 60 -d
docker-smoke:
@scripts/smoke-examples.sh
@docker compose exec -T nginx-sqlite-module sh -eu -c 'test -s /var/lib/ngx_http_sqlite_module/sqlite-errors.jsonl; test "$$(stat -c %a /var/lib/ngx_http_sqlite_module/example-bearer-token)" = 600; test "$$(stat -c %a /var/lib/ngx_http_sqlite_module/read-only.sqlite)" = 444; test "$$(sqlite3 /var/lib/ngx_http_sqlite_module/example.sqlite "SELECT count(*) FROM nginx_sqlite_migrations")" -ge 4'
docker-test: docker-up docker-smoke
@echo "Docker feature examples passed; run 'make docker-down' when finished."
docker-benchmark:
@mkdir -p benchmark-results
@docker compose --profile benchmark run --rm --build benchmark
docker-down:
@docker compose down
release-check: lint check test-sanitize test-fuzz
dist:
@scripts/package-source.sh
define run_installer
@COMMAND="$(2)" REPO_DIR="$(CURDIR)" DRY_RUN="$(DRY_RUN)" NO_RELOAD="$(NO_RELOAD)" INSTALL_ROOT="$(INSTALL_ROOT)" SQLITE_MODULE_PACKAGE_MANAGER="$(SQLITE_MODULE_PACKAGE_MANAGER)" NGINX_PACKAGE_SOURCE="$(NGINX_PACKAGE_SOURCE)" NGINX_SOURCE_SHA256="$(NGINX_SOURCE_SHA256)" NGINX_SOURCE_SHA256_REQUIRED="$(NGINX_SOURCE_SHA256_REQUIRED)" SQLITE_MODULE_INSTALL_EXAMPLES="$(SQLITE_MODULE_INSTALL_EXAMPLES)" SQLITE_MODULE_RELOAD_NGINX="$(SQLITE_MODULE_RELOAD_NGINX)" FORCE_NGINX_MODULE_CONFIG="$(FORCE_NGINX_MODULE_CONFIG)" ALLOW_UNSUPPORTED_OS="$(ALLOW_UNSUPPORTED_OS)" KEEP_BUILD_DEPS="$(KEEP_BUILD_DEPS)" $(SHELL) -eu -c '. "$$REPO_DIR/scripts/manage/common.sh"; $(1)'
endef