2021-05-23 21:42:27 +03:00
|
|
|
---
|
|
|
|
name: Build packages
|
|
|
|
on:
|
|
|
|
- workflow_dispatch
|
|
|
|
|
|
|
|
|
|
|
|
jobs:
|
|
|
|
build-sdist:
|
2022-10-27 01:38:24 +03:00
|
|
|
if: true
|
2021-05-23 21:42:27 +03:00
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
|
|
|
include:
|
|
|
|
- package_name: psycopg2
|
|
|
|
- package_name: psycopg2-binary
|
|
|
|
|
2022-07-28 16:31:16 +03:00
|
|
|
runs-on: ubuntu-latest
|
2021-05-23 21:42:27 +03:00
|
|
|
steps:
|
|
|
|
- name: Checkout repos
|
2022-10-25 14:04:28 +03:00
|
|
|
uses: actions/checkout@v3
|
2021-05-23 21:42:27 +03:00
|
|
|
|
|
|
|
- name: Build sdist
|
|
|
|
run: ./scripts/build/build_sdist.sh
|
|
|
|
env:
|
|
|
|
PACKAGE_NAME: ${{ matrix.package_name }}
|
|
|
|
|
|
|
|
- name: Upload artifacts
|
2022-10-25 14:04:28 +03:00
|
|
|
uses: actions/upload-artifact@v3
|
2021-05-23 21:42:27 +03:00
|
|
|
with:
|
|
|
|
path: |
|
2023-04-02 13:59:29 +03:00
|
|
|
dist/*.tar.gz
|
2021-05-23 21:42:27 +03:00
|
|
|
|
|
|
|
env:
|
|
|
|
PSYCOPG2_TESTDB: postgres
|
|
|
|
PSYCOPG2_TESTDB_HOST: 172.17.0.1
|
|
|
|
PSYCOPG2_TESTDB_USER: postgres
|
|
|
|
PSYCOPG2_TESTDB_PASSWORD: password
|
|
|
|
PSYCOPG2_TEST_FAST: 1
|
|
|
|
|
|
|
|
services:
|
|
|
|
postgresql:
|
|
|
|
image: postgres:13
|
|
|
|
env:
|
|
|
|
POSTGRES_PASSWORD: password
|
|
|
|
ports:
|
|
|
|
- 5432:5432
|
|
|
|
# Set health checks to wait until postgres has started
|
|
|
|
options: >-
|
|
|
|
--health-cmd pg_isready
|
|
|
|
--health-interval 10s
|
|
|
|
--health-timeout 5s
|
|
|
|
--health-retries 5
|
2021-05-24 00:47:49 +03:00
|
|
|
|
|
|
|
|
2023-04-02 18:33:56 +03:00
|
|
|
build-linux:
|
2022-10-27 01:38:24 +03:00
|
|
|
if: true
|
2023-04-03 06:07:01 +03:00
|
|
|
|
|
|
|
env:
|
|
|
|
LIBPQ_VERSION: "15.0"
|
|
|
|
OPENSSL_VERSION: "1.1.1t"
|
|
|
|
|
2021-05-24 00:47:49 +03:00
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
2023-04-02 18:33:56 +03:00
|
|
|
platform: [manylinux, musllinux]
|
|
|
|
arch: [x86_64, i686, aarch64, ppc64le]
|
|
|
|
pyver: [cp37, cp38, cp39, cp310, cp311]
|
2021-05-24 00:47:49 +03:00
|
|
|
|
2022-07-28 16:31:16 +03:00
|
|
|
runs-on: ubuntu-latest
|
2021-05-24 00:47:49 +03:00
|
|
|
steps:
|
|
|
|
- name: Checkout repos
|
2022-10-25 14:04:28 +03:00
|
|
|
uses: actions/checkout@v3
|
2021-05-24 00:47:49 +03:00
|
|
|
|
2021-05-24 01:08:12 +03:00
|
|
|
- name: Set up QEMU for multi-arch build
|
2023-03-30 18:09:23 +03:00
|
|
|
uses: docker/setup-qemu-action@v2
|
2021-05-24 01:08:12 +03:00
|
|
|
|
2023-04-02 18:33:56 +03:00
|
|
|
- name: Cache libpq build
|
|
|
|
uses: actions/cache@v3
|
|
|
|
with:
|
|
|
|
path: /tmp/libpq.build
|
|
|
|
key: libpq-${{ env.LIBPQ_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}
|
2021-05-24 00:47:49 +03:00
|
|
|
|
2023-04-02 18:33:56 +03:00
|
|
|
- name: Build wheels
|
|
|
|
uses: pypa/cibuildwheel@v2.12.0
|
|
|
|
env:
|
|
|
|
CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014
|
|
|
|
CIBW_MANYLINUX_I686_IMAGE: manylinux2014
|
|
|
|
CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014
|
|
|
|
CIBW_MANYLINUX_PPC64LE_IMAGE: manylinux2014
|
|
|
|
CIBW_BUILD: ${{matrix.pyver}}-${{matrix.platform}}_${{matrix.arch}}
|
|
|
|
CIBW_ARCHS_LINUX: auto aarch64 ppc64le
|
|
|
|
CIBW_BEFORE_ALL_LINUX: ./scripts/build/wheel_linux_before_all.sh
|
|
|
|
CIBW_REPAIR_WHEEL_COMMAND: >-
|
|
|
|
./scripts/build/strip_wheel.sh {wheel}
|
|
|
|
&& auditwheel repair -w {dest_dir} {wheel}
|
|
|
|
CIBW_TEST_COMMAND: >-
|
|
|
|
export PYTHONPATH={project} &&
|
|
|
|
python -c "import tests; tests.unittest.main(defaultTest='tests.test_suite')"
|
|
|
|
CIBW_ENVIRONMENT: >-
|
|
|
|
PACKAGE_NAME=psycopg2-binary
|
|
|
|
LIBPQ_BUILD_PREFIX=/host/tmp/libpq.build
|
|
|
|
PATH="$LIBPQ_BUILD_PREFIX/bin:$PATH"
|
|
|
|
LD_LIBRARY_PATH="$LIBPQ_BUILD_PREFIX/lib:$LIBPQ_BUILD_PREFIX/lib64"
|
|
|
|
PSYCOPG2_TESTDB=postgres
|
|
|
|
PSYCOPG2_TESTDB_HOST=172.17.0.1
|
|
|
|
PSYCOPG2_TESTDB_USER=postgres
|
|
|
|
PSYCOPG2_TESTDB_PASSWORD=password
|
|
|
|
PSYCOPG2_TEST_FAST=1
|
|
|
|
|
|
|
|
- uses: actions/upload-artifact@v3
|
2021-05-24 00:47:49 +03:00
|
|
|
with:
|
2023-04-02 18:33:56 +03:00
|
|
|
path: ./wheelhouse/*.whl
|
2021-05-24 00:47:49 +03:00
|
|
|
|
|
|
|
services:
|
|
|
|
postgresql:
|
2023-04-02 18:33:56 +03:00
|
|
|
image: postgres:14
|
2021-05-24 00:47:49 +03:00
|
|
|
env:
|
|
|
|
POSTGRES_PASSWORD: password
|
|
|
|
ports:
|
|
|
|
- 5432:5432
|
|
|
|
# Set health checks to wait until postgres has started
|
|
|
|
options: >-
|
|
|
|
--health-cmd pg_isready
|
|
|
|
--health-interval 10s
|
|
|
|
--health-timeout 5s
|
|
|
|
--health-retries 5
|
2021-05-24 02:10:41 +03:00
|
|
|
|
|
|
|
|
|
|
|
build-macos:
|
2022-07-28 16:31:16 +03:00
|
|
|
runs-on: macos-latest
|
2022-10-27 01:28:04 +03:00
|
|
|
if: true
|
2023-03-30 03:39:21 +03:00
|
|
|
|
2021-05-24 02:10:41 +03:00
|
|
|
strategy:
|
|
|
|
fail-fast: false
|
|
|
|
matrix:
|
2023-03-30 03:39:21 +03:00
|
|
|
# These archs require an Apple M1 runner: [arm64, universal2]
|
|
|
|
arch: [x86_64]
|
|
|
|
pyver: [cp37, cp38, cp39, cp310, cp311]
|
2021-05-24 02:10:41 +03:00
|
|
|
|
|
|
|
steps:
|
|
|
|
- name: Checkout repos
|
2022-10-25 14:04:28 +03:00
|
|
|
uses: actions/checkout@v3
|
2021-05-24 02:10:41 +03:00
|
|
|
|
2023-03-30 03:39:21 +03:00
|
|
|
- name: Build wheels
|
|
|
|
uses: pypa/cibuildwheel@v2.12.1
|
2021-05-24 02:10:41 +03:00
|
|
|
env:
|
2023-03-30 03:39:21 +03:00
|
|
|
CIBW_BUILD: ${{matrix.pyver}}-macosx_${{matrix.arch}}
|
|
|
|
CIBW_ARCHS_MACOS: x86_64
|
|
|
|
CIBW_BEFORE_ALL_MACOS: ./scripts/build/wheel_macos_before_all.sh
|
|
|
|
CIBW_TEST_COMMAND: >-
|
|
|
|
export PYTHONPATH={project} &&
|
|
|
|
python -c "import tests; tests.unittest.main(defaultTest='tests.test_suite')"
|
|
|
|
CIBW_ENVIRONMENT: >-
|
|
|
|
PACKAGE_NAME=psycopg2-binary
|
|
|
|
PSYCOPG2_TESTDB=postgres
|
|
|
|
PSYCOPG2_TEST_FAST=1
|
2021-05-24 02:10:41 +03:00
|
|
|
|
|
|
|
- name: Upload artifacts
|
2022-10-25 14:04:28 +03:00
|
|
|
uses: actions/upload-artifact@v3
|
2021-05-24 02:10:41 +03:00
|
|
|
with:
|
2023-03-30 03:39:21 +03:00
|
|
|
path: ./wheelhouse/*.whl
|