Skip to content

i

i #608

Workflow file for this run

name: pg8000
on: [push]
permissions: read-all
jobs:
main-test:
runs-on: ubuntu-latest
strategy:
matrix:
python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"]
postgresql-version: [17, 16, 15, 14, 13, 12]
container:
image: python:${{ matrix.python-version }}
env:
PGHOST: postgres
PGPASSWORD: postgres
PGUSER: postgres
services:
postgres:
image: postgres:${{ matrix.postgresql-version }}
env:
POSTGRES_PASSWORD: postgres
# Set health checks to wait until postgres has started
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
--mount type=bind,source="${{ github.workspace }}/test/postgres_server/init_scripts",target=/docker-entrypoint-initdb.d
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
git config --global --add safe.directory "$GITHUB_WORKSPACE"
python -m pip install --no-cache-dir --upgrade pip
pip install --no-cache-dir --root-user-action ignore pytest pytest-mock pytest-benchmark pytz .
- name: Install Podman
run: |
sudo apt-get update
sudo apt-get -y install podman
- name: Check Podman version
run: podman --version
- name: Run postgresql
run: ${{ github.workspace }}/test/postgres_server/run_test_server.sh
- name: Test with pytest
run: |
python -m pytest -x -v -W error test --ignore=test/test_readme.py
- name: Stop and remove the container
run: |
podman stop pg8000-test-server
podman rm pg8000-test-server
static-test:
runs-on: ubuntu-latest
services:
postgres:
image: postgres:12
env:
POSTGRES_PASSWORD: cpsnow
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
ports:
- 5432:5432
steps:
- name: Check out repository code
uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: "3.11"
- name: Install dependencies
run: |
psql postgresql://postgres:cpsnow@localhost -c "ALTER SYSTEM SET ssl = on;"
psql postgresql://postgres:cpsnow@localhost -c "ALTER SYSTEM SET ssl_cert_file = '/etc/ssl/certs/ssl-cert-snakeoil.pem'"
psql postgresql://postgres:cpsnow@localhost -c "ALTER SYSTEM SET ssl_key_file = '/etc/ssl/private/ssl-cert-snakeoil.key'"
psql postgresql://postgres:cpsnow@localhost localhost -c "SELECT pg_reload_conf()"
python -m pip install --upgrade pip
pip install black build flake8 pytest flake8-alphabetize Flake8-pyproject \
twine .
- name: Lint check
run: |
black --check .
flake8 .
- name: Doctest
env:
PGPASSWORD: cpsnow
USER: postgres
run: |
python -m pytest -x -v -W error test/test_readme.py
- name: Check Distribution
run: |
python -m build
twine check dist/*