summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChayim <chayim@users.noreply.github.com>2021-11-09 16:18:29 +0200
committerGitHub <noreply@github.com>2021-11-09 16:18:29 +0200
commitf5160f57fcfe48838cc2082cd3c1c2b86d3bd36c (patch)
tree57a57ff1bb2200c173222e520a4eb542d5be2edc
parentc19f120e069ab805d2a337beaed3de064e5875f7 (diff)
downloadredis-py-f5160f57fcfe48838cc2082cd3c1c2b86d3bd36c.tar.gz
Tests to validate built python packages (#1678)v4.0.0rc2
-rwxr-xr-x.github/workflows/install_and_test.sh41
-rw-r--r--.github/workflows/integration.yaml86
-rw-r--r--dev_requirements.txt1
-rw-r--r--tasks.py2
4 files changed, 88 insertions, 42 deletions
diff --git a/.github/workflows/install_and_test.sh b/.github/workflows/install_and_test.sh
new file mode 100755
index 0000000..330102e
--- /dev/null
+++ b/.github/workflows/install_and_test.sh
@@ -0,0 +1,41 @@
+#!/bin/bash
+
+set -e
+
+SUFFIX=$1
+if [ -z ${SUFFIX} ]; then
+ echo "Supply valid python package extension such as whl or tar.gz. Exiting."
+ exit 3
+fi
+
+script=`pwd`/${BASH_SOURCE[0]}
+HERE=`dirname ${script}`
+ROOT=`realpath ${HERE}/../..`
+
+cd ${ROOT}
+DESTENV=${ROOT}/.venvforinstall
+if [ -d ${DESTENV} ]; then
+ rm -rf ${DESTENV}
+fi
+python -m venv ${DESTENV}
+source ${DESTENV}/bin/activate
+pip install --upgrade --quiet pip
+pip install --quiet -r dev_requirements.txt
+invoke devenv
+invoke package
+
+# find packages
+PKG=`ls ${ROOT}/dist/*.${SUFFIX}`
+ls -l ${PKG}
+
+TESTDIR=${ROOT}/STAGETESTS
+if [ -d ${TESTDIR} ]; then
+ rm -rf ${TESTDIR}
+fi
+mkdir ${TESTDIR}
+cp -R ${ROOT}/tests ${TESTDIR}/tests
+cd ${TESTDIR}
+
+# install, run tests
+pip install ${PKG}
+pytest
diff --git a/.github/workflows/integration.yaml b/.github/workflows/integration.yaml
index 4a07394..5384996 100644
--- a/.github/workflows/integration.yaml
+++ b/.github/workflows/integration.yaml
@@ -6,61 +6,65 @@ on:
- 'docs/**'
- '**/*.rst'
- '**/*.md'
+ branches:
+ - master
pull_request:
branches:
- master
jobs:
- lint:
- name: Code linters
- runs-on: ubuntu-latest
- steps:
- - uses: actions/checkout@v2
- - name: install python
- uses: actions/setup-python@v2
- with:
- python-version: 3.9
- - name: run code linters
- run: |
- pip install -r dev_requirements.txt
- invoke linters
+ lint:
+ name: Code linters
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v2
+ - name: install python
+ uses: actions/setup-python@v2
+ with:
+ python-version: 3.9
+ - name: run code linters
+ run: |
+ pip install -r dev_requirements.txt
+ invoke linters
- run-tests:
- runs-on: ubuntu-latest
- strategy:
- max-parallel: 6
- matrix:
- python-version: ['3.6', '3.7', '3.8', '3.9', '3.10', 'pypy-3.7']
- env:
- ACTIONS_ALLOW_UNSECURE_COMMANDS: true
- name: Python ${{ matrix.python-version }} tests
- steps:
- - uses: actions/checkout@v2
- - name: install python
- uses: actions/setup-python@v2
- with:
- python-version: ${{ matrix.python-version }}
- - name: run tests
- run: |
- pip install -r dev_requirements.txt
- invoke tests
- - name: Upload codecov coverage
- uses: codecov/codecov-action@v2
- with:
- fail_ci_if_error: false
- token: ${{ secrets.CODECOV_TOKEN }}
+ run-tests:
+ runs-on: ubuntu-latest
+ strategy:
+ max-parallel: 6
+ matrix:
+ python-version: ['3.6', '3.7', '3.8', '3.9', '3.10', 'pypy-3.7']
+ env:
+ ACTIONS_ALLOW_UNSECURE_COMMANDS: true
+ name: Python ${{ matrix.python-version }} tests
+ steps:
+ - uses: actions/checkout@v2
+ - name: install python
+ uses: actions/setup-python@v2
+ with:
+ python-version: ${{ matrix.python-version }}
+ - name: run tests
+ run: |
+ pip install -r dev_requirements.txt
+ invoke tests
+ - name: Upload codecov coverage
+ uses: codecov/codecov-action@v2
+ with:
+ fail_ci_if_error: false
+ token: ${{ secrets.CODECOV_TOKEN }}
- build_package:
+ build_and_test_package:
name: Validate building and installing the package
runs-on: ubuntu-latest
+ strategy:
+ matrix:
+ extension: ['tar.gz', 'whl']
steps:
- uses: actions/checkout@v2
- name: install python
uses: actions/setup-python@v2
with:
python-version: 3.9
- - name: build and install
+ - name: Run installed unit tests
run: |
- pip install invoke
- invoke package
+ bash .github/workflows/install_and_test.sh ${{ matrix.extension }}
diff --git a/dev_requirements.txt b/dev_requirements.txt
index 0ca7727..6ea5055 100644
--- a/dev_requirements.txt
+++ b/dev_requirements.txt
@@ -6,3 +6,4 @@ tox-docker==3.1.0
invoke==1.6.0
pytest-cov>=3.0.0
vulture>=2.3.0
+wheel>=0.30.0
diff --git a/tasks.py b/tasks.py
index 4ca2242..306291c 100644
--- a/tasks.py
+++ b/tasks.py
@@ -56,4 +56,4 @@ def clean(c):
@task
def package(c):
"""Create the python packages"""
- run("python setup.py build install")
+ run("python setup.py sdist bdist_wheel")