Files
2026-07-13 13:39:38 +08:00

162 lines
4.6 KiB
YAML

name: Build package
permissions:
contents: read
actions: write
on:
workflow_call:
inputs:
package:
required: true
type: string
artifact_name:
required: true
type: string
workflow_dispatch:
inputs:
package:
description: "Name of the package to build"
required: true
default: "livekit-agents"
artifact_name:
description: "Artifact name for the distribution package"
required: true
default: "build-artifact"
jobs:
build_plugins:
runs-on: ubuntu-latest
if: inputs.package != 'livekit-blockguard' && inputs.package != 'livekit-durable'
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
with:
submodules: true
lfs: true
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: "3.10"
- name: Install uv
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
enable-cache: true
cache-dependency-glob: "uv.lock"
- name: Build package
run: uv build --package ${{inputs.package}}
- name: Upload distribution package
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: ${{ inputs.artifact_name }}
path: dist/
build_durable:
if: inputs.package == 'livekit-durable'
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
archs: x86_64
- os: namespace-profile-default-arm64
archs: aarch64
- os: windows-latest
archs: AMD64
- os: macos-latest
archs: x86_64 arm64
defaults:
run:
working-directory: livekit-plugins/livekit-durable
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: "3.11"
- name: Install cibuildwheel
run: |
python -m pip install --upgrade pip
pip install cibuildwheel
- name: Build wheels
run: cibuildwheel --output-dir dist
env:
CIBW_BUILD_VERBOSITY: 3
CIBW_ARCHS: ${{ matrix.archs }}
- name: Upload distribution package
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: ${{ inputs.artifact_name }}-${{ matrix.os }}
path: livekit-plugins/livekit-durable/dist/
build_blockguard:
if: inputs.package == 'livekit-blockguard'
runs-on: ${{ matrix.os }}
strategy:
matrix:
include:
- os: ubuntu-latest
archs: x86_64
- os: namespace-profile-default-arm64
archs: aarch64
- os: windows-latest
archs: AMD64
- os: macos-latest
archs: x86_64 arm64
defaults:
run:
working-directory: livekit-plugins/livekit-blockguard
steps:
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7
- name: Set up Python
uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6
with:
python-version: "3.11"
- name: Install cibuildwheel
run: |
python -m pip install --upgrade pip
pip install cibuildwheel
- name: Build wheels
run: cibuildwheel --output-dir dist
env:
CIBW_BUILD_VERBOSITY: 3
CIBW_ARCHS: ${{ matrix.archs }}
- name: Upload distribution package
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: ${{ inputs.artifact_name }}-${{ matrix.os }}
path: livekit-plugins/livekit-blockguard/dist/
merge_artifacts:
if: ${{ always() && (inputs.package == 'livekit-blockguard' || inputs.package == 'livekit-durable') }}
runs-on: ubuntu-latest
needs: [build_blockguard, build_durable]
steps:
- name: Download all platform wheels
uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8
with:
pattern: ${{ inputs.artifact_name }}-*
path: all_dists
merge-multiple: true
- run: ls -R all_dists
- name: Upload unified wheel artifact
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7
with:
name: ${{ inputs.artifact_name }}
path: all_dists/