--- 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 uses: actions/checkout@v3 - name: Build sdist run: ./scripts/build/build_sdist.sh env: PACKAGE_NAME: ${{ matrix.package_name }} - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: packages_sdist 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 build-manylinux: if: true strategy: fail-fast: false matrix: include: - {tag: manylinux2014, arch: x86_64} - {tag: manylinux2014, arch: i686} - {tag: manylinux2014, arch: aarch64} - {tag: manylinux2014, arch: ppc64le} - {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} runs-on: ubuntu-latest steps: - name: Checkout repos uses: actions/checkout@v3 - name: Set up QEMU for multi-arch build uses: docker/setup-qemu-action@v1 - name: Build packages run: >- docker run --rm -e PLAT=${{ matrix.tag }}_${{ matrix.arch }} -e PACKAGE_NAME=psycopg2-binary -e PYVERS="cp36-cp36m cp37-cp37m cp38-cp38 cp39-cp39 cp310-cp310 cp311-cp311" -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 - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: packages_${{ matrix.tag }}_${{ matrix.arch }} path: | dist/*/*${{ matrix.tag }}_${{ matrix.arch }}.whl 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 build-macos: runs-on: macos-latest if: true strategy: fail-fast: false matrix: python-version: ['3.6', '3.7', '3.8', '3.9', '3.10', '3.11'] steps: - name: Checkout repos uses: actions/checkout@v3 - name: Set up Python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} - name: Build packages run: ./scripts/build/build_macos.sh env: PACKAGE_NAME: psycopg2-binary PSYCOPG2_TESTDB: postgres PSYCOPG2_TEST_FAST: 1 - name: Upload artifacts uses: actions/upload-artifact@v3 with: name: packages_macos path: | dist/*/*${{ matrix.platform }}.whl