You've already forked ansible-netbox-inventory
compose stack modelled on the production netbox deployment (same pinned images, worker, healthchecks) minus traefik: the API is served straight on localhost and nothing survives an e2e-down.
49 lines
1.4 KiB
Makefile
49 lines
1.4 KiB
Makefile
# SPDX-License-Identifier: GPL-2.0-or-later
|
|
# Copyright (C) 2026 Bryan Joshua Pedini
|
|
.PHONY: help dev-environment test lint lint-fix format clean e2e-up e2e-down test-e2e
|
|
|
|
VENV ?= .venv
|
|
PYTHON ?= $(VENV)/bin/python
|
|
|
|
help:
|
|
@echo "Available targets:"
|
|
@echo " dev-environment create the virtualenv and install dev dependencies"
|
|
@echo " test run the unit test suite"
|
|
@echo " lint run ruff checks"
|
|
@echo " lint-fix run ruff checks and fix what is auto-fixable"
|
|
@echo " format run the ruff formatter"
|
|
@echo " clean remove the virtualenv and caches"
|
|
@echo " e2e-up start the throwaway NetBox stack for e2e tests"
|
|
@echo " e2e-down stop the e2e stack and delete its data"
|
|
@echo " test-e2e run the end-to-end tests against the e2e stack"
|
|
|
|
dev-environment:
|
|
python3 -m venv $(VENV)
|
|
$(PYTHON) -m pip install --upgrade pip
|
|
$(PYTHON) -m pip install requests PyYAML pytest responses ruff
|
|
|
|
test:
|
|
$(PYTHON) -m pytest
|
|
|
|
lint:
|
|
$(PYTHON) -m ruff check .
|
|
|
|
lint-fix:
|
|
$(PYTHON) -m ruff check --fix .
|
|
|
|
format:
|
|
$(PYTHON) -m ruff format .
|
|
|
|
e2e-up:
|
|
test -f e2e/.env || cp e2e/env.example e2e/.env
|
|
docker compose --project-directory e2e --env-file e2e/.env up -d --wait
|
|
|
|
e2e-down:
|
|
docker compose --project-directory e2e --env-file e2e/.env down -v
|
|
|
|
test-e2e:
|
|
$(PYTHON) -m pytest e2e
|
|
|
|
clean:
|
|
rm -rf $(VENV) .pytest_cache .ruff_cache __pycache__ tests/__pycache__
|