psycopg2/.github/workflows/packages.yml

148 lines
3.9 KiB
YAML
Raw Normal View History

---
name: Build packages
on:
- workflow_dispatch
jobs:
build-sdist:
if: true
strategy:
fail-fast: false
matrix:
include:
- package_name: psycopg2
- package_name: psycopg2-binary
runs-on: ubuntu-latest
steps:
- name: Checkout repos
2022-10-25 14:04:28 +03:00
uses: actions/checkout@v3
- 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
with:
path: |
dist/*/*.tar.gz
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
build-manylinux:
if: true
2021-05-24 00:47:49 +03:00
strategy:
fail-fast: false
matrix:
include:
- {tag: manylinux2014, arch: x86_64}
- {tag: manylinux2014, arch: i686}
- {tag: manylinux2014, arch: aarch64}
- {tag: manylinux2014, arch: ppc64le}
2021-11-17 20:45:39 +03:00
- {tag: musllinux_1_1, arch: x86_64}
- {tag: musllinux_1_1, arch: i686}
- {tag: musllinux_1_1, arch: aarch64}
- {tag: musllinux_1_1, arch: ppc64le}
2021-05-24 00:47:49 +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
- name: Set up QEMU for multi-arch build
uses: docker/setup-qemu-action@v2
2021-05-24 00:47:49 +03:00
- name: Build packages
run: >-
docker run --rm
-e PLAT=${{ matrix.tag }}_${{ matrix.arch }}
2021-05-24 00:47:49 +03:00
-e PACKAGE_NAME=psycopg2-binary
2022-10-25 13:26:20 +03:00
-e PYVERS="cp36-cp36m cp37-cp37m cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311"
2021-05-24 00:47:49 +03:00
-e PSYCOPG2_TESTDB=postgres
-e PSYCOPG2_TESTDB_HOST=172.17.0.1
-e PSYCOPG2_TESTDB_USER=postgres
-e PSYCOPG2_TESTDB_PASSWORD=password
-e PSYCOPG2_TEST_FAST=1
-v `pwd`:/src
--workdir /src
quay.io/pypa/${{ matrix.tag }}_${{ matrix.arch }}
./scripts/build/build_${{ matrix.tag }}.sh
2021-05-24 00:47:49 +03:00
- name: Upload artifacts
2022-10-25 14:04:28 +03:00
uses: actions/upload-artifact@v3
2021-05-24 00:47:49 +03:00
with:
path: |
dist/*/*${{ matrix.tag }}_${{ matrix.arch }}.whl
2021-05-24 00:47:49 +03:00
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 02:10:41 +03:00
build-macos:
runs-on: macos-latest
if: true
2021-05-24 02:10:41 +03:00
strategy:
fail-fast: false
matrix:
# 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
- name: Build wheels
uses: pypa/cibuildwheel@v2.12.1
2021-05-24 02:10:41 +03:00
env:
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:
path: ./wheelhouse/*.whl