|
4 | 4 | DOCKER_COMPOSE := docker-compose |
5 | 5 | endif |
6 | 6 |
|
7 | | -NETBOX_VERSION ?= |
8 | | -ifneq ($(NETBOX_VERSION),) |
9 | | - DOCKER_PATH := docker/$(NETBOX_VERSION) |
10 | | - TEST_SELECTOR := "/opt/netbox/netbox/netbox_diode_plugin/tests/$(NETBOX_VERSION)/tests/" |
11 | | -else |
12 | | - DOCKER_PATH := docker |
13 | | - TEST_SELECTOR = netbox_diode_plugin |
14 | | -endif |
| 7 | +# Default to v4.5.x if NETBOX_VERSION is not set |
| 8 | +NETBOX_VERSION ?= v4.5.0 |
| 9 | +# Extract minor version (e.g., v4.5.0 -> v4.5.x) |
| 10 | +NETBOX_MINOR_VERSION := $(shell echo $(NETBOX_VERSION) | sed -E 's/^v?([0-9]+\.[0-9]+).*/v\1.x/') |
| 11 | +DOCKER_PATH := docker/$(NETBOX_MINOR_VERSION) |
| 12 | +DOCKER_COMMON_PATH := docker/common |
| 13 | +TEST_SELECTOR := "/opt/netbox/netbox/netbox_diode_plugin/tests/$(NETBOX_MINOR_VERSION)/tests/" |
| 14 | + |
| 15 | +# Export variables so they're available to docker-compose |
| 16 | +export NETBOX_VERSION |
| 17 | +export NETBOX_MINOR_VERSION |
15 | 18 |
|
16 | 19 | .PHONY: docker-compose-netbox-plugin-up |
17 | 20 | docker-compose-netbox-plugin-up: |
18 | | - @$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml up -d --build |
| 21 | + @$(DOCKER_COMPOSE) -f $(DOCKER_COMMON_PATH)/docker-compose.yaml up -d --build |
19 | 22 |
|
20 | 23 | .PHONY: docker-compose-netbox-plugin-down |
21 | 24 | docker-compose-netbox-plugin-down: |
22 | | - @$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml down |
| 25 | + @$(DOCKER_COMPOSE) -f $(DOCKER_COMMON_PATH)/docker-compose.yaml down |
23 | 26 |
|
24 | 27 | .PHONY: docker-compose-netbox-plugin-test |
25 | 28 | docker-compose-netbox-plugin-test: |
26 | | - @$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml -f $(DOCKER_PATH)/docker-compose.test.yaml run -u root --rm netbox ./manage.py test $(TEST_FLAGS) --keepdb $(TEST_SELECTOR); \ |
| 29 | + @$(DOCKER_COMPOSE) -f $(DOCKER_COMMON_PATH)/docker-compose.yaml -f $(DOCKER_COMMON_PATH)/docker-compose.test.yaml run -u root --rm netbox ./manage.py test $(TEST_FLAGS) --keepdb $(TEST_SELECTOR); \ |
27 | 30 | EXIT_CODE=$$?; \ |
28 | 31 | $(MAKE) docker-compose-netbox-plugin-down; \ |
29 | 32 | exit $$EXIT_CODE |
30 | 33 |
|
31 | 34 | .PHONY: docker-compose-netbox-plugin-test-lint |
32 | 35 | docker-compose-netbox-plugin-test-lint: |
33 | | - @$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml -f $(DOCKER_PATH)/docker-compose.test.yaml run -u root --rm netbox ruff check --output-format=github netbox_diode_plugin; \ |
| 36 | + @$(DOCKER_COMPOSE) -f $(DOCKER_COMMON_PATH)/docker-compose.yaml -f $(DOCKER_COMMON_PATH)/docker-compose.test.yaml run -u root --rm netbox ruff check --output-format=github netbox_diode_plugin; \ |
34 | 37 | EXIT_CODE=$$?; \ |
35 | 38 | $(MAKE) docker-compose-netbox-plugin-down; \ |
36 | 39 | exit $$EXIT_CODE |
37 | 40 |
|
38 | 41 | .PHONY: docker-compose-netbox-plugin-test-cover |
39 | 42 | docker-compose-netbox-plugin-test-cover: |
40 | | - @$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml -f $(DOCKER_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"; \ |
| 43 | + @$(DOCKER_COMPOSE) -f $(DOCKER_COMMON_PATH)/docker-compose.yaml -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"; \ |
41 | 44 | EXIT_CODE=$$?; \ |
42 | 45 | $(MAKE) docker-compose-netbox-plugin-down; \ |
43 | 46 | exit $$EXIT_CODE |
44 | 47 |
|
45 | 48 | .PHONY: docker-compose-generate-matching-docs |
46 | 49 | docker-compose-generate-matching-docs: |
47 | | - @$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml -f $(DOCKER_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 |
| 50 | + @$(DOCKER_COMPOSE) -f $(DOCKER_COMMON_PATH)/docker-compose.yaml -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 |
48 | 51 |
|
49 | 52 | .PHONY: docker-compose-migrate |
50 | 53 | docker-compose-migrate: |
51 | | - @$(DOCKER_COMPOSE) -f $(DOCKER_PATH)/docker-compose.yaml -f $(DOCKER_PATH)/docker-compose.test.yaml run --rm netbox python manage.py migrate |
| 54 | + @$(DOCKER_COMPOSE) -f $(DOCKER_COMMON_PATH)/docker-compose.yaml -f $(DOCKER_COMMON_PATH)/docker-compose.test.yaml run --rm netbox python manage.py migrate |
0 commit comments