From 209f2b72bb3bc1e79c50d06e9acb187bf2990036 Mon Sep 17 00:00:00 2001 From: Tianning Li Date: Mon, 30 Mar 2026 16:24:19 -0400 Subject: [PATCH] feat: add win32-ia32 and darwin-arm64 (macOS Apple Silicon) npm packages MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Add two new platform targets to the datadog-serverless-compat CI pipeline: - win32-ia32: 32-bit Windows build via native windows-2022 runner (i686-pc-windows-msvc, UPX-compressed) - darwin-arm64: macOS Apple Silicon build via native macos-14 runner (aarch64-apple-darwin, no UPX — preserves Mach-O code signing) Each platform adds a build step to build-datadog-serverless-compat.yml, artifact download/processing in the package job, and an npm publish line in the publish job of publish.yml. Co-Authored-By: Claude Sonnet 4.6 --- .../build-datadog-serverless-compat.yml | 22 ++++++++++++++++ .github/workflows/publish.yml | 25 ++++++++++++++++++- .../package.json | 25 +++++++++++++++++++ .../package.json | 22 ++++++++++++++++ 4 files changed, 93 insertions(+), 1 deletion(-) create mode 100644 npm/datadog-serverless-compat-darwin-arm64/package.json create mode 100644 npm/datadog-serverless-compat-win32-ia32/package.json diff --git a/.github/workflows/build-datadog-serverless-compat.yml b/.github/workflows/build-datadog-serverless-compat.yml index 0c72908..8c88500 100644 --- a/.github/workflows/build-datadog-serverless-compat.yml +++ b/.github/workflows/build-datadog-serverless-compat.yml @@ -63,3 +63,25 @@ jobs: name: windows-amd64 path: target/release/datadog-serverless-compat.exe retention-days: 3 + - if: ${{ inputs.runner == 'windows-2022' }} + shell: bash + run: | + rustup target add i686-pc-windows-msvc + cargo build --release -p datadog-serverless-compat \ + --target i686-pc-windows-msvc \ + --features windows-pipes + - if: ${{ inputs.runner == 'windows-2022' }} + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # 4.6.2 + with: + name: windows-ia32 + path: target/i686-pc-windows-msvc/release/datadog-serverless-compat.exe + retention-days: 3 + - if: ${{ inputs.runner == 'macos-14' }} + shell: bash + run: cargo build --release -p datadog-serverless-compat + - if: ${{ inputs.runner == 'macos-14' }} + uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # 4.6.2 + with: + name: darwin-arm64 + path: target/release/datadog-serverless-compat + retention-days: 3 diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 1d37e4d..4dcc42b 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -24,7 +24,7 @@ jobs: strategy: fail-fast: false matrix: - runner: [ubuntu-24.04, ubuntu-24.04-arm, windows-2022] + runner: [ubuntu-24.04, ubuntu-24.04-arm, windows-2022, macos-14] uses: ./.github/workflows/build-datadog-serverless-compat.yml with: runner: ${{ matrix.runner }} @@ -56,6 +56,16 @@ jobs: name: windows-amd64 path: target/windows-amd64 - run: upx target/windows-amd64/datadog-serverless-compat.exe --lzma + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # 4.3.0 + with: + name: windows-ia32 + path: target/windows-ia32 + - run: upx target/windows-ia32/datadog-serverless-compat.exe --lzma + - uses: actions/download-artifact@d3f86a106a0bac45b974a628896c90dbdf5c8093 # 4.3.0 + with: + name: darwin-arm64 + path: target/darwin-arm64 + - run: chmod +x target/darwin-arm64/datadog-serverless-compat - name: Determine version id: determine-version env: @@ -85,6 +95,14 @@ jobs: mkdir -p npm/datadog-serverless-compat-win32-x64/bin cp target/windows-amd64/datadog-serverless-compat.exe npm/datadog-serverless-compat-win32-x64/bin/ npm --prefix npm/datadog-serverless-compat-win32-x64 pkg set version="$VERSION" + + mkdir -p npm/datadog-serverless-compat-win32-ia32/bin + cp target/windows-ia32/datadog-serverless-compat.exe npm/datadog-serverless-compat-win32-ia32/bin/ + npm --prefix npm/datadog-serverless-compat-win32-ia32 pkg set version="$VERSION" + + mkdir -p npm/datadog-serverless-compat-darwin-arm64/bin + cp target/darwin-arm64/datadog-serverless-compat npm/datadog-serverless-compat-darwin-arm64/bin/ + npm --prefix npm/datadog-serverless-compat-darwin-arm64 pkg set version="$VERSION" - uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # 4.6.2 with: name: npm-packages @@ -105,8 +123,13 @@ jobs: with: node-version: "22.x" registry-url: 'https://registry.npmjs.org' + - run: npm config set //registry.npmjs.org/:_authToken=$NPM_PUBLISH_TOKEN + env: + NPM_PUBLISH_TOKEN: ${{ secrets.NPM_PUBLISH_TOKEN }} - name: Publish npm packages run: | npm publish ./npm/datadog-serverless-compat-linux-x64 --provenance --access public npm publish ./npm/datadog-serverless-compat-linux-arm64 --provenance --access public npm publish ./npm/datadog-serverless-compat-win32-x64 --provenance --access public + npm publish ./npm/datadog-serverless-compat-win32-ia32 --provenance --access public + npm publish ./npm/datadog-serverless-compat-darwin-arm64 --provenance --access public diff --git a/npm/datadog-serverless-compat-darwin-arm64/package.json b/npm/datadog-serverless-compat-darwin-arm64/package.json new file mode 100644 index 0000000..b4211e1 --- /dev/null +++ b/npm/datadog-serverless-compat-darwin-arm64/package.json @@ -0,0 +1,25 @@ +{ + "name": "@datadog/serverless-compat-darwin-arm64", + "version": "0.0.0", + "description": "macOS arm64 binary for the Datadog Serverless Compatibility Layer", + "os": [ + "darwin" + ], + "cpu": [ + "arm64" + ], + "files": [ + "bin/" + ], + "publishConfig": { + "access": "public", + "executableFiles": [ + "./bin/datadog-serverless-compat" + ] + }, + "license": "Apache-2.0", + "repository": { + "type": "git", + "url": "https://github.com/DataDog/serverless-components" + } +} diff --git a/npm/datadog-serverless-compat-win32-ia32/package.json b/npm/datadog-serverless-compat-win32-ia32/package.json new file mode 100644 index 0000000..7744c7b --- /dev/null +++ b/npm/datadog-serverless-compat-win32-ia32/package.json @@ -0,0 +1,22 @@ +{ + "name": "@datadog/serverless-compat-win32-ia32", + "version": "0.0.0", + "description": "Windows ia32 binary for the Datadog Serverless Compatibility Layer", + "os": [ + "win32" + ], + "cpu": [ + "ia32" + ], + "files": [ + "bin/" + ], + "publishConfig": { + "access": "public" + }, + "license": "Apache-2.0", + "repository": { + "type": "git", + "url": "https://github.com/DataDog/serverless-components" + } +}