-
Notifications
You must be signed in to change notification settings - Fork 13
Expand file tree
/
Copy pathMakefile
More file actions
56 lines (47 loc) · 2.77 KB
/
Makefile
File metadata and controls
56 lines (47 loc) · 2.77 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
ifneq ($(shell docker compose version 2>/dev/null),)
DOCKER_COMPOSE := docker compose
else
DOCKER_COMPOSE := docker-compose
endif
# Default to v4.5.x if NETBOX_VERSION is not set
NETBOX_VERSION ?= v4.5.5
# Extract minor version (e.g., v4.5.0 -> v4.5.x)
NETBOX_MINOR_VERSION := $(shell echo $(NETBOX_VERSION) | sed -E 's/^v?([0-9]+\.[0-9]+).*/v\1.x/')
DOCKER_PATH := docker/$(NETBOX_MINOR_VERSION)
DOCKER_COMMON_PATH := docker/common
DOCKER_OVERRIDE := $(DOCKER_PATH)/docker-compose.override.yaml
COMPOSE_FILES := -f $(DOCKER_COMMON_PATH)/docker-compose.yaml $(if $(wildcard $(DOCKER_OVERRIDE)),-f $(DOCKER_OVERRIDE))
TEST_SELECTOR := "/opt/netbox/netbox/netbox_diode_plugin/tests/$(NETBOX_MINOR_VERSION)/tests/"
# Export variables so they're available to docker-compose
export NETBOX_VERSION
export NETBOX_MINOR_VERSION
.PHONY: docker-compose-netbox-plugin-up
docker-compose-netbox-plugin-up:
@$(DOCKER_COMPOSE) $(COMPOSE_FILES) up -d --build
.PHONY: docker-compose-netbox-plugin-down
docker-compose-netbox-plugin-down:
@$(DOCKER_COMPOSE) $(COMPOSE_FILES) down
.PHONY: docker-compose-netbox-plugin-test
docker-compose-netbox-plugin-test:
@$(DOCKER_COMPOSE) $(COMPOSE_FILES) -f $(DOCKER_COMMON_PATH)/docker-compose.test.yaml run -u root --rm netbox ./manage.py test $(TEST_FLAGS) --keepdb $(TEST_SELECTOR); \
EXIT_CODE=$$?; \
$(MAKE) docker-compose-netbox-plugin-down; \
exit $$EXIT_CODE
.PHONY: docker-compose-netbox-plugin-test-lint
docker-compose-netbox-plugin-test-lint:
@$(DOCKER_COMPOSE) $(COMPOSE_FILES) -f $(DOCKER_COMMON_PATH)/docker-compose.test.yaml run -u root --rm netbox ruff check --output-format=github netbox_diode_plugin; \
EXIT_CODE=$$?; \
$(MAKE) docker-compose-netbox-plugin-down; \
exit $$EXIT_CODE
.PHONY: docker-compose-netbox-plugin-test-cover
docker-compose-netbox-plugin-test-cover:
@$(DOCKER_COMPOSE) $(COMPOSE_FILES) -f $(DOCKER_COMMON_PATH)/docker-compose.test.yaml run --rm -u root -e COVERAGE_FILE=/opt/netbox/netbox/coverage/.coverage netbox sh -c "coverage run --source=netbox_diode_plugin --omit=*/migrations/* ./manage.py test --keepdb $(TEST_SELECTOR) && coverage xml -o /opt/netbox/netbox/coverage/report.xml && coverage report -m | tee /opt/netbox/netbox/coverage/report.txt"; \
EXIT_CODE=$$?; \
$(MAKE) docker-compose-netbox-plugin-down; \
exit $$EXIT_CODE
.PHONY: docker-compose-generate-matching-docs
docker-compose-generate-matching-docs:
@$(DOCKER_COMPOSE) $(COMPOSE_FILES) -f $(DOCKER_COMMON_PATH)/docker-compose.test.yaml run --rm netbox python manage.py generate_matching_docs | awk '/Generating markdown documentation.../{p=1;next} p' > ./docs/matching-criteria-documentation.md
.PHONY: docker-compose-migrate
docker-compose-migrate:
@$(DOCKER_COMPOSE) $(COMPOSE_FILES) -f $(DOCKER_COMMON_PATH)/docker-compose.test.yaml run --rm netbox python manage.py migrate