Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 36 additions & 6 deletions .github/workflows/builds.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,20 @@ jobs:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
name: linux-x64
- os: ubuntu-22.04
name: ubuntu-22.04-x64
build_cmd: ./build.sh release-examples
build_dir: build-release
- os: ubuntu-22.04-arm
name: ubuntu-22.04-arm64
build_cmd: ./build.sh release-examples
build_dir: build-release
- os: ubuntu-24.04
name: ubuntu-24.04-x64
build_cmd: ./build.sh release-examples
build_dir: build-release
- os: ubuntu-24.04-arm
name: linux-arm64
name: ubuntu-24.04-arm64
build_cmd: ./build.sh release-examples
build_dir: build-release
- os: macos-26-xlarge
Expand Down Expand Up @@ -166,9 +174,9 @@ jobs:
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: client-sdk-rust/target/
key: ${{ runner.os }}-${{ matrix.name }}-cargo-target-${{ steps.rust_sha.outputs.sha }}
key: ${{ matrix.os }}-${{ matrix.name }}-cargo-target-${{ steps.rust_sha.outputs.sha }}
restore-keys: |
${{ runner.os }}-${{ matrix.name }}-cargo-target-
${{ matrix.os }}-${{ matrix.name }}-cargo-target-

# restore-keys can hydrate target/ from a prior submodule SHA. cxxbridge
# artifacts in webrtc-sys are not compatible across those bumps.
Expand Down Expand Up @@ -208,7 +216,7 @@ jobs:
uses: actions/cache/save@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: client-sdk-rust/target/
key: ${{ runner.os }}-${{ matrix.name }}-cargo-target-${{ steps.rust_sha.outputs.sha }}
key: ${{ matrix.os }}-${{ matrix.name }}-cargo-target-${{ steps.rust_sha.outputs.sha }}

- name: Save vcpkg binary cache
if: runner.os == 'Windows' && steps.cache-vcpkg-binary.outputs.cache-hit != 'true'
Expand Down Expand Up @@ -328,6 +336,28 @@ jobs:
${{ matrix.build_dir }}/bin/
retention-days: 7

- name: Upload deprecated linux-x64 alias artifact
if: matrix.name == 'ubuntu-24.04-x64'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: livekit-sdk-linux-x64
path: |
${{ matrix.build_dir }}/lib/
${{ matrix.build_dir }}/include/
${{ matrix.build_dir }}/bin/
retention-days: 7

- name: Upload deprecated linux-arm64 alias artifact
if: matrix.name == 'ubuntu-24.04-arm64'
uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: livekit-sdk-linux-arm64
path: |
${{ matrix.build_dir }}/lib/
${{ matrix.build_dir }}/include/
${{ matrix.build_dir }}/bin/
retention-days: 7

# ---------- Cleanup ----------
- name: Clean after build (best-effort)
if: always()
Expand Down
37 changes: 30 additions & 7 deletions .github/workflows/make-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -24,11 +24,17 @@ jobs:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
name: linux-x64
- os: ubuntu-22.04
name: ubuntu-22.04-x64
generator: Ninja
- os: ubuntu-22.04-arm
name: ubuntu-22.04-arm64
generator: Ninja
- os: ubuntu-24.04
name: ubuntu-24.04-x64
generator: Ninja
- os: ubuntu-24.04-arm
name: linux-arm64
name: ubuntu-24.04-arm64
generator: Ninja
- os: macos-26-xlarge
name: macos-arm64
Expand Down Expand Up @@ -157,14 +163,16 @@ jobs:
restore-keys: |
${{ runner.os }}-${{ matrix.name }}-cargo-registry-

# Compiled target/ artifacts are glibc-bound and must not restore across
# Ubuntu major versions (e.g. 24.04 → 22.04 → GLIBC_2.39 not found).
- name: Cache cargo target
id: cache-cargo-target
uses: actions/cache@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: client-sdk-rust/target/
key: ${{ runner.os }}-${{ matrix.name }}-cargo-target-${{ steps.rust_sha.outputs.sha }}
key: ${{ matrix.os }}-${{ matrix.name }}-cargo-target-${{ steps.rust_sha.outputs.sha }}
restore-keys: |
${{ runner.os }}-${{ matrix.name }}-cargo-target-
${{ matrix.os }}-${{ matrix.name }}-cargo-target-

# restore-keys can hydrate target/ from a prior submodule SHA. cxxbridge
# artifacts in webrtc-sys are not compatible across those bumps.
Expand Down Expand Up @@ -413,15 +421,30 @@ jobs:
echo "Artifacts downloaded:"
ls -la

# Create tar.gz for Linux and macOS
for platform in linux-x64 linux-arm64 macos-arm64 macos-x64; do
# Create tar.gz for Ubuntu and macOS
for platform in ubuntu-22.04-x64 ubuntu-22.04-arm64 ubuntu-24.04-x64 ubuntu-24.04-arm64 macos-arm64 macos-x64; do
dirName="livekit-sdk-${platform}-${VERSION}"
if [[ -d "${dirName}" ]]; then
echo "Creating archive for ${platform}..."
tar -czf "${{ github.workspace }}/release-assets/${dirName}.tar.gz" "${dirName}"
echo "Created: ${dirName}.tar.gz"
fi
done

# Deprecated compatibility aliases for existing Linux release consumers.

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

nice!

# Repack the Ubuntu 24.04 artifacts so their extracted directory
# retains the legacy Linux name.
for pair in "ubuntu-24.04-x64:linux-x64" "ubuntu-24.04-arm64:linux-arm64"; do
src="livekit-sdk-${pair%%:*}-${VERSION}"
dst="livekit-sdk-${pair#*:}-${VERSION}"
if [[ -d "${src}" ]]; then
cp -R "${src}" "${dst}"
tar -czf "${{ github.workspace }}/release-assets/${dst}.tar.gz" "${dst}"
echo "Created compatibility archive: ${dst}.tar.gz"
else
echo "WARNING: Skipping compatibility archive; ${src} was not downloaded."
fi
done

# Create zip for Windows
dirName="livekit-sdk-windows-x64-${VERSION}"
Expand Down
18 changes: 13 additions & 5 deletions .github/workflows/tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -139,11 +139,17 @@ jobs:
fail-fast: false
matrix:
include:
- os: ubuntu-latest
name: linux-x64
- os: ubuntu-22.04
name: ubuntu-22.04-x64
e2e-testing: true
- os: ubuntu-22.04-arm
name: ubuntu-22.04-arm64
e2e-testing: true
- os: ubuntu-24.04
name: ubuntu-24.04-x64
e2e-testing: true
- os: ubuntu-24.04-arm
name: linux-arm64
name: ubuntu-24.04-arm64
e2e-testing: true
- os: macos-26-xlarge
name: macos-arm64
Expand Down Expand Up @@ -261,14 +267,16 @@ jobs:
restore-keys: |
${{ runner.os }}-${{ matrix.name }}-cargo-registry-

# Compiled target/ artifacts are glibc-bound and must not restore across
# Ubuntu major versions (e.g. 24.04 → 22.04 → GLIBC_2.39 not found).
- name: Restore cargo target
id: cache-cargo-target
uses: actions/cache/restore@55cc8345863c7cc4c66a329aec7e433d2d1c52a9 # v6.1.0
with:
path: client-sdk-rust/target/
key: ${{ runner.os }}-${{ matrix.name }}-cargo-target-${{ steps.rust_sha.outputs.sha }}
key: ${{ matrix.os }}-${{ matrix.name }}-cargo-target-${{ steps.rust_sha.outputs.sha }}
restore-keys: |
${{ runner.os }}-${{ matrix.name }}-cargo-target-
${{ matrix.os }}-${{ matrix.name }}-cargo-target-

# restore-keys can hydrate target/ from a prior submodule SHA. cxxbridge
# artifacts in webrtc-sys are not compatible across those bumps.
Expand Down
Loading