diff --git a/{{cookiecutter.project_slug}}/.drone.yaml b/{{cookiecutter.project_slug}}/.drone.yaml new file mode 100644 index 0000000..9c4c699 --- /dev/null +++ b/{{cookiecutter.project_slug}}/.drone.yaml @@ -0,0 +1,23 @@ +kind: pipeline +type: docker +name: CI Test Pipeline + +steps: +- name: greeting + image: alpine + commands: + - echo "Welcome to drone\n" + +- name: Unit Tests + image: python:3.8-buster + commands: + - bash -c './ci_scripts/run_unit_tests.sh' + +trigger: + event: + exclude: + - pull_request + +# Secrets used to pull private images +image_pull_secrets: + - dockerconfigjson \ No newline at end of file diff --git a/{{cookiecutter.project_slug}}/pyproject.toml b/{{cookiecutter.project_slug}}/pyproject.toml index b2335dc..45f344e 100644 --- a/{{cookiecutter.project_slug}}/pyproject.toml +++ b/{{cookiecutter.project_slug}}/pyproject.toml @@ -7,4 +7,4 @@ filter_files = true [tool.black] line-length = 120 skip-string-normalization = true -exclude = "(^/\\.git|^/env/|^/venv/)" +exclude = "(^/\\.git|^/env/|^/venv/|^/node_modules/)" diff --git a/{{cookiecutter.project_slug}}/scripts/_common.sh b/{{cookiecutter.project_slug}}/scripts/_common.sh new file mode 100644 index 0000000..4173faf --- /dev/null +++ b/{{cookiecutter.project_slug}}/scripts/_common.sh @@ -0,0 +1,9 @@ +#! /usr/bin/env bash + +set -ex + +source "$(dirname "$0")/_common.sh" + +_setup_env + +${VIRTUAL_ENV}/bin/python -m pytest -vv --cov "$@" \ No newline at end of file diff --git a/{{cookiecutter.project_slug}}/scripts/bootstrap b/{{cookiecutter.project_slug}}/scripts/bootstrap.sh similarity index 69% rename from {{cookiecutter.project_slug}}/scripts/bootstrap rename to {{cookiecutter.project_slug}}/scripts/bootstrap.sh index b396ae1..8a84291 100755 --- a/{{cookiecutter.project_slug}}/scripts/bootstrap +++ b/{{cookiecutter.project_slug}}/scripts/bootstrap.sh @@ -4,7 +4,19 @@ # setting -o pipefail sets the exit code of a pipeline to that of the rightmost command to exit with a non-zero status, or to zero if all commands of the pipeline exit successfully. set -eo pipefail -if [ -z "$VIRTUAL_ENV" ]; then +function _setup_env() { + # build a virtual env and install + if [ -z $VIRTUAL_ENV ]; then + python3 -m venv env + source env/bin/activate + fi + +if [ "${DRONE}" == "true" ]; then + _setup_env + +fi + +if [ -z "${VIRTUAL_ENV}" ]; then echo "warning: you are not in a virtualenv" exit 1 fi diff --git a/{{cookiecutter.project_slug}}/scripts/run_unit_tests.sh b/{{cookiecutter.project_slug}}/scripts/run_unit_tests.sh new file mode 100644 index 0000000..4173faf --- /dev/null +++ b/{{cookiecutter.project_slug}}/scripts/run_unit_tests.sh @@ -0,0 +1,9 @@ +#! /usr/bin/env bash + +set -ex + +source "$(dirname "$0")/_common.sh" + +_setup_env + +${VIRTUAL_ENV}/bin/python -m pytest -vv --cov "$@" \ No newline at end of file