Improve docker images and use brenard/mylib:dev-master to run tests quickly
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
Some checks failed
ci/woodpecker/push/woodpecker Pipeline failed
This commit is contained in:
parent
62c3fadf96
commit
86e1d59b1d
4 changed files with 61 additions and 24 deletions
|
@ -5,16 +5,9 @@ clone:
|
||||||
|
|
||||||
pipeline:
|
pipeline:
|
||||||
test:
|
test:
|
||||||
image: brenard/debian-python-deb
|
image: brenard/mylib:dev-master
|
||||||
commands:
|
commands:
|
||||||
- DEBIAN_FRONTEND=noninteractive apt-get -qq update < /dev/null > /dev/null
|
- ./tests.sh --no-venv
|
||||||
- DEBIAN_FRONTEND=noninteractive apt-get -y -qq upgrade < /dev/null > /dev/null
|
|
||||||
- DEBIAN_FRONTEND=noninteractive apt-get -qq -y install --no-install-recommends pkg-config libsystemd-dev libldap2-dev libsasl2-dev libpq-dev libmariadb-dev wget unzip < /dev/null > /dev/null
|
|
||||||
- wget --no-verbose -O /opt/instantclient-basic-linux.x64-21.4.0.0.0dbru.zip https://download.oracle.com/otn_software/linux/instantclient/214000/instantclient-basic-linux.x64-21.4.0.0.0dbru.zip
|
|
||||||
- unzip -qq -d /opt /opt/instantclient-basic-linux.x64-21.4.0.0.0dbru.zip
|
|
||||||
- echo /opt/instantclient_* > /etc/ld.so.conf.d/oracle-instantclient.conf
|
|
||||||
- ldconfig
|
|
||||||
- ./tests.sh --quiet
|
|
||||||
|
|
||||||
build:
|
build:
|
||||||
image: brenard/debian-python-deb
|
image: brenard/debian-python-deb
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
FROM brenard/mylib:latest
|
FROM brenard/mylib:latest
|
||||||
RUN apt-get remove -y python3-mylib
|
RUN apt-get remove -y python3-mylib
|
||||||
RUN python3 -m pip install -U git+https://gitea.zionetrix.net/bn8/python-mylib.git
|
RUN python3 -m pip install -U git+https://gitea.zionetrix.net/bn8/python-mylib.git
|
||||||
|
RUN git clone https://gitea.zionetrix.net/bn8/python-mylib.git /usr/local/src/python-mylib && pip install /usr/local/src/python-mylib[dev]
|
||||||
|
RUN cd /usr/local/src/python-mylib && pre-commit run --all-files
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
FROM debian:latest
|
FROM debian:latest
|
||||||
RUN echo "deb http://debian.zionetrix.net stable main" > /etc/apt/sources.list.d/zionetrix.list && apt-get -o Acquire::AllowInsecureRepositories=true -o Acquire::AllowDowngradeToInsecureRepositories=true update && apt-get -o APT::Get::AllowUnauthenticated=true install --yes zionetrix-archive-keyring && apt-get clean && rm -fr rm -rf /var/lib/apt/lists/*
|
RUN echo "deb http://debian.zionetrix.net stable main" > /etc/apt/sources.list.d/zionetrix.list && apt-get -o Acquire::AllowInsecureRepositories=true -o Acquire::AllowDowngradeToInsecureRepositories=true update && apt-get -o APT::Get::AllowUnauthenticated=true install --yes zionetrix-archive-keyring && apt-get clean && rm -fr rm -rf /var/lib/apt/lists/*
|
||||||
RUN apt-get update && apt-get upgrade -y && apt-get install -y python3-all python3-dev python3-pip python3-venv python3-mylib build-essential git && apt-get clean && rm -fr rm -rf /var/lib/apt/lists/*
|
RUN apt-get update && apt-get upgrade -y && apt-get install -y python3-all python3-dev python3-pip python3-venv python3-mylib build-essential git libldap2-dev libsasl2-dev pkg-config libsystemd-dev libpq-dev libmariadb-dev wget unzip && apt-get clean && rm -fr rm -rf /var/lib/apt/lists/*
|
||||||
RUN python3 -m pip install pylint pytest flake8 flake8-junit-report pylint-junit junitparser
|
RUN python3 -m pip install pylint pytest flake8 flake8-junit-report pylint-junit junitparser pre-commit
|
||||||
|
RUN wget --no-verbose -O /opt/instantclient-basic-linux.x64-21.4.0.0.0dbru.zip https://download.oracle.com/otn_software/linux/instantclient/214000/instantclient-basic-linux.x64-21.4.0.0.0dbru.zip && unzip -qq -d /opt /opt/instantclient-basic-linux.x64-21.4.0.0.0dbru.zip && echo /opt/instantclient_* > /etc/ld.so.conf.d/oracle-instantclient.conf && ldconfig
|
||||||
|
|
67
tests.sh
67
tests.sh
|
@ -1,31 +1,72 @@
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
QUIET_ARG=""
|
QUIET_ARG=""
|
||||||
|
NO_VENV=0
|
||||||
|
|
||||||
|
function usage() {
|
||||||
|
[ -n "$1" ] && echo -e "$1\n" > /dev/stderr
|
||||||
|
echo "Usage: $0 [-x] [-q|--quiet] [--no-venv]"
|
||||||
|
echo " -h/--help Show usage message"
|
||||||
|
echo " -q/--quiet Enable quiet mode"
|
||||||
|
echo " -n/--no-venv Disable venv creation and run tests on system environment"
|
||||||
|
echo " -x Enable debug mode"
|
||||||
|
[ -n "$1" ] && exit 1
|
||||||
|
exit 0
|
||||||
|
}
|
||||||
|
|
||||||
|
idx=1
|
||||||
|
while [ $idx -le $# ]
|
||||||
|
do
|
||||||
|
OPT=${!idx}
|
||||||
|
case $OPT in
|
||||||
|
-h|--help)
|
||||||
|
usage
|
||||||
|
;;
|
||||||
|
-q|--quiet)
|
||||||
|
QUIET_ARG="--quiet"
|
||||||
|
;;
|
||||||
|
-n|--no-venv)
|
||||||
|
NO_VENV=1
|
||||||
|
;;
|
||||||
|
-x)
|
||||||
|
set -x
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
usage "Unkown parameter '$OPT'"
|
||||||
|
esac
|
||||||
|
let idx=idx+1
|
||||||
|
done
|
||||||
[ "$1" == "--quiet" ] && QUIET_ARG="--quiet"
|
[ "$1" == "--quiet" ] && QUIET_ARG="--quiet"
|
||||||
|
|
||||||
# Enter source directory
|
# Enter source directory
|
||||||
cd $( dirname $0 )
|
cd $( dirname $0 )
|
||||||
|
|
||||||
if [ -d venv ]
|
TEMP_VENV=0
|
||||||
|
VENV=""
|
||||||
|
if [ $NO_VENV -eq 1 ]
|
||||||
then
|
then
|
||||||
VENV=$( realpath venv )
|
echo "Run tests in system environment..."
|
||||||
TEMP_VENV=0
|
elif [ -d venv ]
|
||||||
|
then
|
||||||
|
VENV=$( realpath venv )
|
||||||
|
echo "Using existing virtualenv ($VENV)..."
|
||||||
else
|
else
|
||||||
# Create a temporary venv
|
# Create a temporary venv
|
||||||
VENV=$(mktemp -d)
|
VENV=$(mktemp -d)
|
||||||
echo "Create a temporary virtualenv in $VENV to install dependencies..."
|
echo "Create a temporary virtualenv in $VENV..."
|
||||||
TEMP_VENV=1
|
TEMP_VENV=1
|
||||||
python3 -m venv $VENV
|
python3 -m venv $VENV
|
||||||
fi
|
fi
|
||||||
|
|
||||||
echo "Install package with dev dependencies using pip..."
|
if [ -n "$VENV" ]
|
||||||
$VENV/bin/python3 -m pip install -e ".[dev]" $QUIET_ARG
|
then
|
||||||
|
echo "Install package with dev dependencies using pip in virtualenv..."
|
||||||
RES=0
|
$VENV/bin/python3 -m pip install -e ".[dev]" $QUIET_ARG
|
||||||
|
source $VENV/bin/activate
|
||||||
|
fi
|
||||||
|
|
||||||
# Run pre-commit
|
# Run pre-commit
|
||||||
echo "Run pre-commit..."
|
echo "Run pre-commit..."
|
||||||
source $VENV/bin/activate
|
|
||||||
pre-commit run --all-files
|
pre-commit run --all-files
|
||||||
[ $? -ne 0 ] && RES=1
|
[ $? -ne 0 ] && RES=1
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue