diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index 697163b712a288..0293af5de48b32 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -6,6 +6,8 @@ on: workflows: [Build Node] types: - completed + pull_request: + paths: .github/workflows/build-node-fibers.yml jobs: build-fibers: diff --git a/.github/workflows/build-node-packages.yml b/.github/workflows/build-node-packages.yml new file mode 100644 index 00000000000000..f1b212efcdc04d --- /dev/null +++ b/.github/workflows/build-node-packages.yml @@ -0,0 +1,91 @@ +name: Build node-packages with prebuilt Node + +on: + workflow_dispatch: + workflow_run: + workflows: [Build Node] + types: + - completed + pull_request: + paths: .github/workflows/build-node-packages.yml + +jobs: + build-packages: + strategy: + matrix: + include: + - platform: linux + arch: x64 + runs_on: ubuntu-22.04 + - platform: linux + arch: arm64 + runs_on: ubuntu-22.04-arm + runs-on: ${{ matrix.runs_on }} + + env: + NODE_VERSION: v20.18.3 + + steps: + - name: Debug Matrix Values + run: | + echo "Matrix platform: ${{ matrix.platform }}" + echo "Matrix arch: ${{ matrix.arch }}" + + - name: Download Node archive + run: | + gh release download node-${{ env.NODE_VERSION }}-release \ + --repo asana/node \ + --pattern "node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz" + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Extract Node archive + run: | + mkdir -p node-install + tar -C node-install -xJf node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz + echo "$GITHUB_WORKSPACE/node-install/usr/local/bin" >> $GITHUB_PATH + + - name: Verify Node Binary Architecture + run: | + echo "Node File:" + file $GITHUB_WORKSPACE/node-install/usr/local/bin/node + echo "Runner architecture:" + uname -m + which node + node -v + node -p "process.arch" + ls + + - name: Build node-packages bcrypt + run: | + npm i --nodedir="$GITHUB_WORKSPACE/node-install/usr/local" bcrypt@5.1.0 + mkdir bcrypt@5.1.0 + mkdir bcrypt@5.1.0/node_modules + + - name: Build node-packages cld + run: | + npm i --nodedir="$GITHUB_WORKSPACE/node-install/usr/local" cld@2.9.1 + mkdir cld@2.9.1 + mkdir cld@2.9.1/node_modules + + - name: Build node-packages unix-dgram + run: | + npm i --nodedir="$GITHUB_WORKSPACE/node-install/usr/local" unix-dgram@2.0.6 + mkdir unix-dgram@2.0.6 + mkdir unix-dgram@2.0.6/node_modules + + - name: Tar node-packages + run: | + mv node_modules/bcrypt ./bcrypt@5.1.0/node_modules/bcrypt + mv node_modules/cld ./cld@2.9.1/node_modules/cld + mv node_modules/unix-dgram ./unix-dgram@2.0.6/node_modules/unix-dgram + tar --hard-dereference -cvzf packages_${{matrix.arch}}.tar.gz bcrypt@5.1.0 cld@2.9.1 unix-dgram@2.0.6 + + - name: Upload archive to release + uses: softprops/action-gh-release@v1 + with: + name: node-${{ env.NODE_VERSION }}-LATEST + tag_name: node-${{ env.NODE_VERSION }}-release + files: packages_${{matrix.arch}}.tar.gz + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml index e97959697d3edb..198f4592fa27d8 100644 --- a/.github/workflows/build-node.yml +++ b/.github/workflows/build-node.yml @@ -1,10 +1,7 @@ name: Build Node on: - push: - branches: - - v20.18.3 - - workflows-for-v20.18.3 + workflow_dispatch: pull_request: paths: .github/workflows/build-node.yml