Skip to content

Wheel

Wheel #210

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 }}