From 14ff21bdd08f1eaafcf04d47eed62ded8414e9ee Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Wed, 16 Apr 2025 18:38:22 -0700 Subject: [PATCH 01/13] build: add workflows --- .github/workflows/build-node-fibers.yml | 51 +++++++++++++++++++ .github/workflows/build-node.yml | 67 +++++++++++++++++++++++++ 2 files changed, 118 insertions(+) create mode 100644 .github/workflows/build-node-fibers.yml create mode 100644 .github/workflows/build-node.yml diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml new file mode 100644 index 00000000000000..a7b2420a9518c1 --- /dev/null +++ b/.github/workflows/build-node-fibers.yml @@ -0,0 +1,51 @@ +name: Build node-fibers with prebuilt Node + +on: + workflow_run: + workflows: ["Build Node"] + types: + - completed + +jobs: + build-fibers: + name: Build node-fibers with custom Node + runs-on: ubuntu-latest + strategy: + matrix: + include: + - platform: linux + arch: x64 + - platform: linux + arch: arm64 + + env: + NODE_VERSION: v20.12.0 + + steps: + - name: Download Node archive + uses: actions/download-artifact@v4 + with: + # You must match the exact name used in build-node.yml + name: node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST + + - name: Extract Node archive + run: | + mkdir -p node-install + tar -C node-install -xJf node-*.tar.xz + echo "$GITHUB_WORKSPACE/node-install/usr/local/bin" >> $GITHUB_PATH + + - name: Checkout node-fibers fork + uses: actions/checkout@v3 + with: + repository: asana/node-fibers + ref: jackstrohm_node20_fibers + path: node-fibers + + - name: Build node-fibers + working-directory: node-fibers + run: | + which node + node -v + npm install --nodedir="$GITHUB_WORKSPACE/node-install/usr/local" + npm test + diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml new file mode 100644 index 00000000000000..a430b5aca562a3 --- /dev/null +++ b/.github/workflows/build-node.yml @@ -0,0 +1,67 @@ +name: Build Node + +on: + push: + branches: + - v20.18.3 + +jobs: + build-node: + name: Build ${{ matrix.platform }}-${{ matrix.arch }} + runs-on: ${{ matrix.runner }} + strategy: + matrix: + include: + - platform: linux + arch: x64 + runner: ubuntu-latest + - platform: linux + arch: arm64 + runner: ubuntu-latest + + env: + NODE_VERSION: v20.12.0 + S3_BUCKET: your-bucket-name + AWS_REGION: us-east-1 + + steps: + - name: Checkout Node fork + uses: actions/checkout@v3 + with: + repository: Asana/node + path: node + + - name: Set build metadata + id: meta + working-directory: node + run: | + TIMESTAMP=$(date -u +%Y-%m-%dT%H-%M) + SHORT_SHA=$(git rev-parse --short HEAD) + echo "BUILD_ID=${TIMESTAMP}-${SHORT_SHA}" >> $GITHUB_ENV + echo "build_id=${TIMESTAMP}-${SHORT_SHA}" >> $GITHUB_OUTPUT + + - name: Install dependencies (Linux) + if: matrix.platform == 'linux' + run: | + sudo apt-get update + sudo apt-get install -y python3 g++ make curl tar xz-utils + + - name: Build Node + working-directory: node + run: | + ./configure --experimental-enable-pointer-compression + make -j4 install DESTDIR=$GITHUB_WORKSPACE/node-install + + - name: Archive Node + run: | + mkdir -p artifacts + FILENAME=node-${NODE_VERSION}-${{ matrix.platform }}-${{ matrix.arch }}-${{ steps.meta.outputs.build_id }}.tar.xz + tar -C node-install -cJf artifacts/$FILENAME . + echo "NODE_ARCHIVE=$FILENAME" >> $GITHUB_ENV + + - name: Upload Node archive + uses: actions/upload-artifact@v4 + with: + name: node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-${{ steps.meta.outputs.build_id }} + path: artifacts/${{ env.NODE_ARCHIVE }} + From fcb5270247ebf36743a2d04fba766cb86d817463 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Wed, 16 Apr 2025 18:45:55 -0700 Subject: [PATCH 02/13] lint cleanups --- .github/workflows/build-node-fibers.yml | 3 +-- .github/workflows/build-node.yml | 1 - 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index a7b2420a9518c1..eec5c3edf65a12 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -2,7 +2,7 @@ name: Build node-fibers with prebuilt Node on: workflow_run: - workflows: ["Build Node"] + workflows: [Build Node] types: - completed @@ -48,4 +48,3 @@ jobs: node -v npm install --nodedir="$GITHUB_WORKSPACE/node-install/usr/local" npm test - diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml index a430b5aca562a3..6f42cae1e9822e 100644 --- a/.github/workflows/build-node.yml +++ b/.github/workflows/build-node.yml @@ -64,4 +64,3 @@ jobs: with: name: node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-${{ steps.meta.outputs.build_id }} path: artifacts/${{ env.NODE_ARCHIVE }} - From 73dfc2d969249840c5a923ca5d4436256dd10848 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Wed, 16 Apr 2025 18:52:13 -0700 Subject: [PATCH 03/13] disable lint check --- tools/dep_updaters/update-openssl.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/tools/dep_updaters/update-openssl.sh b/tools/dep_updaters/update-openssl.sh index bef379b707a04e..be12c5705a45ba 100755 --- a/tools/dep_updaters/update-openssl.sh +++ b/tools/dep_updaters/update-openssl.sh @@ -151,6 +151,7 @@ help() { exit "${1:-0}" } +# shellcheck disable=SC2317 main() { if [ ${#} -eq 0 ]; then help 0 From 1ba5ec7ea1473e9922b2f17cad44f6a50971017c Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 17 Apr 2025 21:02:27 -0700 Subject: [PATCH 04/13] Update build-node-fibers.yml update trigger --- .github/workflows/build-node-fibers.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index eec5c3edf65a12..17ce836471e069 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -5,7 +5,9 @@ on: workflows: [Build Node] types: - completed - + pull_request: + paths: .github/workflows/build-node-fibers.yml + jobs: build-fibers: name: Build node-fibers with custom Node From df6e57d9368af435b9ac6c4b9b7a013c2e7f90ea Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 17 Apr 2025 21:07:09 -0700 Subject: [PATCH 05/13] Update build-node.yml Add a latest build --- .github/workflows/build-node.yml | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml index 6f42cae1e9822e..cf3712ebaef0b0 100644 --- a/.github/workflows/build-node.yml +++ b/.github/workflows/build-node.yml @@ -56,11 +56,20 @@ jobs: run: | mkdir -p artifacts FILENAME=node-${NODE_VERSION}-${{ matrix.platform }}-${{ matrix.arch }}-${{ steps.meta.outputs.build_id }}.tar.xz + FILENAME_LATEST=node-${NODE_VERSION}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz tar -C node-install -cJf artifacts/$FILENAME . + cp artifacts/$FILENAME artifacts/$FILENAME_LATEST echo "NODE_ARCHIVE=$FILENAME" >> $GITHUB_ENV + echo "NODE_ARCHIVE_LATEST=$FILENAME_LATEST" >> $GITHUB_ENV - name: Upload Node archive uses: actions/upload-artifact@v4 with: name: node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-${{ steps.meta.outputs.build_id }} path: artifacts/${{ env.NODE_ARCHIVE }} + + - name: Upload Node archive latest + uses: actions/upload-artifact@v4 + with: + name: node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST + path: artifacts/${{ env.NODE_ARCHIVE_LATEST }} From 1d025e805355419cce3816bd977bf34cc7267df9 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 17 Apr 2025 21:13:47 -0700 Subject: [PATCH 06/13] Update build-node-fibers.yml remove trailing spaces --- .github/workflows/build-node-fibers.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index 17ce836471e069..d8c95bb276026f 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -7,7 +7,7 @@ on: - completed pull_request: paths: .github/workflows/build-node-fibers.yml - + jobs: build-fibers: name: Build node-fibers with custom Node From f3e19a0cae59cbd093487b5b684de210b169b99d Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 17 Apr 2025 21:16:26 -0700 Subject: [PATCH 07/13] Update build-node.yml change what is checked out --- .github/workflows/build-node.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml index cf3712ebaef0b0..3c539f7e8abf93 100644 --- a/.github/workflows/build-node.yml +++ b/.github/workflows/build-node.yml @@ -30,6 +30,8 @@ jobs: with: repository: Asana/node path: node + ref: ${{ github.ref_name }} + token: ${{ secrets.GITHUB_TOKEN }} - name: Set build metadata id: meta From ee79bbabc983bd3d8da619e402066f28ff7e1d5f Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 17 Apr 2025 21:19:05 -0700 Subject: [PATCH 08/13] Update build-node.yml cleanup up trailing space From 108033936f15318ddf92cca50cdbee5768bd6270 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 17 Apr 2025 21:23:45 -0700 Subject: [PATCH 09/13] Update build-node.yml updated on for build node --- .github/workflows/build-node.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml index 3c539f7e8abf93..fd74efbc67d513 100644 --- a/.github/workflows/build-node.yml +++ b/.github/workflows/build-node.yml @@ -4,6 +4,8 @@ on: push: branches: - v20.18.3 + pull_request: + paths: .github/workflows/build-node.yml jobs: build-node: From 42330c8c396d348818185f7dcc06dae01ffa57cc Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 17 Apr 2025 21:36:47 -0700 Subject: [PATCH 10/13] Update build-node.yml extract node version from version file --- .github/workflows/build-node.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml index fd74efbc67d513..da8787b9f4cc86 100644 --- a/.github/workflows/build-node.yml +++ b/.github/workflows/build-node.yml @@ -22,7 +22,6 @@ jobs: runner: ubuntu-latest env: - NODE_VERSION: v20.12.0 S3_BUCKET: your-bucket-name AWS_REGION: us-east-1 @@ -35,6 +34,15 @@ jobs: ref: ${{ github.ref_name }} token: ${{ secrets.GITHUB_TOKEN }} + - name: Extract Node Version + id: extract-node-version + run: | + NODE_MAJOR_VERSION=$(grep '#define NODE_MAJOR_VERSION' node/src/node_version.h | awk '{print $3}') + NODE_MINOR_VERSION=$(grep '#define NODE_MINOR_VERSION' node/src/node_version.h | awk '{print $3}') + NODE_PATCH_VERSION=$(grep '#define NODE_PATCH_VERSION' node/src/node_version.h | awk '{print $3}') + NODE_VERSION="v${NODE_MAJOR_VERSION}.${NODE_MINOR_VERSION}.${NODE_PATCH_VERSION}" + echo "NODE_VERSION=${NODE_VERSION}" >> $GITHUB_ENV + - name: Set build metadata id: meta working-directory: node From b6c08a5306b8d615f7d781a34fd5d237c6050563 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 17 Apr 2025 21:41:25 -0700 Subject: [PATCH 11/13] Update build-node.yml Fix refs line so works in pr --- .github/workflows/build-node.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml index da8787b9f4cc86..c46222ec539090 100644 --- a/.github/workflows/build-node.yml +++ b/.github/workflows/build-node.yml @@ -31,7 +31,7 @@ jobs: with: repository: Asana/node path: node - ref: ${{ github.ref_name }} + ref: ${{ github.event_name == 'pull_request' && format('refs/pull/{0}/merge', github.event.pull_request.number) || github.ref_name }} token: ${{ secrets.GITHUB_TOKEN }} - name: Extract Node Version From f05426b5e05ae35e9b99666247f5cd98376cda73 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 17 Apr 2025 21:47:23 -0700 Subject: [PATCH 12/13] Update build-node.yml the editors keep sneaking in spaces --- .github/workflows/build-node.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml index c46222ec539090..7303363a4b87f4 100644 --- a/.github/workflows/build-node.yml +++ b/.github/workflows/build-node.yml @@ -42,7 +42,7 @@ jobs: NODE_PATCH_VERSION=$(grep '#define NODE_PATCH_VERSION' node/src/node_version.h | awk '{print $3}') NODE_VERSION="v${NODE_MAJOR_VERSION}.${NODE_MINOR_VERSION}.${NODE_PATCH_VERSION}" echo "NODE_VERSION=${NODE_VERSION}" >> $GITHUB_ENV - + - name: Set build metadata id: meta working-directory: node From 7f47efad7cafc3563b02b73e99e816e7e301133b Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 17 Apr 2025 21:49:18 -0700 Subject: [PATCH 13/13] trailing space removed --- .github/workflows/build-node.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml index 7303363a4b87f4..c713934c531c98 100644 --- a/.github/workflows/build-node.yml +++ b/.github/workflows/build-node.yml @@ -84,4 +84,4 @@ jobs: uses: actions/upload-artifact@v4 with: name: node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST - path: artifacts/${{ env.NODE_ARCHIVE_LATEST }} + path: artifacts/${{ env.NODE_ARCHIVE_LATEST }}