162 lines
4.6 KiB
YAML
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/
|