Spaces:
Running
on
Zero
Running
on
Zero
| name: PyPI Release | |
| on: | |
| release: | |
| types: [published] | |
| jobs: | |
| build: | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| platform: [ubuntu-latest] | |
| python-version: ["3.9", "3.10", "3.11"] | |
| runs-on: ${{ matrix.platform }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| submodules: recursive | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Upgrade setuptools and wheel | |
| run: | | |
| pip install --upgrade setuptools wheel | |
| - name: Install dependencies on Ubuntu | |
| if: runner.os == 'Linux' | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install libopencv-dev -y | |
| - name: Install dependencies on macOS | |
| if: runner.os == 'macOS' | |
| run: | | |
| brew update | |
| brew install opencv | |
| - name: Install dependencies on Windows | |
| if: runner.os == 'Windows' | |
| run: | | |
| choco install opencv -y | |
| - name: Add requirements | |
| run: python -m pip install --upgrade setuptools wheel build | |
| - name: Install Python dependencies | |
| run: | | |
| pip install pytest | |
| pip install -r requirements.txt | |
| sudo apt-get update && sudo apt-get install ffmpeg libsm6 libxext6 -y | |
| - name: Build source distribution | |
| run: | | |
| python -m build --outdir dist/ | |
| ls -lh dist/ | |
| - name: Upload to GitHub Release | |
| if: matrix.python-version == '3.10' && github.event_name == 'release' | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: dist/*.whl | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Archive wheels | |
| if: matrix.python-version == '3.10' && github.event_name == 'release' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist/*.whl | |
| pypi-publish: | |
| name: upload release to PyPI | |
| needs: build | |
| runs-on: ubuntu-latest | |
| environment: pypi | |
| permissions: | |
| # IMPORTANT: this permission is mandatory for Trusted Publishing | |
| id-token: write | |
| steps: | |
| # retrieve your distributions here | |
| - name: Download artifacts | |
| uses: actions/download-artifact@v4 | |
| with: | |
| name: dist | |
| path: dist | |
| - name: List dist directory | |
| run: ls -lh dist/ | |
| - name: Publish package distributions to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |