-
Notifications
You must be signed in to change notification settings - Fork 35
Build explicit Ubuntu versions, add Ubuntu 22.04 support #229
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
04902d4
d155e21
f3dc340
e209a09
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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 | ||
|
|
@@ -157,14 +163,17 @@ jobs: | |
| restore-keys: | | ||
| ${{ runner.os }}-${{ matrix.name }}-cargo-registry- | ||
|
|
||
| # Key on matrix.os (runner image), not runner.os — see builds.yml. | ||
| # 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. | ||
|
|
@@ -413,15 +422,21 @@ 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. | ||
| cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-x64-${VERSION}.tar.gz" \ | ||
| "${{ github.workspace }}/release-assets/livekit-sdk-linux-x64-${VERSION}.tar.gz" | ||
| cp "${{ github.workspace }}/release-assets/livekit-sdk-ubuntu-24.04-arm64-${VERSION}.tar.gz" \ | ||
| "${{ github.workspace }}/release-assets/livekit-sdk-linux-arm64-${VERSION}.tar.gz" | ||
|
Comment on lines
+435
to
+439
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🟡 Release publishing aborts if an Ubuntu 24.04 build archive is missing The compatibility Linux downloads are created without first checking that the Ubuntu 24.04 archives exist ( Unguarded cp under `set -e` semanticsEvery other archive creation in this step is guarded by Was this helpful? React with 👍 or 👎 to provide feedback. |
||
|
|
||
| # Create zip for Windows | ||
| dirName="livekit-sdk-windows-x64-${VERSION}" | ||
|
|
@@ -441,6 +456,17 @@ jobs: | |
| name: v${{ steps.version.outputs.version }} | ||
| draft: true | ||
| files: ${{ github.workspace }}/release-assets/* | ||
| body: | | ||
| ## Linux assets | ||
|
|
||
| Prefer the explicit Ubuntu assets: | ||
|
|
||
| - `livekit-sdk-ubuntu-22.04-x64` | ||
| - `livekit-sdk-ubuntu-22.04-arm64` | ||
| - `livekit-sdk-ubuntu-24.04-x64` | ||
| - `livekit-sdk-ubuntu-24.04-arm64` | ||
|
|
||
| `livekit-sdk-linux-x64` and `livekit-sdk-linux-arm64` are deprecated aliases of the Ubuntu 24.04 builds and will be removed in a future release. | ||
| generate_release_notes: false | ||
| env: | ||
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
🔴 Compatibility Linux download unpacks into a differently named folder than before
The compatibility Linux download is produced by copying the Ubuntu 24.04 archive file (
cpat.github/workflows/make-release.yml:436-439) instead of repacking it, so anyone who unzips it now gets a folder with an unexpected name and their scripts stop finding the files.Impact: Existing automation that downloads the Linux release and expects the old folder name breaks silently on the next release, defeating the purpose of the compatibility alias.
Archive top-level directory name mismatch in alias creation
Previously the loop created
livekit-sdk-linux-x64-${VERSION}.tar.gzby runningtar -czf ... livekit-sdk-linux-x64-${VERSION}, so the archive's single top-level entry waslivekit-sdk-linux-x64-${VERSION}/.Now the alias is a byte-for-byte copy of
livekit-sdk-ubuntu-24.04-x64-${VERSION}.tar.gz, whose top-level entry islivekit-sdk-ubuntu-24.04-x64-${VERSION}/. Only the file name matches the old convention; the extracted directory does not. Same for the arm64 alias.A fix is to create the alias by tarring the downloaded artifact directory under the legacy name, e.g. copying/renaming
artifacts/livekit-sdk-ubuntu-24.04-x64-${VERSION}tolivekit-sdk-linux-x64-${VERSION}before tarring, or usingtar --transformto rewrite the leading path component.Was this helpful? React with 👍 or 👎 to provide feedback.