Update CI/CD #3
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: | |
| push: | |
| branches: | |
| - main | |
| 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.8] | |
| 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: | |
| 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: | |
| 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: | |
| name: artifact | |
| path: dist | |
| - name: Install wheel | |
| run: | | |
| pip install --upgrade pip | |
| pip install wheel | |
| pip install dist/*.whl | |
| - name: Test module | |
| run: | | |
| python -c "import batbot; batbot.example();" | |
| - 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: | |
| name: artifact | |
| path: dist | |
| - name: Publish package distributions to PyPI | |
| uses: pypa/gh-action-pypi-publish@release/v1 | |
| with: | |
| password: ${{ secrets.BATBOT_PYPI_TOKEN }} |