From 6048ef97a6a4bf004f7712b2be3d246387a5dc94 Mon Sep 17 00:00:00 2001 From: "Jose M. Requena Plens" Date: Mon, 12 Jan 2026 17:37:18 +0100 Subject: [PATCH 1/5] ci: add macos and windows to test matrix --- .github/workflows/python-app.yml | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index c41425f..3ed9bb9 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -36,11 +36,13 @@ jobs: run: bandit -r src tests: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} permissions: contents: read strategy: + fail-fast: false matrix: + os: [ubuntu-latest, macos-latest, windows-latest] python-version: ["3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v4 @@ -54,18 +56,18 @@ jobs: python -m pip install --upgrade pip pip install -r requirements.txt pip install -r requirements-dev.txt - pip install -e . + pip install . - name: Run tests env: NUMBA_DISABLE_JIT: 1 run: | - pytest --junitxml=test-results-${{ matrix.python-version }}.xml --cov=src --cov-report=xml + pytest --junitxml=test-results-${{ matrix.os }}-${{ matrix.python-version }}.xml --cov=src --cov-report=xml - name: Upload Test Results uses: actions/upload-artifact@v4 with: - name: test-results-${{ matrix.python-version }} + name: test-results-${{ matrix.os }}-${{ matrix.python-version }} path: | - test-results-${{ matrix.python-version }}.xml + test-results-${{ matrix.os }}-${{ matrix.python-version }}.xml coverage.xml if: always() @@ -80,7 +82,7 @@ jobs: - name: Download coverage report uses: actions/download-artifact@v4 with: - name: test-results-3.13 + name: test-results-ubuntu-latest-3.13 - name: SonarCloud Scan uses: SonarSource/sonarqube-scan-action@master env: From e2d0a275dd59b0b22e4324bd64a1e1093a11e6d9 Mon Sep 17 00:00:00 2001 From: "Jose M. Requena Plens" Date: Mon, 12 Jan 2026 17:42:51 +0100 Subject: [PATCH 2/5] ci: add post-release installation verification --- .github/workflows/release.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index b29b828..a8a1b7d 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,6 +13,8 @@ jobs: release: runs-on: ubuntu-latest if: github.repository == 'jmrplens/PyOctaveBand' && !contains(github.event.head_commit.message, 'skip ci') + outputs: + version: ${{ steps.bump.outputs.version }} steps: - uses: actions/checkout@v4 with: @@ -81,3 +83,25 @@ jobs: prerelease: false env: GITHUB_TOKEN: ${{ secrets.TOKEN_GH }} + + verify-installation: + needs: release + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + steps: + - name: Wait for PyPI propagation + run: sleep 10 + shell: bash + + - name: Set up Python + uses: actions/setup-python@v5 + with: + python-version: "3.13" + + - name: Install and verify package + run: | + python -m pip install --upgrade pip + pip install pyoctaveband==${{ needs.release.outputs.version }} + python -c "import pyoctaveband; print('Package successfully installed and imported')" \ No newline at end of file From cbb5620ed84db6b61e9cfae2ce238186bb08af34 Mon Sep 17 00:00:00 2001 From: "Jose M. Requena Plens" Date: Mon, 12 Jan 2026 17:46:47 +0100 Subject: [PATCH 3/5] ci: add manual workflow to verify pypi installation --- .github/workflows/manual_verify_install.yml | 35 +++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 .github/workflows/manual_verify_install.yml diff --git a/.github/workflows/manual_verify_install.yml b/.github/workflows/manual_verify_install.yml new file mode 100644 index 0000000..989f833 --- /dev/null +++ b/.github/workflows/manual_verify_install.yml @@ -0,0 +1,35 @@ +name: Manual Verify Installation + +on: + workflow_dispatch: + inputs: + version: + description: 'Specific version to install (optional, defaults to latest)' + required: false + default: '' + +jobs: + verify-pypi-install: + runs-on: ${{ matrix.os }} + strategy: + matrix: + os: [ubuntu-latest, macos-latest, windows-latest] + python-version: ["3.13"] + steps: + - name: Set up Python ${{ matrix.python-version }} + uses: actions/setup-python@v5 + with: + python-version: ${{ matrix.python-version }} + + - name: Install PyOctaveBand + run: | + python -m pip install --upgrade pip + if [ -z "${{ inputs.version }}" ]; then + pip install pyoctaveband + else + pip install pyoctaveband==${{ inputs.version }} + fi + shell: bash + + - name: Verify Import + run: python -c "import pyoctaveband; print('Successfully imported pyoctaveband version:', pyoctaveband.__version__)" From 9cf19683160c9ce2a793cc4525b4543f85a00e62 Mon Sep 17 00:00:00 2001 From: "Jose M. Requena Plens" Date: Mon, 12 Jan 2026 17:47:52 +0100 Subject: [PATCH 4/5] revert: remove installation verification from release workflow --- .github/workflows/release.yml | 24 ------------------------ 1 file changed, 24 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index a8a1b7d..b29b828 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -13,8 +13,6 @@ jobs: release: runs-on: ubuntu-latest if: github.repository == 'jmrplens/PyOctaveBand' && !contains(github.event.head_commit.message, 'skip ci') - outputs: - version: ${{ steps.bump.outputs.version }} steps: - uses: actions/checkout@v4 with: @@ -83,25 +81,3 @@ jobs: prerelease: false env: GITHUB_TOKEN: ${{ secrets.TOKEN_GH }} - - verify-installation: - needs: release - runs-on: ${{ matrix.os }} - strategy: - matrix: - os: [ubuntu-latest, macos-latest, windows-latest] - steps: - - name: Wait for PyPI propagation - run: sleep 10 - shell: bash - - - name: Set up Python - uses: actions/setup-python@v5 - with: - python-version: "3.13" - - - name: Install and verify package - run: | - python -m pip install --upgrade pip - pip install pyoctaveband==${{ needs.release.outputs.version }} - python -c "import pyoctaveband; print('Package successfully installed and imported')" \ No newline at end of file From dc5a92f1defafc2ad31b7ce97618f552758421f6 Mon Sep 17 00:00:00 2001 From: "Jose M. Requena Plens" Date: Mon, 12 Jan 2026 17:49:27 +0100 Subject: [PATCH 5/5] ci: reduce python test matrix to 3.13 only --- .github/workflows/python-app.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index 3ed9bb9..a0b1f4b 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -43,7 +43,7 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, macos-latest, windows-latest] - python-version: ["3.11", "3.12", "3.13"] + python-version: ["3.13"] steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }}