Ordering of constraints for pg17+ #206
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # | |
| # https://docs.github.com/en/actions/reference | |
| # https://github.com/actions | |
| # https://cibuildwheel.readthedocs.io/en/stable/options/ | |
| # | |
| # uses: https://github.com/actions/checkout @v4 | |
| # uses: https://github.com/actions/setup-python @v4 | |
| # uses: https://github.com/actions/download-artifact @v3 | |
| # uses: https://github.com/actions/upload-artifact @v3 | |
| # uses: https://github.com/pypa/cibuildwheel @v2.16 | |
| name: CI | |
| on: | |
| pull_request: {} | |
| push: {} | |
| jobs: | |
| check: | |
| name: "Check" | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| test: | |
| - {PY: "3.10", TOXENV: "lint"} | |
| steps: | |
| - name: "Checkout" | |
| uses: actions/checkout@v4 | |
| - name: "Setup Python ${{matrix.test.PY}}" | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{matrix.test.PY}} | |
| - run: python3 -m pip install -r etc/requirements.build.txt --disable-pip-version-check | |
| - name: "Test" | |
| env: | |
| TOXENV: ${{matrix.test.TOXENV}} | |
| run: python3 -m tox -r | |
| no_database: | |
| name: "${{matrix.test.osname}} + Python ${{matrix.test.PY}} ${{matrix.test.arch}}" | |
| runs-on: ${{matrix.test.os}} | |
| strategy: | |
| matrix: | |
| test: | |
| - {os: "ubuntu-latest", osname: "Linux", PY: "3.7", TOXENV: "py37", arch: "x64"} | |
| - {os: "ubuntu-latest", osname: "Linux", PY: "3.8", TOXENV: "py38", arch: "x64"} | |
| - {os: "ubuntu-latest", osname: "Linux", PY: "3.9", TOXENV: "py39", arch: "x64"} | |
| - {os: "ubuntu-latest", osname: "Linux", PY: "3.10", TOXENV: "py310", arch: "x64"} | |
| - {os: "ubuntu-latest", osname: "Linux", PY: "3.11", TOXENV: "py311", arch: "x64"} | |
| - {os: "ubuntu-latest", osname: "Linux", PY: "3.12", TOXENV: "py312", arch: "x64"} | |
| - {os: "macos-latest", osname: "MacOS", PY: "3.10", TOXENV: "py310", arch: "x64"} | |
| - {os: "macos-latest", osname: "MacOS", PY: "3.11", TOXENV: "py311", arch: "x64"} | |
| #- {os: "macos-latest", osname: "MacOS", PY: "3.12", TOXENV: "py312", arch: "x64"} | |
| - {os: "windows-latest", osname: "Windows", PY: "3.7", TOXENV: "py37", arch: "x86"} | |
| - {os: "windows-latest", osname: "Windows", PY: "3.8", TOXENV: "py38", arch: "x64"} | |
| - {os: "windows-latest", osname: "Windows", PY: "3.10", TOXENV: "py310", arch: "x86"} | |
| - {os: "windows-latest", osname: "Windows", PY: "3.11", TOXENV: "py311", arch: "x64"} | |
| #- {os: "windows-latest", osname: "Windows", PY: "3.12", TOXENV: "py312", arch: "x64"} | |
| - {os: "ubuntu-latest", osname: "Linux", PY: "pypy3.8", TOXENV: "pypy38", arch: "x64"} | |
| - {os: "ubuntu-latest", osname: "Linux", PY: "pypy3.9", TOXENV: "pypy39", arch: "x64"} | |
| - {os: "ubuntu-latest", osname: "Linux", PY: "pypy3.10", TOXENV: "pypy310", arch: "x64"} | |
| steps: | |
| - name: "Checkout" | |
| uses: actions/checkout@v4 | |
| - name: "Setup Python ${{matrix.test.PY}}" | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{matrix.test.PY}} | |
| architecture: ${{matrix.test.arch}} | |
| allow-prereleases: true | |
| - run: python3 -m pip install -r etc/requirements.build.txt --disable-pip-version-check | |
| - name: "Build" | |
| run: python setup.py build | |
| - name: "Test" | |
| env: | |
| TOXENV: ${{matrix.test.TOXENV}} | |
| run: python -m tox -r -- --color=yes | |
| database: | |
| name: "Python ${{matrix.test.PY}} + PostgreSQL ${{matrix.test.PG}}" | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| test: | |
| - {PY: "3.7", PG: "11", TOXENV: "py37"} | |
| - {PY: "3.8", PG: "12", TOXENV: "py38"} | |
| - {PY: "3.9", PG: "13", TOXENV: "py39"} | |
| - {PY: "3.10", PG: "14", TOXENV: "py310"} | |
| - {PY: "3.11", PG: "15", TOXENV: "py311"} | |
| #- {PY: "pypy3.9", PG: "15", TOXENV: "pypy39"} | |
| #- {PY: "pypy3.10", PG: "15", TOXENV: "pypy310"} | |
| steps: | |
| - name: "Checkout" | |
| uses: actions/checkout@v4 | |
| - name: "Setup Python ${{matrix.test.PY}}" | |
| uses: actions/setup-python@v4 | |
| with: | |
| python-version: ${{matrix.test.PY}} | |
| - run: python3 -m pip install -r etc/requirements.build.txt --disable-pip-version-check | |
| - name: "InstallDB" | |
| run: | | |
| echo "::group::apt-get-update" | |
| sudo -nH apt-get -q update | |
| sudo -nH apt-get -q install curl ca-certificates gnupg | |
| curl https://www.postgresql.org/media/keys/ACCC4CF8.asc \ | |
| | gpg --dearmor \ | |
| | sudo -nH tee /etc/apt/trusted.gpg.d/apt.postgresql.org.gpg | |
| echo "deb http://apt.postgresql.org/pub/repos/apt/ $(lsb_release -cs)-pgdg main ${{matrix.test.PG}}" \ | |
| | sudo -nH tee /etc/apt/sources.list.d/pgdg.list | |
| sudo -nH apt-get -q update | |
| echo "::endgroup::" | |
| echo "::group::apt-get-install" | |
| # disable new cluster creation | |
| sudo -nH mkdir -p /etc/postgresql-common/createcluster.d | |
| echo "create_main_cluster = false" | sudo -nH tee /etc/postgresql-common/createcluster.d/no-main.conf | |
| sudo -nH apt-get -qyu install postgresql-${{matrix.test.PG}} | |
| echo "::endgroup::" | |
| # tune environment | |
| echo "/usr/lib/postgresql/${{matrix.test.PG}}/bin" >> $GITHUB_PATH | |
| echo "PGHOST=/tmp" >> $GITHUB_ENV | |
| - name: "StartDB" | |
| run: | | |
| rm -rf data log | |
| mkdir -p log | |
| LANG=C initdb data | |
| sed -ri -e "s,^[# ]*(unix_socket_directories).*,\\1='/tmp'," data/postgresql.conf | |
| pg_ctl -D data -l log/pg.log start || { cat log/pg.log ; exit 1; } | |
| sleep 1 | |
| createdb testdb | |
| - name: "Test" | |
| env: | |
| TOXENV: ${{matrix.test.TOXENV}} | |
| TEST_DB: dbname=testdb host=/tmp | |
| run: | | |
| python3 -m tox -r -- --color=yes | |
| - name: "StopDB" | |
| run: | | |
| pg_ctl -D data stop | |
| rm -rf data log /tmp/.s.PGSQL* | |
| cibuildwheel: | |
| name: "Wheels: ${{matrix.sys.name}} [${{matrix.sys.archs}}]" | |
| runs-on: ${{matrix.sys.os}} | |
| strategy: | |
| matrix: | |
| sys: | |
| - {os: "ubuntu-latest", name: "Linux", archs: "auto", qemu: false} | |
| - {os: "ubuntu-latest", name: "Linux", archs: "aarch64", qemu: true} | |
| - {os: "macos-latest", name: "MacOS", archs: "x86_64 arm64 universal2", qemu: false} | |
| - {os: "windows-latest", name: "Windows", archs: "auto", qemu: false} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: "Set up QEMU" | |
| if: ${{matrix.sys.qemu}} | |
| uses: docker/setup-qemu-action@v2 | |
| with: | |
| platforms: all | |
| - uses: pypa/cibuildwheel@v2.16 | |
| env: | |
| CIBW_ARCHS: "${{matrix.sys.archs}}" | |
| # cp38: cp37-macos does not support universal2/arm64 | |
| CIBW_BUILD: "cp38-* pp*-manylinux_x86_64" | |
| CIBW_SKIP: "pp37-*" | |
| - name: "Check" | |
| shell: bash | |
| run: | | |
| ls -l wheelhouse | |
| - uses: actions/upload-artifact@v3 | |
| with: {name: "dist", path: "wheelhouse"} | |