Spaces:
Running
Running
| name: "Nightly-Mac-Arm64" | |
| on: | |
| workflow_dispatch: | |
| inputs: | |
| is_nightly: | |
| description: 'Whether to build the nightly package (sets DEV_BUILD=1)' | |
| required: true | |
| default: true | |
| type: boolean | |
| publish_to_pypi: | |
| description: 'Publish to PyPI' | |
| required: true | |
| default: false | |
| type: boolean | |
| schedule: | |
| - cron: '0 21 * * *' | |
| timezone: 'America/Los_Angeles' | |
| jobs: | |
| build-mac-wheel: | |
| name: "Build Python Wheel ${{ matrix.python-version }}" | |
| runs-on: macos-latest | |
| env: | |
| DEV_BUILD: ${{ (github.event_name == 'schedule' || github.event.inputs.is_nightly == 'true') && '1' || '0' }} | |
| PUBLISH_TO_PYPI: ${{ (github.event_name == 'schedule' || github.event.inputs.publish_to_pypi == 'true') && 'true' || 'false' }} | |
| strategy: | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| steps: | |
| - name: Checkout code. | |
| uses: actions/checkout@v4 | |
| with: | |
| lfs: true | |
| - name: Build Python Wheel | |
| run: | | |
| PYTHON_VERSION=${{ matrix.python-version }} | |
| DATE=$(TZ=America/Los_Angeles date +'%Y%m%d') | |
| bazel build --config=macos_arm64 \ | |
| --repo_env=HERMETIC_PYTHON_VERSION=${PYTHON_VERSION} \ | |
| --@rules_python//python/config_settings:python_version=${PYTHON_VERSION} \ | |
| --define=DEV_BUILD=${{ env.DEV_BUILD }} \ | |
| --define=DEV_VERSION=${DATE} \ | |
| -c opt //python/litert_lm:wheel | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Test Python Wheel | |
| run: | | |
| PYTHON_VERSION=${{ matrix.python-version }} | |
| uv venv --python=${PYTHON_VERSION} | |
| # Install the built wheel | |
| WHEEL_PATH=$(find bazel-bin/python/litert_lm -name "*.whl" | head -n 1) | |
| uv pip install $WHEEL_PATH | |
| # Run the verification script | |
| uv run python python/litert_lm/examples/simple_main.py | |
| - name: Publish to PyPI | |
| if: env.PUBLISH_TO_PYPI == 'true' | |
| env: | |
| UV_PUBLISH_TOKEN: ${{ secrets.PYPI_UPLOAD_TOKEN }} | |
| run: | | |
| WHEEL_PATH=$(find bazel-bin/python/litert_lm -name "*.whl" | head -n 1) | |
| uv publish $WHEEL_PATH | |