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__)" diff --git a/.github/workflows/python-app.yml b/.github/workflows/python-app.yml index c41425f..a0b1f4b 100644 --- a/.github/workflows/python-app.yml +++ b/.github/workflows/python-app.yml @@ -36,12 +36,14 @@ jobs: run: bandit -r src tests: - runs-on: ubuntu-latest + runs-on: ${{ matrix.os }} permissions: contents: read strategy: + fail-fast: false matrix: - python-version: ["3.11", "3.12", "3.13"] + os: [ubuntu-latest, macos-latest, windows-latest] + python-version: ["3.13"] steps: - uses: actions/checkout@v4 - name: Set up Python ${{ matrix.python-version }} @@ -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: