name: "Test Python Lib" on: push: branches: - main - devel - deploy pull_request: permissions: contents: read pull-requests: read jobs: develop-matrix: strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] python: ['3.9', '3.10', '3.11', '3.12'] runs-on: ${{ matrix.os }} steps: - name: Checkout uses: actions/checkout@v4 - name: Setup python uses: actions/setup-python@v4 with: python-version: ${{ matrix.python }} - name: Install lib run: | pip install --upgrade pip pip install -e . - name: pytest run: | pip install matplotlib pip install pytest pytest GPy/testing - name: Build wheel run: | pip install setuptools pip install wheel python setup.py bdist_wheel - name: Archive build artifacts uses: actions/upload-artifact@v4 with: name: build-artifacts-${{ matrix.os }}-${{ matrix.python }} path: dist deploy: runs-on: ubuntu-latest needs: develop-matrix # if: github.event_name == 'release' && github.event.action == 'created' steps: - name: Checkout uses: actions/checkout@v4 # Extract matrix parameters from the build job - name: Set matrix parameters run: | os=${{ needs.build.outputs.os }} python=${{ needs.build.outputs.python }} echo "Matrix parameters: OS=$os, Python=$python" echo "::set-env name=OS::$os" echo "::set-env name=PYTHON::$python" - name: Setup python uses: actions/setup-python@v4 with: python-version: '3.9' - name: Install twine run: | pip install --upgrade pip pip install twine - name: Download build artifacts uses: actions/download-artifact@v4 with: name: build-artifacts-${{ env.OS }}-${{ env.PYTHON }} path: dist - name: Inspect dist files run: | ls -la dist - name: Upload to PyPI using twine run: | twine upload --skip-existing dist/* env: TWINE_USERNAME: ${{ secrets.PYPI_USERNAME }} TWINE_PASSWORD: ${{ secrets.PYPI_PASSWORD }}