Wheel #224
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Wheel | |
| on: | |
| pull_request: | |
| branches: | |
| - main | |
| push: | |
| branches: | |
| - main | |
| tags: | |
| - v* | |
| schedule: | |
| - cron: '0 16 * * *' # Every day at 16:00 UTC (~09:00 PT) | |
| jobs: | |
| build_wheels: | |
| name: Build on ${{ matrix.os }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [ubuntu-latest, macos-latest] | |
| python-version: [3.12] | |
| steps: | |
| - name: Checkout code | |
| uses: nschloe/action-cached-lfs-checkout@v1.2.3 | |
| with: | |
| exclude: "examples/example[2-4].wav" | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Build wheel | |
| run: | | |
| pip install --upgrade pip | |
| pip install build | |
| python -m build --wheel --outdir dist/ . | |
| - uses: actions/upload-artifact@v6 | |
| with: | |
| name: artifact-wheel-${{ matrix.os }}-${{ matrix.python-version }} | |
| path: ./dist/*.whl | |
| build_sdist: | |
| name: Build source distribution | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: nschloe/action-cached-lfs-checkout@v1.2.3 | |
| with: | |
| exclude: "examples/example[2-4].wav" | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.12' | |
| - name: Build sdist | |
| run: | | |
| pip install --upgrade pip | |
| pip install build | |
| python -m build --sdist --outdir dist/ . | |
| - uses: actions/upload-artifact@v6 | |
| with: | |
| name: artifact-sdist | |
| path: ./dist/*.tar.gz | |
| test_wheel: | |
| needs: [build_wheels, build_sdist] | |
| runs-on: ubuntu-latest | |
| # test wheel | |
| if: github.event_name == 'push' | |
| steps: | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v6 | |
| with: | |
| python-version: '3.12' | |
| - uses: actions/download-artifact@v7 | |
| with: | |
| path: artifact | |
| - name: Install wheel | |
| run: | | |
| pip install --upgrade pip | |
| pip install wheel | |
| find . | |
| mkdir dist | |
| cp artifact/*-ubuntu-*/*.whl dist/ | |
| cp artifact/*/*.tar.gz dist/ | |
| pip install dist/*.whl | |
| - name: Test module | |
| run: | | |
| python -c "import batbot;" | |
| # - name: Test CLI | |
| # run: | | |
| # batbot example | |
| upload_pypi: | |
| needs: [test_wheel] | |
| runs-on: ubuntu-latest | |
| # upload to PyPI on every tag starting with 'v' | |
| if: github.event_name == 'push' && startsWith(github.event.ref, 'refs/tags/v') | |
| environment: | |
| name: pypi | |
| url: https://pypi.org/p/batbot | |
| permissions: | |
| id-token: write | |
| steps: | |
| - uses: actions/download-artifact@v7 | |
| with: | |
| path: artifact | |
| - name: Install wheel | |
| run: | | |
| find . | |
| mkdir dist | |
| cp artifact/*-ubuntu-*/*.whl dist/ | |
| cp artifact/*/*.tar.gz dist/ | |
| - name: Publish package distributions to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| password: ${{ secrets.BATBOT_PYPI_TOKEN }} |