Newer
Older
.PHONY: check-build test-dev test dev setup alembic-update db build coverage clean
# install pre-commit and install hooks from .pre-commit-config.yaml
init:

Nathan Bockisch
committed
brew install pre-commit || sudo apt install pre-commit
# Make sure pycapo gets built
git submodule update --init --recursive
check-build: docker-dev-images-locally test-dev

Nathan Hertz
committed
# Run tests on Dockerfile images
test-dev:
docker run nrao:workflow ./bin/run-tests.sh
docker run nrao:capability ./bin/run-tests.sh
docker run nrao:notification ./bin/run-tests.sh

Andrew Kapuscinski
committed
# Run tests on Dockerfile.local containers
test:
docker exec workspaces-workflow-1 su vlapipe -c "./bin/run-tests.sh"
docker exec workspaces-capability-1 ./bin/run-tests.sh
docker exec workspaces-notification-1 ./bin/run-tests.sh

Janet Goldstein
committed
test_cp:
docker exec workspaces-capability-1 ./bin/run-tests.sh

Janet Goldstein
committed

Janet Goldstein
committed
test_nf:
docker exec workspaces-notification-1 ./bin/run-tests.sh
@echo "starting docker compose up in the background"
@echo "wait a few seconds and your environment should be done setting up"
docker compose -f docker-compose.local.yml up -d
env CAPO_PROFILE=local alembic upgrade head

Nathan Hertz
committed
# Build images from Dockerfile
docker build -t nrao:workflow -f services/workflow/Dockerfile . --build-arg ENV=local
docker build -t nrao:capability -f services/capability/Dockerfile . --build-arg ENV=local
docker build -t nrao:notification -f services/notification/Dockerfile . --build-arg ENV=local
docker build --no-cache -t ssa-containers.aoc.nrao.edu/ops/ci/db:workspaces -f ./ci/psql/Dockerfile.db .
# Build docker images
docker compose -f docker-compose.local.yml build --no-cache

Andrew Kapuscinski
committed
# Generate HTML coverage report
coverage:
docker exec workspaces-workflow-1 ./bin/run-tests.sh -b
docker exec workspaces-capability-1 ./bin/run-tests.sh -b

Andrew Kapuscinski
committed
cp services/capability/.coverage ./.coverage.cap
docker exec workspaces-notification-1 ./bin/run-tests.sh -b

Andrew Kapuscinski
committed
cp services/notification/.coverage ./.coverage.no
coverage combine --append
coverage html --omit="**/test_*.py,**/_version.py,**/conftest.py,**/*interfaces.py" --skip-empty
# Clean up environment
clean:
# Clean up Docker environment
docker-compose -f docker-compose.local.yml down || true
# remove nrao: labeled containers
@docker container list --all | grep nrao: | awk '{ print $$1 }' | xargs docker container rm -f
# remove workspaces and nrao labeled images
@docker images | grep 'workspaces\|nrao\|cache' | awk '{ print $$3 }' | xargs docker rmi -f
# remove the python egg-info and pytest_cache folders
@find . \( -name "*.egg-info" -o -name ".pytest_cache" \) -exec rm -r {} \; || true
# Clean things up in a very nasty and destructive way that is sure to derail the rest of your afternoon
reallyclean: clean
docker system prune --volumes -f
docker build -t workflow:local -f services/workflow/Dockerfile . --build-arg ENV=local --target dev
docker build -t workflow:local -f services/workflow/Dockerfile . --build-arg ENV=local --target dev
docker build -t workflow:local -f services/workflow/Dockerfile . --build-arg ENV=local --target dev