diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6b292f8b..f8a7e264 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -76,3 +76,42 @@ jobs: - name: Stop container run: docker rm -f runner + + build_glibc_241: + name: Build node ${{ matrix.node }} on ${{ matrix.arch }} (glibc 2.41) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + arch: x64 + node: 22 + - os: ubuntu-24.04-arm + arch: arm64 + node: 22 + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + submodules: true + + - name: Setup container + run: | + docker run --name runner --rm -it -d -v $PWD:/node-opus -w /node-opus debian:trixie + + - name: Setup env with Node v${{ matrix.node }} + run: | + docker exec runner apt-get update + docker exec runner apt-get install -y curl build-essential python3 git ca-certificates + docker exec runner bash -c "curl -fsSL https://deb.nodesource.com/setup_${{ matrix.node }}.x | bash -" + docker exec runner apt-get install -y nodejs + + - name: Install dependencies + run: docker exec runner npm install --build-from-source + + - name: Package prebuild + run: docker exec runner npm run build + + - name: Stop container + run: docker rm -f runner diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 658eeac6..3504fedc 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -45,6 +45,70 @@ jobs: with: path: 'build/stage/**/*.tar.gz' + build_glibc_241: + name: Prebuild node ${{ matrix.node }} on ${{ matrix.arch }} (glibc 2.41) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + include: + - os: ubuntu-latest + arch: x64 + node: 20 + - os: ubuntu-latest + arch: x64 + node: 22 + - os: ubuntu-latest + arch: x64 + node: 24 + - os: ubuntu-latest + arch: x64 + node: 25 + - os: ubuntu-24.04-arm + arch: arm64 + node: 20 + - os: ubuntu-24.04-arm + arch: arm64 + node: 22 + - os: ubuntu-24.04-arm + arch: arm64 + node: 24 + - os: ubuntu-24.04-arm + arch: arm64 + node: 25 + steps: + - name: Checkout repository + uses: actions/checkout@v6 + with: + submodules: true + + - name: Setup container + run: | + docker run --name runner --rm -it -d -v $PWD:/node-opus -w /node-opus debian:trixie + + - name: Setup env with Node v${{ matrix.node }} + run: | + docker exec runner apt-get update + docker exec runner apt-get install -y curl build-essential python3 git ca-certificates + docker exec runner bash -c "curl -fsSL https://deb.nodesource.com/setup_${{ matrix.node }}.x | bash -" + docker exec runner apt-get install -y nodejs + + - name: Install dependencies + run: docker exec runner npm install --build-from-source + + - name: Package prebuild + run: docker exec runner npm run build + + - name: Stop container + run: docker rm -f runner + + - name: Upload prebuild asset + uses: icrawl/action-artifact@v2 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + path: 'build/stage/**/*.tar.gz' + build_musl: name: Prebuild node ${{ matrix.node }} on ${{ matrix.os }} (musl) runs-on: ${{ matrix.os }}