Skip to content

Commit f08f886

Browse files
committed
ci: add glibc 2.41 prebuilds for Debian 13/Raspberry Pi OS
Adds a new build_glibc_241 job that uses Debian Trixie containers to produce prebuilt binaries for systems with glibc 2.41+. This enables @discordjs/opus to work out-of-the-box on: - Debian 13 (Trixie) - Raspberry Pi OS Trixie - Future Ubuntu releases with glibc 2.41+ The job builds for both x64 and arm64 architectures across Node.js versions 20, 22, 24, and 25.
1 parent 3f4a3d4 commit f08f886

File tree

2 files changed

+103
-0
lines changed

2 files changed

+103
-0
lines changed

.github/workflows/build.yml

Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,3 +76,42 @@ jobs:
7676

7777
- name: Stop container
7878
run: docker rm -f runner
79+
80+
build_glibc_241:
81+
name: Build node ${{ matrix.node }} on ${{ matrix.arch }} (glibc 2.41)
82+
runs-on: ${{ matrix.os }}
83+
strategy:
84+
fail-fast: false
85+
matrix:
86+
include:
87+
- os: ubuntu-latest
88+
arch: x64
89+
node: 22
90+
- os: ubuntu-24.04-arm
91+
arch: arm64
92+
node: 22
93+
steps:
94+
- name: Checkout repository
95+
uses: actions/checkout@v6
96+
with:
97+
submodules: true
98+
99+
- name: Setup container
100+
run: |
101+
docker run --name runner --rm -it -d -v $PWD:/node-opus -w /node-opus debian:trixie
102+
103+
- name: Setup env with Node v${{ matrix.node }}
104+
run: |
105+
docker exec runner apt-get update
106+
docker exec runner apt-get install -y curl build-essential python3 git ca-certificates
107+
docker exec runner bash -c "curl -fsSL https://deb.nodesource.com/setup_${{ matrix.node }}.x | bash -"
108+
docker exec runner apt-get install -y nodejs
109+
110+
- name: Install dependencies
111+
run: docker exec runner npm install --build-from-source
112+
113+
- name: Package prebuild
114+
run: docker exec runner npm run build
115+
116+
- name: Stop container
117+
run: docker rm -f runner

.github/workflows/release.yml

Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,70 @@ jobs:
4545
with:
4646
path: 'build/stage/**/*.tar.gz'
4747

48+
build_glibc_241:
49+
name: Prebuild node ${{ matrix.node }} on ${{ matrix.arch }} (glibc 2.41)
50+
runs-on: ${{ matrix.os }}
51+
strategy:
52+
fail-fast: false
53+
matrix:
54+
include:
55+
- os: ubuntu-latest
56+
arch: x64
57+
node: 20
58+
- os: ubuntu-latest
59+
arch: x64
60+
node: 22
61+
- os: ubuntu-latest
62+
arch: x64
63+
node: 24
64+
- os: ubuntu-latest
65+
arch: x64
66+
node: 25
67+
- os: ubuntu-24.04-arm
68+
arch: arm64
69+
node: 20
70+
- os: ubuntu-24.04-arm
71+
arch: arm64
72+
node: 22
73+
- os: ubuntu-24.04-arm
74+
arch: arm64
75+
node: 24
76+
- os: ubuntu-24.04-arm
77+
arch: arm64
78+
node: 25
79+
steps:
80+
- name: Checkout repository
81+
uses: actions/checkout@v6
82+
with:
83+
submodules: true
84+
85+
- name: Setup container
86+
run: |
87+
docker run --name runner --rm -it -d -v $PWD:/node-opus -w /node-opus debian:trixie
88+
89+
- name: Setup env with Node v${{ matrix.node }}
90+
run: |
91+
docker exec runner apt-get update
92+
docker exec runner apt-get install -y curl build-essential python3 git ca-certificates
93+
docker exec runner bash -c "curl -fsSL https://deb.nodesource.com/setup_${{ matrix.node }}.x | bash -"
94+
docker exec runner apt-get install -y nodejs
95+
96+
- name: Install dependencies
97+
run: docker exec runner npm install --build-from-source
98+
99+
- name: Package prebuild
100+
run: docker exec runner npm run build
101+
102+
- name: Stop container
103+
run: docker rm -f runner
104+
105+
- name: Upload prebuild asset
106+
uses: icrawl/action-artifact@v2
107+
env:
108+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
109+
with:
110+
path: 'build/stage/**/*.tar.gz'
111+
48112
build_musl:
49113
name: Prebuild node ${{ matrix.node }} on ${{ matrix.os }} (musl)
50114
runs-on: ${{ matrix.os }}

0 commit comments

Comments
 (0)