aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitlab-ci.yml16
-rw-r--r--Makefile33
2 files changed, 49 insertions, 0 deletions
diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
new file mode 100644
index 0000000..eeb02e0
--- /dev/null
+++ b/.gitlab-ci.yml
@@ -0,0 +1,16 @@
+image: "ubuntu:focal"
+
+before_script:
+ - apt install pipenv
+ - pipenv --version
+
+variables:
+ LC_ALL: "C.UTF-8"
+ LANG: "C.UTF-8"
+ PIPENV_VENV_IN_PROJECT: "true"
+
+test_python:
+ script:
+ - make dep
+ - make test
+ - make lint
diff --git a/Makefile b/Makefile
new file mode 100644
index 0000000..1eb93a5
--- /dev/null
+++ b/Makefile
@@ -0,0 +1,33 @@
+
+SHELL = /bin/bash
+.SHELLFLAGS = -o pipefail -c
+TODAY ?= $(shell date --iso --utc)
+
+.PHONY: help
+help: ## Print info about all commands
+ @echo "Commands:"
+ @echo
+ @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[01;32m%-20s\033[0m %s\n", $$1, $$2}'
+
+.PHONY: dep
+dep: ## Install dependencies using pipenv
+ pipenv install --dev
+
+.PHONY: lint
+lint: ## Run lints (eg, flake8, mypy)
+ pipenv run flake8 grobid_tei_xml/ tests/ --exit-zero
+ pipenv run mypy grobid_tei_xml/ tests/ --ignore-missing-imports
+
+.PHONY: fmt
+fmt: ## Run code formating on all source code
+ pipenv run isort --atomic grobid_tei_xml/*
+ pipenv run yapf -p -i -r grobid_tei_xml/*
+ pipenv run yapf -p -i -r tests
+
+.PHONY: test
+test: ## Run all tests and lints
+ pipenv run python -m pytest
+
+.PHONY: coverage
+coverage: ## Run all tests with coverage
+ pipenv run pytest --cov --cov-report=term --cov-report=html