From df98a560c170d2294579906c8316c63736c07e70 Mon Sep 17 00:00:00 2001 From: Attila Szegedi Date: Wed, 4 Mar 2026 18:20:47 +0100 Subject: [PATCH 1/5] Add node-gyp-build-major parameter to support v4 naming convention node-gyp-build v4 changed prebuild naming from: prebuilds/${platform}${libc}-${arch}/node-${abi}.node to a tag-based convention: prebuilds/${platform}-${arch}/${name}[.musl].node.[napi|abi${N}].node Add NODE_GYP_BUILD_MAJOR (default: 3) to prebuild/index.js, exposed as node-gyp-build-major workflow input. When set to 4: - Directory: platform-arch (no libc suffix; glibc is assumed by default) - Filename: name[.musl].node.[napi|abi${N}].node (libc encoded as tag) - Artifact upload uses prebuilds/**/* to match the new directory names Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/build.yml | 6 ++++++ prebuild/action.yml | 8 +++++++ prebuild/index.js | 42 ++++++++++++++++++++++++++++++++----- 3 files changed, 51 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2486ec76..17c227f8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -68,6 +68,11 @@ on: default: 12 required: false type: number + node-gyp-build-major: + description: Major version of node-gyp-build used by the package (3 or 4). Controls the prebuild directory and filename naming convention. + default: 3 + required: false + type: number concurrency: group: ${{ github.workflow }}-${{ github.ref || github.run_id }} @@ -86,6 +91,7 @@ env: GYP: ${{ !inputs.napi && !inputs.napi-rs && !inputs.neon && !inputs.rust }} DIRECTORY_PATH: ${{ inputs.directory-path }} NODE_VERSIONS: '>=${{ inputs.min-node-version }}' + NODE_GYP_BUILD_MAJOR: ${{ inputs.node-gyp-build-major }} jobs: versions: diff --git a/prebuild/action.yml b/prebuild/action.yml index aab9f8a2..913ac998 100644 --- a/prebuild/action.yml +++ b/prebuild/action.yml @@ -54,6 +54,7 @@ runs: -e NODE_VERSIONS="$NODE_VERSIONS" \ -e NODE_HEADERS_DIRECTORY="/usr/node_headers" \ -e LIBC="$LIBC" \ + -e NODE_GYP_BUILD_MAJOR="$NODE_GYP_BUILD_MAJOR" \ -w /usr/action \ $DOCKER_BUILDER \ /bin/bash -c 'yarn && cd /usr/workspace && yarn exec node /usr/action' @@ -64,3 +65,10 @@ runs: name: prebuilds-${{ github.job }} if-no-files-found: ignore path: ${{ env.DIRECTORY_PATH }}/prebuilds/**/${{ env.PREBUILDS_DIR || github.job }}/* + if: ${{ env.NODE_GYP_BUILD_MAJOR != '4' }} + - uses: actions/upload-artifact@v4 + with: + name: prebuilds-${{ github.job }} + if-no-files-found: ignore + path: ${{ env.DIRECTORY_PATH }}/prebuilds/**/* + if: ${{ env.NODE_GYP_BUILD_MAJOR == '4' }} diff --git a/prebuild/index.js b/prebuild/index.js index 65f4b799..b95b6421 100644 --- a/prebuild/index.js +++ b/prebuild/index.js @@ -24,9 +24,41 @@ const { PREBUILD = '', DIRECTORY_PATH = '.', TARGET_NAME = 'addon', - NODE_HEADERS_DIRECTORY = path.join(os.tmpdir(), 'prebuilds') + NODE_HEADERS_DIRECTORY = path.join(os.tmpdir(), 'prebuilds'), + NODE_GYP_BUILD_MAJOR = '3' } = process.env +// Prebuild directory and filename conventions differ between node-gyp-build v3 and v4: +// +// v3: prebuilds/${platform}${libc}-${arch}/node-${abi}.node +// e.g. prebuilds/linuxglibc-arm64/node-115.node +// +// v4: prebuilds/${platform}-${arch}/${TARGET_NAME}[.musl].node.[napi|abi${N}].node +// e.g. prebuilds/linux-arm64/dd_pprof.node.abi115.node +// prebuilds/linux-arm64/dd_pprof.musl.node.napi.node +// +// When NODE_GYP_BUILD_MAJOR=4, libc is encoded as a filename tag ('musl' only; +// glibc is the default and needs no tag) rather than in the directory name. + +function prebuildDir () { + if (NODE_GYP_BUILD_MAJOR === '4') { + return `${DIRECTORY_PATH}/prebuilds/${platform}-${arch}` + } + return `${DIRECTORY_PATH}/prebuilds/${platform}${libc}-${arch}` +} + +function prebuildFilename (abi, baseName) { + if (NODE_GYP_BUILD_MAJOR === '4') { + const libcTag = libc === 'musl' ? '.musl' : '' + const abiTag = abi === 'napi' ? '.napi' : `.abi${abi}` + return `${baseName}${libcTag}.node${abiTag}.node` + } + if (abi === 'napi') { + return `node-napi.node` + } + return `node-${abi}.node` +} + let alpineVersion if (platform === 'linux' && libc === 'musl') { try { @@ -57,7 +89,7 @@ prebuildify() function prebuildify () { fs.mkdirSync(NODE_HEADERS_DIRECTORY, { recursive: true }) - fs.mkdirSync(`${DIRECTORY_PATH}/prebuilds/${platform}${libc}-${arch}`, { recursive: true }) + fs.mkdirSync(prebuildDir(), { recursive: true }) if (PREBUILD) { execSync(PREBUILD, { cwd, stdio, shell }) @@ -124,13 +156,13 @@ function prebuildTarget (arch, target) { const names = fs.readdirSync(`${DIRECTORY_PATH}/build/Release`) for (const name of names) { - const output = `${DIRECTORY_PATH}/prebuilds/${platform}${libc}-${arch}/${name}` - .replace('.node', `-${target.abi}.node`) + const baseName = name.replace(/\.node$/, '') + const output = `${prebuildDir()}/${prebuildFilename(target.abi, baseName)}` fs.copyFileSync(`${DIRECTORY_PATH}/build/Release/${name}`, output) } } else { - const output = `${DIRECTORY_PATH}/prebuilds/${platform}${libc}-${arch}/node-${target.abi}.node` + const output = `${prebuildDir()}/${prebuildFilename(target.abi, TARGET_NAME)}` const input = NAPI_RS === 'true' ? `${DIRECTORY_PATH}/${TARGET_NAME}.node` : `${DIRECTORY_PATH}/build/Release/${TARGET_NAME}.node` From 215e0e05dcf2a3cd70eeb8c936ca94fcf95f0031 Mon Sep 17 00:00:00 2001 From: Attila Szegedi Date: Wed, 4 Mar 2026 18:28:31 +0100 Subject: [PATCH 2/5] Pin action references to support-node-gyp-build-v4 branch SHA Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/build.yml | 40 ++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 17c227f8..0422c7db 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -100,7 +100,7 @@ jobs: versions: ${{ steps.versions.outputs.versions }} steps: - id: versions - uses: DataDog/action-prebuildify/compute-matrix@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + uses: DataDog/action-prebuildify/compute-matrix@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 with: min: ${{ inputs.min-node-version }} @@ -110,7 +110,7 @@ jobs: platforms: ${{ steps.platforms.outputs.platforms }} steps: - id: platforms - uses: DataDog/action-prebuildify/platforms@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + uses: DataDog/action-prebuildify/platforms@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 with: skip: ${{ inputs.skip }} only: ${{ inputs.only }} @@ -127,7 +127,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-arm32v7 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 linuxglibc-arm64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-arm64') }} @@ -141,7 +141,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-arm64v8 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 linuxglibc-ia32: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-ia32') }} @@ -155,7 +155,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-i386 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 linuxglibc-x64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-x64') }} @@ -169,7 +169,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-amd64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 linuxmusl-x64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxmusl-x64') }} @@ -183,7 +183,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-amd64-alpine steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 linuxmusl-arm64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxmusl-arm64') }} @@ -197,7 +197,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-arm64v8-alpine steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 linuxmusl-x64-alpine-3-17: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxmusl-x64') }} @@ -212,7 +212,7 @@ jobs: PREBUILDS_DIR: linuxmusl-x64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b + - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 linuxmusl-arm64-alpine-3-17: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxmusl-arm64') }} @@ -227,7 +227,7 @@ jobs: PREBUILDS_DIR: linuxmusl-arm64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b + - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # TODO: linuxmusl-arm @@ -240,7 +240,7 @@ jobs: ARCH: arm64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 darwin-x64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'darwin-x64') }} @@ -251,7 +251,7 @@ jobs: ARCH: x64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 win32-ia32: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'win32-ia32') }} @@ -262,7 +262,7 @@ jobs: ARCH: ia32 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 win32-x64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'win32-x64') }} @@ -273,7 +273,7 @@ jobs: ARCH: x64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 # Tests @@ -293,7 +293,7 @@ jobs: steps: - run: apk update && apk add bash build-base git python3 curl - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/test@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/test@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 centos-test: if: ${{ !failure() && !cancelled() && contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-x64') }} @@ -336,7 +336,7 @@ jobs: npm install -g yarn@^1.22.22 dirname $(nvm which default) >> $GITHUB_PATH shell: bash - - uses: DataDog/action-prebuildify/test@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/test@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 linux-arm64-test: if: ${{ !failure() && !cancelled() && contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-arm64') }} @@ -351,7 +351,7 @@ jobs: name: linux-arm64-test-${{ matrix.node }} steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/test@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/test@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 with: node: ${{ matrix.node }} @@ -368,7 +368,7 @@ jobs: name: linux-x64-test-${{ matrix.node }} steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/test@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/test@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 with: node: ${{ matrix.node }} @@ -414,7 +414,7 @@ jobs: if: ${{ matrix.node <= '14' }} ######################################################################### - - uses: DataDog/action-prebuildify/test@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/test@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 with: node: ${{ matrix.node }} @@ -435,7 +435,7 @@ jobs: with: node-version: ${{ matrix.node }} cache: ${{ (env.CACHE == 'true') && env.PACKAGE_MANAGER || '' }} - - uses: DataDog/action-prebuildify/test@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main + - uses: DataDog/action-prebuildify/test@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 with: node: ${{ matrix.node }} From 7b0dceda99f3561a0022bde2af682e12d9941fd1 Mon Sep 17 00:00:00 2001 From: Attila Szegedi Date: Wed, 4 Mar 2026 21:22:11 +0100 Subject: [PATCH 3/5] Fix lint: use single quotes Co-Authored-By: Claude Sonnet 4.6 --- prebuild/index.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/prebuild/index.js b/prebuild/index.js index b95b6421..7ee16237 100644 --- a/prebuild/index.js +++ b/prebuild/index.js @@ -54,7 +54,7 @@ function prebuildFilename (abi, baseName) { return `${baseName}${libcTag}.node${abiTag}.node` } if (abi === 'napi') { - return `node-napi.node` + return 'node-napi.node' } return `node-${abi}.node` } From 879cd782bd1f3ce9ac10f159aa0009860ecb1cb4 Mon Sep 17 00:00:00 2001 From: Attila Szegedi Date: Wed, 4 Mar 2026 21:22:48 +0100 Subject: [PATCH 4/5] Pin action references to updated branch SHA Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/build.yml | 40 ++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 0422c7db..410ff93a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -100,7 +100,7 @@ jobs: versions: ${{ steps.versions.outputs.versions }} steps: - id: versions - uses: DataDog/action-prebuildify/compute-matrix@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + uses: DataDog/action-prebuildify/compute-matrix@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 with: min: ${{ inputs.min-node-version }} @@ -110,7 +110,7 @@ jobs: platforms: ${{ steps.platforms.outputs.platforms }} steps: - id: platforms - uses: DataDog/action-prebuildify/platforms@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + uses: DataDog/action-prebuildify/platforms@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 with: skip: ${{ inputs.skip }} only: ${{ inputs.only }} @@ -127,7 +127,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-arm32v7 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 linuxglibc-arm64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-arm64') }} @@ -141,7 +141,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-arm64v8 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 linuxglibc-ia32: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-ia32') }} @@ -155,7 +155,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-i386 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 linuxglibc-x64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-x64') }} @@ -169,7 +169,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-amd64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 linuxmusl-x64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxmusl-x64') }} @@ -183,7 +183,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-amd64-alpine steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 linuxmusl-arm64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxmusl-arm64') }} @@ -197,7 +197,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-arm64v8-alpine steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 linuxmusl-x64-alpine-3-17: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxmusl-x64') }} @@ -212,7 +212,7 @@ jobs: PREBUILDS_DIR: linuxmusl-x64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 + - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 linuxmusl-arm64-alpine-3-17: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxmusl-arm64') }} @@ -227,7 +227,7 @@ jobs: PREBUILDS_DIR: linuxmusl-arm64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 + - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # TODO: linuxmusl-arm @@ -240,7 +240,7 @@ jobs: ARCH: arm64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 darwin-x64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'darwin-x64') }} @@ -251,7 +251,7 @@ jobs: ARCH: x64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 win32-ia32: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'win32-ia32') }} @@ -262,7 +262,7 @@ jobs: ARCH: ia32 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 win32-x64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'win32-x64') }} @@ -273,7 +273,7 @@ jobs: ARCH: x64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 # Tests @@ -293,7 +293,7 @@ jobs: steps: - run: apk update && apk add bash build-base git python3 curl - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/test@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/test@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 centos-test: if: ${{ !failure() && !cancelled() && contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-x64') }} @@ -336,7 +336,7 @@ jobs: npm install -g yarn@^1.22.22 dirname $(nvm which default) >> $GITHUB_PATH shell: bash - - uses: DataDog/action-prebuildify/test@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/test@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 linux-arm64-test: if: ${{ !failure() && !cancelled() && contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-arm64') }} @@ -351,7 +351,7 @@ jobs: name: linux-arm64-test-${{ matrix.node }} steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/test@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/test@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 with: node: ${{ matrix.node }} @@ -368,7 +368,7 @@ jobs: name: linux-x64-test-${{ matrix.node }} steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/test@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/test@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 with: node: ${{ matrix.node }} @@ -414,7 +414,7 @@ jobs: if: ${{ matrix.node <= '14' }} ######################################################################### - - uses: DataDog/action-prebuildify/test@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/test@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 with: node: ${{ matrix.node }} @@ -435,7 +435,7 @@ jobs: with: node-version: ${{ matrix.node }} cache: ${{ (env.CACHE == 'true') && env.PACKAGE_MANAGER || '' }} - - uses: DataDog/action-prebuildify/test@df98a560c170d2294579906c8316c63736c07e70 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/test@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 with: node: ${{ matrix.node }} From ccf7db63a0a40b8926bc4114b451dfac2709ebf8 Mon Sep 17 00:00:00 2001 From: Attila Szegedi Date: Wed, 4 Mar 2026 22:41:12 +0100 Subject: [PATCH 5/5] Restore action SHA pins to main Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/build.yml | 40 ++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 410ff93a..17c227f8 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -100,7 +100,7 @@ jobs: versions: ${{ steps.versions.outputs.versions }} steps: - id: versions - uses: DataDog/action-prebuildify/compute-matrix@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + uses: DataDog/action-prebuildify/compute-matrix@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main with: min: ${{ inputs.min-node-version }} @@ -110,7 +110,7 @@ jobs: platforms: ${{ steps.platforms.outputs.platforms }} steps: - id: platforms - uses: DataDog/action-prebuildify/platforms@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + uses: DataDog/action-prebuildify/platforms@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main with: skip: ${{ inputs.skip }} only: ${{ inputs.only }} @@ -127,7 +127,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-arm32v7 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main linuxglibc-arm64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-arm64') }} @@ -141,7 +141,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-arm64v8 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main linuxglibc-ia32: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-ia32') }} @@ -155,7 +155,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-i386 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main linuxglibc-x64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-x64') }} @@ -169,7 +169,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-amd64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main linuxmusl-x64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxmusl-x64') }} @@ -183,7 +183,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-amd64-alpine steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main linuxmusl-arm64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxmusl-arm64') }} @@ -197,7 +197,7 @@ jobs: DOCKER_BUILDER: rochdev/holy-node-box:12-arm64v8-alpine steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main linuxmusl-x64-alpine-3-17: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxmusl-x64') }} @@ -212,7 +212,7 @@ jobs: PREBUILDS_DIR: linuxmusl-x64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 + - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b linuxmusl-arm64-alpine-3-17: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'linuxmusl-arm64') }} @@ -227,7 +227,7 @@ jobs: PREBUILDS_DIR: linuxmusl-arm64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 + - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # TODO: linuxmusl-arm @@ -240,7 +240,7 @@ jobs: ARCH: arm64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main darwin-x64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'darwin-x64') }} @@ -251,7 +251,7 @@ jobs: ARCH: x64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main win32-ia32: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'win32-ia32') }} @@ -262,7 +262,7 @@ jobs: ARCH: ia32 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main win32-x64: if: ${{ contains(fromJson(needs.platforms.outputs.platforms), 'win32-x64') }} @@ -273,7 +273,7 @@ jobs: ARCH: x64 steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/prebuild@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/prebuild@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main # Tests @@ -293,7 +293,7 @@ jobs: steps: - run: apk update && apk add bash build-base git python3 curl - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/test@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/test@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main centos-test: if: ${{ !failure() && !cancelled() && contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-x64') }} @@ -336,7 +336,7 @@ jobs: npm install -g yarn@^1.22.22 dirname $(nvm which default) >> $GITHUB_PATH shell: bash - - uses: DataDog/action-prebuildify/test@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/test@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main linux-arm64-test: if: ${{ !failure() && !cancelled() && contains(fromJson(needs.platforms.outputs.platforms), 'linuxglibc-arm64') }} @@ -351,7 +351,7 @@ jobs: name: linux-arm64-test-${{ matrix.node }} steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/test@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/test@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main with: node: ${{ matrix.node }} @@ -368,7 +368,7 @@ jobs: name: linux-x64-test-${{ matrix.node }} steps: - uses: actions/checkout@08eba0b27e820071cde6df949e0beb9ba4906955 # v4.3.0 - - uses: DataDog/action-prebuildify/test@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/test@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main with: node: ${{ matrix.node }} @@ -414,7 +414,7 @@ jobs: if: ${{ matrix.node <= '14' }} ######################################################################### - - uses: DataDog/action-prebuildify/test@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/test@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main with: node: ${{ matrix.node }} @@ -435,7 +435,7 @@ jobs: with: node-version: ${{ matrix.node }} cache: ${{ (env.CACHE == 'true') && env.PACKAGE_MANAGER || '' }} - - uses: DataDog/action-prebuildify/test@7b0dceda99f3561a0022bde2af682e12d9941fd1 # support-node-gyp-build-v4 + - uses: DataDog/action-prebuildify/test@f428f5dd7e18628365f5384edfb1d9c93b4e226b # main with: node: ${{ matrix.node }}