Working setup

drew/add-ci-setup
Drew Bednar 1 year ago
parent 7ac43519c7
commit 8feef6906d

@ -9,14 +9,14 @@ steps:
- echo "Welcome to drone\n"
- name: Unit Tests
image: python:3.8-buster
image: python:3.11-bullseye
commands:
- bash -c './ci_scripts/run_unit_tests.sh'
trigger:
event:
exclude:
- pull_request
- push
# Secrets used to pull private images
image_pull_secrets:

@ -9,7 +9,7 @@ repos:
- id: check-added-large-files
- id: debug-statements
- repo: https://github.com/shellcheck-py/shellcheck-py
rev: v0.8.0.4
rev: v0.9.0.5
hooks:
- id: shellcheck
- repo: https://github.com/psf/black

@ -5,4 +5,5 @@ pip-tools
pre-commit
pytest
pytest-cov
shellcheck-py==0.9.0.5
ruff

@ -1,9 +1,10 @@
#! /usr/bin/env bash
set -ex
source "$(dirname "$0")/_common.sh"
_setup_env
${VIRTUAL_ENV}/bin/python -m pytest -vv --cov "$@"
#!/usr/bin/env bash
function _setup_env() {
# build a virtual env
if [ -z "${VIRTUAL_ENV}" ]; then
python3 -m venv env
# shellcheck source=/dev/null
source env/bin/activate
fi
}

@ -1,32 +1,38 @@
#!/usr/bin/env bash
# setting -e to exit immediately on a command failure.
# 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 -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 -u affects variables. When set, a reference to any variable
# you haven't previously defined - with the exceptions of $* and $@ -
# is an error, and causes the program to immediately exit
set -eo pipefail
IFS=$'\n\t'
function _setup_env() {
# build a virtual env and install
if [ -z $VIRTUAL_ENV ]; then
python3 -m venv env
source env/bin/activate
fi
# shellcheck source=/dev/null
source "$(dirname "$0")/_common.sh"
if [ "${DRONE}" == "true" ]; then
function project_bootstrap() {
_setup_env
pip install -U pip pip-tools=='7.3.0'
pip-compile requirements.in
pip-compile dev-requirements.in
pip-sync requirements.txt dev-requirements.txt
}
fi
function install_precommit_hooks() {
if [ ! -d ".git" ]; then
git init
fi
if [ -z "${VIRTUAL_ENV}" ]; then
if [ -z "$VIRTUAL_ENV" ]; then
echo "warning: you are not in a virtualenv"
exit 1
fi
fi
pip install -U pip pip-tools
pip-compile requirements.in
pip-compile dev-requirements.in
pip-sync requirements.txt dev-requirements.txt
if [ ! -d ".git" ]; then
git init
pre-commit install
fi
}
project_bootstrap
install_precommit_hooks

@ -1,9 +1,12 @@
#! /usr/bin/env bash
set -ex
# shellcheck source=/dev/null
source "$(dirname "$0")/_common.sh"
_setup_env
if [ "${DRONE}" == "true" ]; then
_setup_env
pip install -r requirements.txt -r dev-requirements.txt
fi
${VIRTUAL_ENV}/bin/python -m pytest -vv --cov "$@"
exec "${VIRTUAL_ENV}/bin/python" -m pytest -vv --cov "$@"

@ -4,4 +4,3 @@ from {{cookiecutter.project_slug}}.example import Example
def test_example():
my_example = Example(name="dirp")
assert my_example.name == "dirp"

Loading…
Cancel
Save