name: deploy on: workflow_dispatch: inputs: gitref: type: string description: "what git ref to build" required: true jobs: build: name: "Build and upload wheel" runs-on: ubuntu-latest steps: - name: Checkout repo uses: actions/checkout@v4 with: ref: ${{ github.event.inputs.gitref }} - name: Set up Python id: setup_python uses: actions/setup-python@v4 with: python-version: '3.10' - name: Cache virtual environment uses: actions/cache@v3 with: # We are hashing requirements-dev.txt and requirements-extra.txt which # contain all dependencies needed to run the tests and examples. key: venv-${{ runner.os }}-${{ steps.setup_python.outputs.python-version}}-${{ hashFiles('requirements.txt') }}-${{ hashFiles('requirements-dev.txt') }} path: .venv - name: Install system packages run: sudo apt-get install -y portaudio19-dev - name: Setup virtual environment run: | python -m venv .venv - name: Install basic Python dependencies run: | source .venv/bin/activate python -m pip install --upgrade pip pip install -r requirements.txt -r requirements-dev.txt - name: Build project run: | source .venv/bin/activate python -m build - name: Upload wheel uses: actions/upload-artifact@v4 with: path: ./dist publish-to-pypi: name: "Publish to PyPI" runs-on: ubuntu-latest needs: [ build ] environment: name: pypi url: https://pypi.org/p/dailyai permissions: id-token: write steps: - name: Download wheels uses: actions/download-artifact@v4 with: path: ./dist - name: Publish to PyPI uses: pypa/gh-action-pypi-publish@release/v1 with: verbose: true print-hash: true