From 202dfa1a0aa1a1a9424cb8301b89b12de9e2de47 Mon Sep 17 00:00:00 2001 From: Daniele Varrazzo Date: Tue, 20 Dec 2022 15:25:14 +0000 Subject: [PATCH] ci: separate source and binary package workflows --- .github/workflows/lint.yml | 1 + .../{packages.yml => packages-bin.yml} | 73 +----------------- .github/workflows/packages-src.yml | 76 +++++++++++++++++++ 3 files changed, 78 insertions(+), 72 deletions(-) rename .github/workflows/{packages.yml => packages-bin.yml} (74%) create mode 100644 .github/workflows/packages-src.yml diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 452755100..216032636 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -15,6 +15,7 @@ concurrency: jobs: lint: runs-on: ubuntu-latest + if: true steps: - uses: actions/checkout@v3 diff --git a/.github/workflows/packages.yml b/.github/workflows/packages-bin.yml similarity index 74% rename from .github/workflows/packages.yml rename to .github/workflows/packages-bin.yml index 18a2817c8..f8283e95d 100644 --- a/.github/workflows/packages.yml +++ b/.github/workflows/packages-bin.yml @@ -1,4 +1,4 @@ -name: Build packages +name: Build binary packages on: workflow_dispatch: @@ -7,77 +7,6 @@ on: jobs: - sdist: # {{{ - runs-on: ubuntu-latest - if: true - - strategy: - fail-fast: false - matrix: - include: - - {package: psycopg, format: sdist, impl: python} - - {package: psycopg, format: wheel, impl: python} - - {package: psycopg_c, format: sdist, impl: c} - - steps: - - uses: actions/checkout@v3 - - - uses: actions/setup-python@v4 - with: - python-version: 3.9 - - - name: Create the sdist packages - run: |- - python ${{ matrix.package }}/setup.py sdist -d `pwd`/dist/ - if: ${{ matrix.format == 'sdist' }} - - - name: Create the wheel packages - run: |- - pip install wheel - python ${{ matrix.package }}/setup.py bdist_wheel -d `pwd`/dist/ - if: ${{ matrix.format == 'wheel' }} - - - name: Install the Python package and test requirements - run: |- - pip install `ls dist/*`[test] - pip install ./psycopg_pool - if: ${{ matrix.package == 'psycopg' }} - - - name: Install the C package and test requirements - run: |- - pip install dist/* - pip install ./psycopg[test] - pip install ./psycopg_pool - if: ${{ matrix.package == 'psycopg_c' }} - - - name: Test the sdist package - run: pytest -m 'not slow and not flakey' --color yes - env: - PSYCOPG_IMPL: ${{ matrix.impl }} - PSYCOPG_TEST_DSN: "host=127.0.0.1 user=postgres" - PGPASSWORD: password - - - uses: actions/upload-artifact@v3 - with: - path: ./dist/* - - services: - postgresql: - image: postgres:14 - 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 - - - # }}} - linux: # {{{ runs-on: ubuntu-latest if: true diff --git a/.github/workflows/packages-src.yml b/.github/workflows/packages-src.yml new file mode 100644 index 000000000..1a9534f56 --- /dev/null +++ b/.github/workflows/packages-src.yml @@ -0,0 +1,76 @@ +name: Build source packages + +on: + workflow_dispatch: + schedule: + - cron: '37 6 * * sun' + +jobs: + + sdist: + runs-on: ubuntu-latest + if: true + + strategy: + fail-fast: false + matrix: + include: + - {package: psycopg, format: sdist, impl: python} + - {package: psycopg, format: wheel, impl: python} + - {package: psycopg_c, format: sdist, impl: c} + + steps: + - uses: actions/checkout@v3 + + - uses: actions/setup-python@v4 + with: + python-version: 3.9 + + - name: Create the sdist packages + run: |- + python ${{ matrix.package }}/setup.py sdist -d `pwd`/dist/ + if: ${{ matrix.format == 'sdist' }} + + - name: Create the wheel packages + run: |- + pip install wheel + python ${{ matrix.package }}/setup.py bdist_wheel -d `pwd`/dist/ + if: ${{ matrix.format == 'wheel' }} + + - name: Install the Python package and test requirements + run: |- + pip install `ls dist/*`[test] + pip install ./psycopg_pool + if: ${{ matrix.package == 'psycopg' }} + + - name: Install the C package and test requirements + run: |- + pip install dist/* + pip install ./psycopg[test] + pip install ./psycopg_pool + if: ${{ matrix.package == 'psycopg_c' }} + + - name: Test the sdist package + run: pytest -m 'not slow and not flakey' --color yes + env: + PSYCOPG_IMPL: ${{ matrix.impl }} + PSYCOPG_TEST_DSN: "host=127.0.0.1 user=postgres" + PGPASSWORD: password + + - uses: actions/upload-artifact@v3 + with: + path: ./dist/* + + services: + postgresql: + image: postgres:14 + 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 -- 2.47.2