From 7ac43519c7f6e4a205c4f37185e081dfe744ad34 Mon Sep 17 00:00:00 2001 From: Drew Bednar Date: Sat, 19 Aug 2023 23:18:13 -0400 Subject: [PATCH] saving work --- {{cookiecutter.project_slug}}/.drone.yaml | 23 +++++++++++++++++++ {{cookiecutter.project_slug}}/pyproject.toml | 2 +- .../scripts/_common.sh | 9 ++++++++ .../scripts/{bootstrap => bootstrap.sh} | 14 ++++++++++- .../scripts/run_unit_tests.sh | 9 ++++++++ 5 files changed, 55 insertions(+), 2 deletions(-) create mode 100644 {{cookiecutter.project_slug}}/.drone.yaml create mode 100644 {{cookiecutter.project_slug}}/scripts/_common.sh rename {{cookiecutter.project_slug}}/scripts/{bootstrap => bootstrap.sh} (69%) create mode 100644 {{cookiecutter.project_slug}}/scripts/run_unit_tests.sh 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