-
Daniel Ecer authored
* using single dockerfile * updated docker compose config version * refactored dockerfile * calling dev tools via python module * removed install_dev argument * fixed DOCKER_DEV_RUN placeholder * minor refactory of apt-get command * using builder image * updated nltk data directory
Unverified53327b3a
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
Makefile 2.62 KiB
DOCKER_COMPOSE_DEV = docker-compose
DOCKER_COMPOSE_CI = docker-compose -f docker-compose.yml
DOCKER_COMPOSE = $(DOCKER_COMPOSE_DEV)
VENV = venv
PIP = $(VENV)/bin/pip
PYTHON = $(VENV)/bin/python
DOCKER_DEV_RUN = $(DOCKER_COMPOSE) run --rm sciencebeam-gym-dev
DOCKER_DEV_PYTHON = $(DOCKER_DEV_RUN) python
NOT_SLOW_PYTEST_ARGS = -m 'not slow'
ARGS =
PORT = 8080
.PHONY: all build
venv-clean:
@if [ -d "$(VENV)" ]; then \
rm -rf "$(VENV)"; \
fi
venv-create:
python3 -m venv $(VENV)
dev-install:
$(PIP) install -r requirements.build.txt
$(PIP) install \
-r requirements.prereq.txt \
-r requirements.txt \
-r requirements.dev.txt
dev-nltk-download-models:
$(PYTHON) -m nltk.downloader punkt
dev-venv: venv-create dev-install dev-nltk-download-models
dev-flake8:
$(PYTHON) -m flake8 sciencebeam_gym tests setup.py
dev-pylint:
$(PYTHON) -m pylint sciencebeam_gym tests setup.py
dev-mypy:
$(PYTHON) -m mypy --ignore-missing-imports sciencebeam_gym tests setup.py $(ARGS)
dev-lint: dev-flake8 dev-pylint dev-mypy
dev-pytest:
$(PYTHON) -m pytest -p no:cacheprovider $(ARGS)
.dev-watch:
$(PYTHON) -m pytest_watch -- -p no:cacheprovider -p no:warnings $(ARGS)
dev-watch-slow:
@$(MAKE) .dev-watch
dev-watch:
@$(MAKE) ARGS="$(ARGS) $(NOT_SLOW_PYTEST_ARGS)" .dev-watch
dev-test: dev-lint dev-pytest
build:
$(DOCKER_COMPOSE) build sciencebeam-gym
build-dev:
$(DOCKER_COMPOSE) build sciencebeam-gym-dev
pylint:
$(DOCKER_DEV_PYTHON) -m pylint sciencebeam_gym tests setup.py
flake8:
$(DOCKER_DEV_PYTHON) -m flake8 sciencebeam_gym tests setup.py
mypy:
$(DOCKER_DEV_PYTHON) -m mypy --ignore-missing-imports sciencebeam_gym tests setup.py
lint: \
flake8 \
pylint \
mypy
pytest: build-dev
$(DOCKER_DEV_PYTHON) -m pytest $(ARGS)
pytest-not-slow: build-dev
@$(MAKE) ARGS="$(ARGS) $(NOT_SLOW_PYTEST_ARGS)" pytest
test: \
lint \
pytest \
.require-AUTOCUT_MODEL_PATH:
@if [ -z "$(AUTOCUT_MODEL_PATH)" ]; then \
echo "AUTOCUT_MODEL_PATH required"; \
exit 1; \
fi
shell-dev:
$(DOCKER_COMPOSE) run --rm sciencebeam-gym bash
autocut-start: .require-AUTOCUT_MODEL_PATH build
$(DOCKER_COMPOSE) run --rm \
-v "$(AUTOCUT_MODEL_PATH):/tmp/model.pkl" \
-e "AUTOCUT_MODEL_PATH=/tmp/model.pkl" \
-p $(PORT):8080 \
sciencebeam-gym \
start-autocut.sh
autocut-start-cloud: .require-AUTOCUT_MODEL_PATH build
$(DOCKER_COMPOSE) run --rm \
-v $$HOME/.config/gcloud:/root/.config/gcloud \
-e "AUTOCUT_MODEL_PATH=$(AUTOCUT_MODEL_PATH)" \
-p $(PORT):8080 \
sciencebeam-gym \
start-autocut.sh
ci-build-and-test:
make DOCKER_COMPOSE="$(DOCKER_COMPOSE_CI)" \
build build-dev test
ci-clean:
$(DOCKER_COMPOSE_CI) down -v