From 524e67fc097aac6dfa6c320c29458a6dbfd133cd Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Wed, 14 May 2025 16:01:45 -0700 Subject: [PATCH 01/35] Testing workflow build with Dockerfile --- .github/workflows/build-node.yml | 117 +++++++++++++++++++++++++++++++ Dockerfile.Node20 | 25 +++++++ 2 files changed, 142 insertions(+) create mode 100644 .github/workflows/build-node.yml create mode 100644 Dockerfile.Node20 diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml new file mode 100644 index 00000000000000..c897e47b9f4900 --- /dev/null +++ b/.github/workflows/build-node.yml @@ -0,0 +1,117 @@ +name: Build Node + +on: + push: + branches: + - v20.18.3 + - workflows-for-v20.18.3 + pull_request: + paths: .github/workflows/build-node.yml + +jobs: + build-node: + name: Build ${{ matrix.platform }}-${{ matrix.arch }} + 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: + 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 + 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 + 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 + 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 (linux) + #working-directory: node + #if: matrix.platform == 'linux' + #run: | + #./configure --experimental-enable-pointer-compression + #make -j4 install DESTDIR=$GITHUB_WORKSPACE/node-install + + #- name: Build Node (darwin) + #working-directory: node + #if: matrix.platform == 'darwin' + #run: | + #./configure --experimental-enable-pointer-compression --without-snapshot + #make -j2 install DESTDIR=$GITHUB_WORKSPACE/node-install + # + + - name: Execute the Dockerfile + working-directory: node + run: | + docker build -t node20_build -f ./Dockerfile.Node20 . + + - name: Extract resources + run: | + docker create --name temp_node_extract node20_build + docker cp temp_node_extract:/usr/src/node/node-install $GITHUB_WORKSPACE/node-install + docker rm temp_node_extract + + - name: Archive Node + 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 }} + + - name: Upload Node archive to release + uses: softprops/action-gh-release@v1 + with: + name: node-${{ env.NODE_VERSION }}-LATEST + tag_name: node-${{ env.NODE_VERSION }}-release + files: ./artifacts/${{ env.NODE_ARCHIVE_LATEST }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/Dockerfile.Node20 b/Dockerfile.Node20 new file mode 100644 index 00000000000000..be19e939584cce --- /dev/null +++ b/Dockerfile.Node20 @@ -0,0 +1,25 @@ +# Stage 1 +FROM ubuntu:20.04 AS base + +# Set non-interactive mode to avoid prompts during installation +ENV DEBIAN_FRONTEND=noninteractive + +# Install necessary dependencies +RUN apt-get update +RUN apt-get install -y software-properties-common +RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test +RUN apt-get update && apt-get install -y build-essential python3 python3-distutils g++-10 make curl git pkg-config libssl-dev libffi-dev libgmp-dev libtool autoconf automake cmake wget xz-utils unzip vim +RUN rm -rf /var/lib/apt/lists/* + +# Set g++ 10 as the default +RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100 + +# Copy local Node.js source into the image +WORKDIR /usr/src/node +COPY node/ . + +RUN ./configure --experimental-enable-pointer-compression +RUN make -j4 install DESTDIR=./node-install + +CMD ["bash"] + From 937107056168e4335d76212a9c3093a61119a2e8 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Wed, 14 May 2025 16:03:59 -0700 Subject: [PATCH 02/35] update --- .github/workflows/build-node.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml index c897e47b9f4900..1265f3c303a857 100644 --- a/.github/workflows/build-node.yml +++ b/.github/workflows/build-node.yml @@ -5,6 +5,7 @@ on: branches: - v20.18.3 - workflows-for-v20.18.3 + - node20.18.3_dockerfile pull_request: paths: .github/workflows/build-node.yml From 7714135c39441e4136f8b4a2419eda022ac3d49d Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Wed, 14 May 2025 18:04:25 -0700 Subject: [PATCH 03/35] change node location in docker image --- Dockerfile.Node20 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.Node20 b/Dockerfile.Node20 index be19e939584cce..b80bfc783121ab 100644 --- a/Dockerfile.Node20 +++ b/Dockerfile.Node20 @@ -16,7 +16,7 @@ RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100 # Copy local Node.js source into the image WORKDIR /usr/src/node -COPY node/ . +COPY . . RUN ./configure --experimental-enable-pointer-compression RUN make -j4 install DESTDIR=./node-install From 46731cd62bb9e6335b3a658b667e6e434f83e125 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:12:27 -0700 Subject: [PATCH 04/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 99 +++++++++++++++++++++++++ .github/workflows/build-tarball.yml | 33 +++------ Dockerfile.Fibers | 31 ++++++++ 3 files changed, 141 insertions(+), 22 deletions(-) create mode 100644 .github/workflows/build-node-fibers.yml create mode 100644 Dockerfile.Fibers diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml new file mode 100644 index 00000000000000..58ab8602a5758b --- /dev/null +++ b/.github/workflows/build-node-fibers.yml @@ -0,0 +1,99 @@ +name: Build node-fibers with prebuilt Node + +on: + workflow_dispatch: + workflow_run: + workflows: [Build Node] + types: + - completed + +jobs: + build-fibers: + 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 + + - 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 + #node -p "process.arch" + #npm install --nodedir="$GITHUB_WORKSPACE/node-install/usr/local" + #npm test || true + #rm bin/repl + #find . + + - name: Execute the Dockerfile + working-directory: node-fibers + run: | + docker build -t node20_fibers_build -f ./Dockerfile.Fibers . + + - name: Extract resources + working-directory: node-fibers + run: | + docker create --name temp_node_fibers_extract node20_fibers_build + docker cp temp_node_fibers_extract:/usr/src/node/node-fibers $GITHUB_WORKSPACE/node-fibers + docker rm temp_node_fibers_extract + + - name: Find and archive fibers.node + run: | + # Find the directory under bin/ that contains fibers.node + FIBERS_PATH=$(find ./node-fibers/bin -type f -name fibers.node | head -n1) + FIBERS_DIR=$(dirname "$FIBERS_PATH") + ARCHIVE_NAME=$(basename "$FIBERS_DIR").tar.gz + echo "ARCHIVE_NAME=$ARCHIVE_NAME" >> $GITHUB_ENV + tar -czf "$ARCHIVE_NAME" -C "$(dirname "$FIBERS_DIR")" "$(basename "$FIBERS_DIR")" + + - 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: ${{ env.ARCHIVE_NAME }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml index 4796b5b316ebe4..a0c0004af7e293 100644 --- a/.github/workflows/build-tarball.yml +++ b/.github/workflows/build-tarball.yml @@ -28,11 +28,8 @@ concurrency: cancel-in-progress: true env: - PYTHON_VERSION: '3.12' + PYTHON_VERSION: '3.11' FLAKY_TESTS: keep_retrying - CC: sccache clang - CXX: sccache clang++ - SCCACHE_GHA_ENABLED: 'true' permissions: contents: read @@ -40,19 +37,15 @@ permissions: jobs: build-tarball: if: github.event.pull_request.draft == false - runs-on: ubuntu-24.04 + runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 with: python-version: ${{ env.PYTHON_VERSION }} - - name: Set up sccache - uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 - with: - version: v0.8.1 - name: Environment Information run: npx envinfo - name: Make tarball @@ -64,29 +57,25 @@ jobs: mkdir tarballs mv *.tar.gz tarballs - name: Upload tarball artifact - uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 + uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0 with: name: tarballs path: tarballs test-tarball-linux: needs: build-tarball - runs-on: ubuntu-24.04 + runs-on: ubuntu-latest steps: - - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 + - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 + uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 with: python-version: ${{ env.PYTHON_VERSION }} - - name: Set up sccache - uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 - with: - version: v0.8.1 - name: Environment Information run: npx envinfo - name: Download tarball - uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 + uses: actions/download-artifact@f44cd7b40bfd40b6aa1cc1b9b5b7bf03d3c67110 # v4.1.0 with: name: tarballs path: tarballs @@ -101,8 +90,8 @@ jobs: - name: Build run: | cd $TAR_DIR - make build-ci -j4 V=1 + make build-ci -j2 V=1 - name: Test run: | cd $TAR_DIR - make run-ci -j4 V=1 TEST_CI_ARGS="-p dots --node-args='--test-reporter=spec' --measure-flakiness 9" + make run-ci -j2 V=1 TEST_CI_ARGS="-p dots --node-args='--test-reporter=spec' --measure-flakiness 9" diff --git a/Dockerfile.Fibers b/Dockerfile.Fibers new file mode 100644 index 00000000000000..744c229f46a7df --- /dev/null +++ b/Dockerfile.Fibers @@ -0,0 +1,31 @@ +# Stage 1 +FROM ubuntu:20.04 AS base + +# Set non-interactive mode to avoid prompts during installation +ENV DEBIAN_FRONTEND=noninteractive + +# Install necessary dependencies +RUN apt-get update +RUN apt-get install -y software-properties-common +RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test +RUN apt-get update && apt-get install -y build-essential python3 python3-distutils g++-10 make curl git pkg-config libssl-dev libffi-dev libgmp-dev libtool autoconf automake cmake wget xz-utils unzip vim +RUN rm -rf /var/lib/apt/lists/* + +# Set g++ 10 as the default +RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100 + +# Copy local Node.js source into the image +WORKDIR /usr/src/node +COPY . . + +RUN which node +RUN node -v +RUN node -p "process.arch" +RUN npm install --nodedir="$GITHUB_WORKSPACE/node-install/usr/local" +RUN npm test || true +RUN rm bin/repl +RUN find . + + +CMD ["bash"] + From 71dc872cf8094eea6092267966bced820e4cc906 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:16:12 -0700 Subject: [PATCH 05/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index 58ab8602a5758b..6988ce2c0baf89 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -41,6 +41,7 @@ jobs: run: | mkdir -p node-install tar -C node-install -xJf node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz + echo "Node Location: $GITHUB_WORKSPACE/node-install/usr/local/bin" echo "$GITHUB_WORKSPACE/node-install/usr/local/bin" >> $GITHUB_PATH - name: Verify Node Binary Architecture @@ -71,7 +72,7 @@ jobs: - name: Execute the Dockerfile working-directory: node-fibers run: | - docker build -t node20_fibers_build -f ./Dockerfile.Fibers . + docker build -t node20_fibers_build -f $GITHUB_WORKSPACE/node-install/Dockerfile.Fibers . - name: Extract resources working-directory: node-fibers From 59d3da1aa0d06b0909d82df36835f3bb3567aeb1 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:20:36 -0700 Subject: [PATCH 06/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 4 ---- .github/workflows/build-node.yml | 8 +------- Dockerfile.Fibers | 12 ++++++------ 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index 6988ce2c0baf89..d2f761f2d74411 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -2,10 +2,6 @@ name: Build node-fibers with prebuilt Node on: workflow_dispatch: - workflow_run: - workflows: [Build Node] - types: - - completed jobs: build-fibers: diff --git a/.github/workflows/build-node.yml b/.github/workflows/build-node.yml index 1265f3c303a857..e6261d91f71694 100644 --- a/.github/workflows/build-node.yml +++ b/.github/workflows/build-node.yml @@ -1,13 +1,7 @@ name: Build Node on: - push: - branches: - - v20.18.3 - - workflows-for-v20.18.3 - - node20.18.3_dockerfile - pull_request: - paths: .github/workflows/build-node.yml + workflow_dispatch: jobs: build-node: diff --git a/Dockerfile.Fibers b/Dockerfile.Fibers index 744c229f46a7df..da85fe94830d94 100644 --- a/Dockerfile.Fibers +++ b/Dockerfile.Fibers @@ -5,14 +5,14 @@ FROM ubuntu:20.04 AS base ENV DEBIAN_FRONTEND=noninteractive # Install necessary dependencies -RUN apt-get update -RUN apt-get install -y software-properties-common -RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test -RUN apt-get update && apt-get install -y build-essential python3 python3-distutils g++-10 make curl git pkg-config libssl-dev libffi-dev libgmp-dev libtool autoconf automake cmake wget xz-utils unzip vim -RUN rm -rf /var/lib/apt/lists/* +#RUN apt-get update +#RUN apt-get install -y software-properties-common +#RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test +#RUN apt-get update && apt-get install -y build-essential python3 python3-distutils g++-10 make curl git pkg-config libssl-dev libffi-dev libgmp-dev libtool autoconf automake cmake wget xz-utils unzip vim +#RUN rm -rf /var/lib/apt/lists/* # Set g++ 10 as the default -RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100 +#RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100 # Copy local Node.js source into the image WORKDIR /usr/src/node From c2fc02064cf5d414ed365a6beaecbe47a8497c9b Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:25:02 -0700 Subject: [PATCH 07/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index d2f761f2d74411..e6f8156bc5aeb0 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -39,6 +39,7 @@ jobs: tar -C node-install -xJf node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz echo "Node Location: $GITHUB_WORKSPACE/node-install/usr/local/bin" echo "$GITHUB_WORKSPACE/node-install/usr/local/bin" >> $GITHUB_PATH + find $GITHUB_WORKSPACE/node-install - name: Verify Node Binary Architecture run: | @@ -68,6 +69,8 @@ jobs: - name: Execute the Dockerfile working-directory: node-fibers run: | + echo $GITHUB_WORKSPACE + ls $GITHUB_WORKSPACE/node-install docker build -t node20_fibers_build -f $GITHUB_WORKSPACE/node-install/Dockerfile.Fibers . - name: Extract resources From ff6c50c175932d1226514e086e2d803b1661993e Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:32:38 -0700 Subject: [PATCH 08/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index e6f8156bc5aeb0..52e8f79ff9bae6 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -39,7 +39,6 @@ jobs: tar -C node-install -xJf node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz echo "Node Location: $GITHUB_WORKSPACE/node-install/usr/local/bin" echo "$GITHUB_WORKSPACE/node-install/usr/local/bin" >> $GITHUB_PATH - find $GITHUB_WORKSPACE/node-install - name: Verify Node Binary Architecture run: | @@ -55,6 +54,10 @@ jobs: ref: jackstrohm_node20_fibers path: node-fibers + - name: Download Dockerfile from Asana/node + run: | + curl -o $GITHUB_WORKSPACE/node-install/Dockerfile.Fibers https://raw.githubusercontent.com/Asana/node/node20.18.3_dockerfile/Dockerfile.Fibers + #- name: Build node-fibers #working-directory: node-fibers #run: | @@ -69,8 +72,6 @@ jobs: - name: Execute the Dockerfile working-directory: node-fibers run: | - echo $GITHUB_WORKSPACE - ls $GITHUB_WORKSPACE/node-install docker build -t node20_fibers_build -f $GITHUB_WORKSPACE/node-install/Dockerfile.Fibers . - name: Extract resources From 8b0e1e3acc02a8167ec1e4580c15fcb2574b024a Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:34:33 -0700 Subject: [PATCH 09/35] working on Dockerfile for fibers --- Dockerfile.Fibers | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile.Fibers b/Dockerfile.Fibers index da85fe94830d94..c5c80abf5ede9e 100644 --- a/Dockerfile.Fibers +++ b/Dockerfile.Fibers @@ -18,6 +18,7 @@ ENV DEBIAN_FRONTEND=noninteractive WORKDIR /usr/src/node COPY . . +RUN find . RUN which node RUN node -v RUN node -p "process.arch" From 48b135c8b464f37dc8827383d0273b5d8b9d78ab Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:36:58 -0700 Subject: [PATCH 10/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index 52e8f79ff9bae6..e221a4273e4975 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -57,6 +57,7 @@ jobs: - name: Download Dockerfile from Asana/node run: | curl -o $GITHUB_WORKSPACE/node-install/Dockerfile.Fibers https://raw.githubusercontent.com/Asana/node/node20.18.3_dockerfile/Dockerfile.Fibers + cat $GITHUB_WORKSPACE/node-install/Dockerfile.Fibers #- name: Build node-fibers #working-directory: node-fibers From 02a1e166f0cd14edb521f9d7b3842672207f91a9 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:40:12 -0700 Subject: [PATCH 11/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index e221a4273e4975..25f8682a0d9292 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -54,9 +54,11 @@ jobs: ref: jackstrohm_node20_fibers path: node-fibers - - name: Download Dockerfile from Asana/node + - name: Download Dockerfile from GitHub API + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - curl -o $GITHUB_WORKSPACE/node-install/Dockerfile.Fibers https://raw.githubusercontent.com/Asana/node/node20.18.3_dockerfile/Dockerfile.Fibers + curl -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw" -o $GITHUB_WORKSPACE/node-install/Dockerfile.Fibers https://api.github.com/repos/Asana/node/contents/Dockerfile.Fibers?ref=node20.18.3_dockerfile cat $GITHUB_WORKSPACE/node-install/Dockerfile.Fibers #- name: Build node-fibers From 1f9c4de5f24b9b97c81bedee42e210dbe8fee10a Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:47:03 -0700 Subject: [PATCH 12/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 37 +++++++++++++------------ Dockerfile.Fibers | 4 +++ 2 files changed, 23 insertions(+), 18 deletions(-) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index 25f8682a0d9292..207c0666e4dc1a 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -30,29 +30,30 @@ jobs: gh release download node-${{ env.NODE_VERSION }}-release \ --repo asana/node \ --pattern "node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz" + mv node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz node.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 "Node Location: $GITHUB_WORKSPACE/node-install/usr/local/bin" - echo "$GITHUB_WORKSPACE/node-install/usr/local/bin" >> $GITHUB_PATH + #- 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 "Node Location: $GITHUB_WORKSPACE/node-install/usr/local/bin" + #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 + #- name: Verify Node Binary Architecture + #run: | + #echo "Node File:" + #file $GITHUB_WORKSPACE/node-install/usr/local/bin/node + #echo "Runner architecture:" + #uname -m - - name: Checkout node-fibers fork - uses: actions/checkout@v3 - with: - repository: asana/node-fibers - ref: jackstrohm_node20_fibers - path: node-fibers + #- name: Checkout node-fibers fork + #uses: actions/checkout@v3 + #with: + #repository: asana/node-fibers + #ref: jackstrohm_node20_fibers + #path: node-fibers - name: Download Dockerfile from GitHub API env: diff --git a/Dockerfile.Fibers b/Dockerfile.Fibers index c5c80abf5ede9e..9f43e8056d8a2c 100644 --- a/Dockerfile.Fibers +++ b/Dockerfile.Fibers @@ -18,6 +18,10 @@ ENV DEBIAN_FRONTEND=noninteractive WORKDIR /usr/src/node COPY . . +RUN tar -C node-install -xJf node.tar.xz + +ENV PATH="/node-install/usr/local/bin:$PATH" + RUN find . RUN which node RUN node -v From 0b08ce9becb1f97f418565cf10dc37f76b6a9915 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:48:35 -0700 Subject: [PATCH 13/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index 207c0666e4dc1a..203029632d627b 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -59,8 +59,8 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - curl -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw" -o $GITHUB_WORKSPACE/node-install/Dockerfile.Fibers https://api.github.com/repos/Asana/node/contents/Dockerfile.Fibers?ref=node20.18.3_dockerfile - cat $GITHUB_WORKSPACE/node-install/Dockerfile.Fibers + curl -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw" -o Dockerfile.Fibers https://api.github.com/repos/Asana/node/contents/Dockerfile.Fibers?ref=node20.18.3_dockerfile + cat Dockerfile.Fibers #- name: Build node-fibers #working-directory: node-fibers @@ -76,7 +76,7 @@ jobs: - name: Execute the Dockerfile working-directory: node-fibers run: | - docker build -t node20_fibers_build -f $GITHUB_WORKSPACE/node-install/Dockerfile.Fibers . + docker build -t node20_fibers_build -f $GITHUB_WORKSPACE/Dockerfile.Fibers . - name: Extract resources working-directory: node-fibers From 60c07e534fa0fb8ebe600e593f895a68eb58468e Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:50:58 -0700 Subject: [PATCH 14/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index 203029632d627b..51511583cd0283 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -74,9 +74,8 @@ jobs: #find . - name: Execute the Dockerfile - working-directory: node-fibers run: | - docker build -t node20_fibers_build -f $GITHUB_WORKSPACE/Dockerfile.Fibers . + docker build -t node20_fibers_build -f Dockerfile.Fibers . - name: Extract resources working-directory: node-fibers From b323e9f966655f25de984f3bca6d1280d90b6597 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:53:24 -0700 Subject: [PATCH 15/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 3 + @ | 106 ++++++++++++++++++++++++ 2 files changed, 109 insertions(+) create mode 100644 @ diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index 51511583cd0283..247494267840c5 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -2,6 +2,9 @@ name: Build node-fibers with prebuilt Node on: workflow_dispatch: + push: + branches: + - jackstrohm_node20_fibers jobs: build-fibers: diff --git a/@ b/@ new file mode 100644 index 00000000000000..eef39b85a4ec04 --- /dev/null +++ b/@ @@ -0,0 +1,106 @@ +name: Build node-fibers with prebuilt Node + +on: + workflow_dispatch: + push: + branches: + - node20.18.3_dockerfile + +jobs: + build-fibers: + 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" + mv node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz node.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 "Node Location: $GITHUB_WORKSPACE/node-install/usr/local/bin" + #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 + + #- name: Checkout node-fibers fork + #uses: actions/checkout@v3 + #with: + #repository: asana/node-fibers + #ref: jackstrohm_node20_fibers + #path: node-fibers + + - name: Download Dockerfile from GitHub API + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + curl -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw" -o Dockerfile.Fibers https://api.github.com/repos/Asana/node/contents/Dockerfile.Fibers?ref=node20.18.3_dockerfile + cat Dockerfile.Fibers + + #- name: Build node-fibers + #working-directory: node-fibers + #run: | + #which node + #node -v + #node -p "process.arch" + #npm install --nodedir="$GITHUB_WORKSPACE/node-install/usr/local" + #npm test || true + #rm bin/repl + #find . + + - name: Execute the Dockerfile + run: | + docker build -t node20_fibers_build -f Dockerfile.Fibers . + + - name: Extract resources + working-directory: node-fibers + run: | + docker create --name temp_node_fibers_extract node20_fibers_build + docker cp temp_node_fibers_extract:/usr/src/node/node-fibers $GITHUB_WORKSPACE/node-fibers + docker rm temp_node_fibers_extract + + - name: Find and archive fibers.node + run: | + # Find the directory under bin/ that contains fibers.node + FIBERS_PATH=$(find ./node-fibers/bin -type f -name fibers.node | head -n1) + FIBERS_DIR=$(dirname "$FIBERS_PATH") + ARCHIVE_NAME=$(basename "$FIBERS_DIR").tar.gz + echo "ARCHIVE_NAME=$ARCHIVE_NAME" >> $GITHUB_ENV + tar -czf "$ARCHIVE_NAME" -C "$(dirname "$FIBERS_DIR")" "$(basename "$FIBERS_DIR")" + + - 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: ${{ env.ARCHIVE_NAME }} + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From fecf418d410f6662a4f7a8d4c218d9198ed3237a Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:54:19 -0700 Subject: [PATCH 16/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 3 +++ 1 file changed, 3 insertions(+) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index 247494267840c5..a6bd4f032ae9d2 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -34,6 +34,7 @@ jobs: --repo asana/node \ --pattern "node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz" mv node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz node.tar.xz + pwd env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -64,6 +65,7 @@ jobs: run: | curl -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw" -o Dockerfile.Fibers https://api.github.com/repos/Asana/node/contents/Dockerfile.Fibers?ref=node20.18.3_dockerfile cat Dockerfile.Fibers + pwd #- name: Build node-fibers #working-directory: node-fibers @@ -78,6 +80,7 @@ jobs: - name: Execute the Dockerfile run: | + pwd docker build -t node20_fibers_build -f Dockerfile.Fibers . - name: Extract resources From 0741a10fafd9c6bc7e60edfc0448f954c0ea585b Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:54:55 -0700 Subject: [PATCH 17/35] working on Dockerfile for fibers --- .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 a6bd4f032ae9d2..83635ee68b67a2 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -4,7 +4,7 @@ on: workflow_dispatch: push: branches: - - jackstrohm_node20_fibers + - node20.18.3_dockerfile jobs: build-fibers: From 8ec7bdcf4afd9441200846cb6343be9ba6d016b2 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:56:20 -0700 Subject: [PATCH 18/35] working on Dockerfile for fibers --- Dockerfile.Fibers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.Fibers b/Dockerfile.Fibers index 9f43e8056d8a2c..94ac24a75d4877 100644 --- a/Dockerfile.Fibers +++ b/Dockerfile.Fibers @@ -16,7 +16,7 @@ ENV DEBIAN_FRONTEND=noninteractive # Copy local Node.js source into the image WORKDIR /usr/src/node -COPY . . +COPY node.tar.xz . RUN tar -C node-install -xJf node.tar.xz From 96504f5d0b3e4e7d8244af7c060f457b083af932 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:58:03 -0700 Subject: [PATCH 19/35] working on Dockerfile for fibers --- Dockerfile.Fibers | 1 + 1 file changed, 1 insertion(+) diff --git a/Dockerfile.Fibers b/Dockerfile.Fibers index 94ac24a75d4877..72fe4bdf33622e 100644 --- a/Dockerfile.Fibers +++ b/Dockerfile.Fibers @@ -10,6 +10,7 @@ ENV DEBIAN_FRONTEND=noninteractive #RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test #RUN apt-get update && apt-get install -y build-essential python3 python3-distutils g++-10 make curl git pkg-config libssl-dev libffi-dev libgmp-dev libtool autoconf automake cmake wget xz-utils unzip vim #RUN rm -rf /var/lib/apt/lists/* +RUN apt-get install -y xz-utils # Set g++ 10 as the default #RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100 From 226535a4d6bcf38d93c1a436f8cd0f6cec48adb5 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 09:58:54 -0700 Subject: [PATCH 20/35] working on Dockerfile for fibers --- Dockerfile.Fibers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.Fibers b/Dockerfile.Fibers index 72fe4bdf33622e..e80afe8d65ae54 100644 --- a/Dockerfile.Fibers +++ b/Dockerfile.Fibers @@ -5,7 +5,7 @@ FROM ubuntu:20.04 AS base ENV DEBIAN_FRONTEND=noninteractive # Install necessary dependencies -#RUN apt-get update +RUN apt-get update #RUN apt-get install -y software-properties-common #RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test #RUN apt-get update && apt-get install -y build-essential python3 python3-distutils g++-10 make curl git pkg-config libssl-dev libffi-dev libgmp-dev libtool autoconf automake cmake wget xz-utils unzip vim From 69ecd42f41f27cca631e8d86c165d3b7248d4df3 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 10:00:07 -0700 Subject: [PATCH 21/35] working on Dockerfile for fibers --- Dockerfile.Fibers | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Dockerfile.Fibers b/Dockerfile.Fibers index e80afe8d65ae54..34f465f91ab131 100644 --- a/Dockerfile.Fibers +++ b/Dockerfile.Fibers @@ -19,7 +19,7 @@ RUN apt-get install -y xz-utils WORKDIR /usr/src/node COPY node.tar.xz . -RUN tar -C node-install -xJf node.tar.xz +RUN mkdir -p node-install && tar -C node-install -xJf node.tar.xz ENV PATH="/node-install/usr/local/bin:$PATH" From 942aa5ff6c27b830a568885d04df07fd59d39f00 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 10:02:49 -0700 Subject: [PATCH 22/35] working on Dockerfile for fibers --- Dockerfile.Fibers | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Dockerfile.Fibers b/Dockerfile.Fibers index 34f465f91ab131..dbd7007fdb0ee6 100644 --- a/Dockerfile.Fibers +++ b/Dockerfile.Fibers @@ -23,7 +23,8 @@ RUN mkdir -p node-install && tar -C node-install -xJf node.tar.xz ENV PATH="/node-install/usr/local/bin:$PATH" -RUN find . +RUN pwd +RUN ls /node-install/usr/local/bin RUN which node RUN node -v RUN node -p "process.arch" From 1c5617d46e956b0a1bfe2ba4ddc52044d8e9dcf6 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 10:17:49 -0700 Subject: [PATCH 23/35] working on Dockerfile for fibers --- Dockerfile.Fibers | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/Dockerfile.Fibers b/Dockerfile.Fibers index dbd7007fdb0ee6..65d2edf06c1b90 100644 --- a/Dockerfile.Fibers +++ b/Dockerfile.Fibers @@ -6,11 +6,11 @@ ENV DEBIAN_FRONTEND=noninteractive # Install necessary dependencies RUN apt-get update -#RUN apt-get install -y software-properties-common -#RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test -#RUN apt-get update && apt-get install -y build-essential python3 python3-distutils g++-10 make curl git pkg-config libssl-dev libffi-dev libgmp-dev libtool autoconf automake cmake wget xz-utils unzip vim +RUN apt-get install -y software-properties-common +RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test +RUN apt-get update +RUN apt-get install -y build-essential python3 python3-distutils g++-10 make curl git pkg-config libssl-dev libffi-dev libgmp-dev libtool autoconf automake cmake wget xz-utils unzip vim #RUN rm -rf /var/lib/apt/lists/* -RUN apt-get install -y xz-utils # Set g++ 10 as the default #RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100 @@ -21,14 +21,16 @@ COPY node.tar.xz . RUN mkdir -p node-install && tar -C node-install -xJf node.tar.xz -ENV PATH="/node-install/usr/local/bin:$PATH" +ENV PATH="/usr/src/node/node-install/usr/local/bin:$PATH" -RUN pwd -RUN ls /node-install/usr/local/bin RUN which node RUN node -v RUN node -p "process.arch" -RUN npm install --nodedir="$GITHUB_WORKSPACE/node-install/usr/local" +RUN echo ------------------- +RUN git clone --branch jackstrohm_node20_fibers --depth 1 https://github.com/asana/node-fibers.git node-fibers + +WORKDIR /usr/src/node/node-fibers +RUN npm install --nodedir="/usr/src/node/node-install/usr/local" RUN npm test || true RUN rm bin/repl RUN find . From ac45391b4f41ccd9b4c10e2cdd182655ef82b880 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 10:53:50 -0700 Subject: [PATCH 24/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index 83635ee68b67a2..291dd9af9ea227 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -84,7 +84,6 @@ jobs: docker build -t node20_fibers_build -f Dockerfile.Fibers . - name: Extract resources - working-directory: node-fibers run: | docker create --name temp_node_fibers_extract node20_fibers_build docker cp temp_node_fibers_extract:/usr/src/node/node-fibers $GITHUB_WORKSPACE/node-fibers From acb7bf0f706f99b7e492aefe08ded6fa4a342a9a Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 11:04:25 -0700 Subject: [PATCH 25/35] working on Dockerfile for fibers --- .github/workflows/build-node-fibers.yml | 32 ------------------------- Dockerfile.Fibers | 4 ---- stage_for_s3.bash | 4 ++-- 3 files changed, 2 insertions(+), 38 deletions(-) diff --git a/.github/workflows/build-node-fibers.yml b/.github/workflows/build-node-fibers.yml index 291dd9af9ea227..19b07de06735a0 100644 --- a/.github/workflows/build-node-fibers.yml +++ b/.github/workflows/build-node-fibers.yml @@ -38,27 +38,6 @@ jobs: 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 "Node Location: $GITHUB_WORKSPACE/node-install/usr/local/bin" - #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 - - #- name: Checkout node-fibers fork - #uses: actions/checkout@v3 - #with: - #repository: asana/node-fibers - #ref: jackstrohm_node20_fibers - #path: node-fibers - - name: Download Dockerfile from GitHub API env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -67,17 +46,6 @@ jobs: cat Dockerfile.Fibers pwd - #- name: Build node-fibers - #working-directory: node-fibers - #run: | - #which node - #node -v - #node -p "process.arch" - #npm install --nodedir="$GITHUB_WORKSPACE/node-install/usr/local" - #npm test || true - #rm bin/repl - #find . - - name: Execute the Dockerfile run: | pwd diff --git a/Dockerfile.Fibers b/Dockerfile.Fibers index 65d2edf06c1b90..851671619f33b9 100644 --- a/Dockerfile.Fibers +++ b/Dockerfile.Fibers @@ -10,10 +10,6 @@ RUN apt-get install -y software-properties-common RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test RUN apt-get update RUN apt-get install -y build-essential python3 python3-distutils g++-10 make curl git pkg-config libssl-dev libffi-dev libgmp-dev libtool autoconf automake cmake wget xz-utils unzip vim -#RUN rm -rf /var/lib/apt/lists/* - -# Set g++ 10 as the default -#RUN update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-10 100 # Copy local Node.js source into the image WORKDIR /usr/src/node diff --git a/stage_for_s3.bash b/stage_for_s3.bash index d1642b91543bd0..32bb99f153b7ab 100755 --- a/stage_for_s3.bash +++ b/stage_for_s3.bash @@ -13,7 +13,7 @@ gh release download -p "*.xz" curl "https://asana-oss-cache.s3.us-east-1.amazonaws.com/node-fibers/fibers-5.0.4.pc.tgz" --output fibers-5.0.4.tar.gz tar -xzf fibers-5.0.4.tar.gz -find . -name "*.gz" | while read -r a +find . -name "linux-*.gz" | while read -r a do tar -xzf "$a" -C package/bin rm "$a" @@ -44,7 +44,7 @@ for file in *.tar.xz; do echo "Target Dir: $target_dir" mkdir "$target_dir" tar -xzf "$new_name" -C "$target_dir" - mv "$target_dir/usr/local/*" "$target_dir" + mv $target_dir/usr/local/* "$target_dir" rm -fr "$target_dir/usr/local" tar -cJf "$new_name" "$target_dir" From f0d28402a449c460c5f48b970515f9a896feae26 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 11:49:12 -0700 Subject: [PATCH 26/35] working on Dockerfile for fibers --- .github/workflows/build-node-packages.yml | 92 +++++++++++++++++++++++ Dockerfile.Packages | 32 ++++++++ 2 files changed, 124 insertions(+) create mode 100644 .github/workflows/build-node-packages.yml create mode 100644 Dockerfile.Packages diff --git a/.github/workflows/build-node-packages.yml b/.github/workflows/build-node-packages.yml new file mode 100644 index 00000000000000..c22d6f8e185e6d --- /dev/null +++ b/.github/workflows/build-node-packages.yml @@ -0,0 +1,92 @@ +name: Build node-packages with prebuilt Node + +on: + workflow_dispatch: + push: + branches: + - node20.18.3_dockerfile + +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" + mv node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz node.tar.xz + pwd + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: Download Dockerfile from GitHub API + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + curl -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw" -o Dockerfile.Packages https://api.github.com/repos/Asana/node/contents/Dockerfile.Packages?ref=node20.18.3_dockerfile + cat Dockerfile.Packages + pwd + + - name: Execute the Dockerfile + run: | + pwd + docker build -t node20_packages_build -f Dockerfile.Packages . + + - name: Extract resources + run: | + docker create --name temp_node_fibers_extract node20_fibers_build + docker cp temp_node_fibers_extract:/usr/src/node/node-fibers $GITHUB_WORKSPACE/node-fibers + docker rm temp_node_fibers_extract + + #- 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/Dockerfile.Packages b/Dockerfile.Packages new file mode 100644 index 00000000000000..bb4c377b99a78c --- /dev/null +++ b/Dockerfile.Packages @@ -0,0 +1,32 @@ +# Stage 1 +FROM ubuntu:20.04 AS base + +# Set non-interactive mode to avoid prompts during installation +ENV DEBIAN_FRONTEND=noninteractive + +# Install necessary dependencies +RUN apt-get update +RUN apt-get install -y software-properties-common +RUN add-apt-repository -y ppa:ubuntu-toolchain-r/test +RUN apt-get update +RUN apt-get install -y build-essential python3 python3-distutils g++-10 make curl git pkg-config libssl-dev libffi-dev libgmp-dev libtool autoconf automake cmake wget xz-utils unzip vim + +# Copy local Node.js source into the image +WORKDIR /usr/src/node +COPY node.tar.xz . + +RUN mkdir -p node-install && tar -C node-install -xJf node.tar.xz + +ENV PATH="/usr/src/node/node-install/usr/local/bin:$PATH" + +RUN which node +RUN node -v +RUN node -p "process.arch" +RUN echo ------------------- + +RUN npm i --nodedir="/usr/src/node/node-install/usr/local" bcrypt@5.1.0 +RUN npm i --nodedir="/usr/src/node/node-install/usr/local" cld@2.9.1 +RUN npm i --nodedir="/usr/src/node/node-install/usr/local" unix-dgram@2.0.6 + +CMD ["bash"] + From 9e3db8ffedc3ff8d766ae201aeba17832587741c Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 11:52:29 -0700 Subject: [PATCH 27/35] working on Dockerfile for fibers --- .github/workflows/build-node-packages.yml | 20 +------------------- 1 file changed, 1 insertion(+), 19 deletions(-) diff --git a/.github/workflows/build-node-packages.yml b/.github/workflows/build-node-packages.yml index c22d6f8e185e6d..202b620e626adc 100644 --- a/.github/workflows/build-node-packages.yml +++ b/.github/workflows/build-node-packages.yml @@ -54,27 +54,9 @@ jobs: - name: Extract resources run: | docker create --name temp_node_fibers_extract node20_fibers_build - docker cp temp_node_fibers_extract:/usr/src/node/node-fibers $GITHUB_WORKSPACE/node-fibers + docker cp temp_node_fibers_extract:/usr/src/node/node-modules $GITHUB_WORKSPACE/node-modules docker rm temp_node_fibers_extract - #- 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 From 43e837e85785ce4575abaabcf2c317db6cb2cfd6 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 11:55:13 -0700 Subject: [PATCH 28/35] working on Dockerfile for fibers --- .github/workflows/build-node-packages.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-node-packages.yml b/.github/workflows/build-node-packages.yml index 202b620e626adc..99f0e35d375f57 100644 --- a/.github/workflows/build-node-packages.yml +++ b/.github/workflows/build-node-packages.yml @@ -53,9 +53,9 @@ jobs: - name: Extract resources run: | - docker create --name temp_node_fibers_extract node20_fibers_build - docker cp temp_node_fibers_extract:/usr/src/node/node-modules $GITHUB_WORKSPACE/node-modules - docker rm temp_node_fibers_extract + docker create --name temp_node_packages_extract node20_packages_build + docker cp temp_node_packages_extract:/usr/src/node/node-modules $GITHUB_WORKSPACE/node-modules + docker rm temp_node_packages_extract - name: Tar node-packages run: | From 9be07f06239a102ba66cfae54312b888bdd5a4c0 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 11:57:14 -0700 Subject: [PATCH 29/35] working on Dockerfile for fibers --- Dockerfile.Packages | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Dockerfile.Packages b/Dockerfile.Packages index bb4c377b99a78c..32634ee8c903bb 100644 --- a/Dockerfile.Packages +++ b/Dockerfile.Packages @@ -28,5 +28,8 @@ RUN npm i --nodedir="/usr/src/node/node-install/usr/local" bcrypt@5.1.0 RUN npm i --nodedir="/usr/src/node/node-install/usr/local" cld@2.9.1 RUN npm i --nodedir="/usr/src/node/node-install/usr/local" unix-dgram@2.0.6 +RUN ls +RUN ls node-modules + CMD ["bash"] From c7741d1520f4ddf63a9474875a24343b4d5bc51f Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 13:57:58 -0700 Subject: [PATCH 30/35] working on Dockerfile for fibers --- .github/workflows/build-node-packages.yml | 2 +- Dockerfile.Packages | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/build-node-packages.yml b/.github/workflows/build-node-packages.yml index 99f0e35d375f57..68a650b1ca02c6 100644 --- a/.github/workflows/build-node-packages.yml +++ b/.github/workflows/build-node-packages.yml @@ -54,7 +54,7 @@ jobs: - name: Extract resources run: | docker create --name temp_node_packages_extract node20_packages_build - docker cp temp_node_packages_extract:/usr/src/node/node-modules $GITHUB_WORKSPACE/node-modules + docker cp temp_node_packages_extract:/usr/src/node/node_modules $GITHUB_WORKSPACE/node_modules docker rm temp_node_packages_extract - name: Tar node-packages diff --git a/Dockerfile.Packages b/Dockerfile.Packages index 32634ee8c903bb..bb5c74497907cf 100644 --- a/Dockerfile.Packages +++ b/Dockerfile.Packages @@ -29,7 +29,7 @@ RUN npm i --nodedir="/usr/src/node/node-install/usr/local" cld@2.9.1 RUN npm i --nodedir="/usr/src/node/node-install/usr/local" unix-dgram@2.0.6 RUN ls -RUN ls node-modules +RUN ls node_modules CMD ["bash"] From 8ce5e409e1052a2286580b78b25434ade2ee108a Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 14:01:28 -0700 Subject: [PATCH 31/35] working on Dockerfile for fibers --- .github/workflows/build-node-packages.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/build-node-packages.yml b/.github/workflows/build-node-packages.yml index 68a650b1ca02c6..ba7f0e8e9c7b0f 100644 --- a/.github/workflows/build-node-packages.yml +++ b/.github/workflows/build-node-packages.yml @@ -59,6 +59,8 @@ jobs: - name: Tar node-packages run: | + ls + ls node_modules 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 From 47a567221acb419276a5c94316d172d8411ff9be Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 14:04:17 -0700 Subject: [PATCH 32/35] working on Dockerfile for fibers --- .github/workflows/build-node-packages.yml | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build-node-packages.yml b/.github/workflows/build-node-packages.yml index ba7f0e8e9c7b0f..99a38d5d4f9211 100644 --- a/.github/workflows/build-node-packages.yml +++ b/.github/workflows/build-node-packages.yml @@ -59,11 +59,9 @@ jobs: - name: Tar node-packages run: | - ls - ls node_modules - 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 + mv -p node_modules/bcrypt ./bcrypt@5.1.0/node_modules/bcrypt + mv -p node_modules/cld ./cld@2.9.1/node_modules/cld + mv -p 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 From 2b987bf6d1636475c0a81d30812e5f64a2dd5423 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Thu, 15 May 2025 14:08:24 -0700 Subject: [PATCH 33/35] working on Dockerfile for fibers --- .github/workflows/build-node-packages.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/build-node-packages.yml b/.github/workflows/build-node-packages.yml index 99a38d5d4f9211..2ef0171b59b0ae 100644 --- a/.github/workflows/build-node-packages.yml +++ b/.github/workflows/build-node-packages.yml @@ -59,9 +59,12 @@ jobs: - name: Tar node-packages run: | - mv -p node_modules/bcrypt ./bcrypt@5.1.0/node_modules/bcrypt - mv -p node_modules/cld ./cld@2.9.1/node_modules/cld - mv -p node_modules/unix-dgram ./unix-dgram@2.0.6/node_modules/unix-dgram + mkdir -p ./bcrypt@5.1.0/node_modules/bcrypt + mkdir -p ./cld@2.9.1/node_modules/cld + mkdir -p ./unix-dgram@2.0.6/node_modules/unix-dgram + 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 From e2f6592aefcea3f777222655a4f1c97d8935ac16 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Mon, 19 May 2025 10:00:25 -0700 Subject: [PATCH 34/35] Didn't mean to pull this into the branch --- .github/workflows/build-tarball.yml | 33 +++++++++++++++++++---------- 1 file changed, 22 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-tarball.yml b/.github/workflows/build-tarball.yml index a0c0004af7e293..4796b5b316ebe4 100644 --- a/.github/workflows/build-tarball.yml +++ b/.github/workflows/build-tarball.yml @@ -28,8 +28,11 @@ concurrency: cancel-in-progress: true env: - PYTHON_VERSION: '3.11' + PYTHON_VERSION: '3.12' FLAKY_TESTS: keep_retrying + CC: sccache clang + CXX: sccache clang++ + SCCACHE_GHA_ENABLED: 'true' permissions: contents: read @@ -37,15 +40,19 @@ permissions: jobs: build-tarball: if: github.event.pull_request.draft == false - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 + uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 with: python-version: ${{ env.PYTHON_VERSION }} + - name: Set up sccache + uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 + with: + version: v0.8.1 - name: Environment Information run: npx envinfo - name: Make tarball @@ -57,25 +64,29 @@ jobs: mkdir tarballs mv *.tar.gz tarballs - name: Upload tarball artifact - uses: actions/upload-artifact@c7d193f32edcb7bfad88892161225aeda64e9392 # v4.0.0 + uses: actions/upload-artifact@b4b15b8c7c6ac21ea08fcf65892d2ee8f75cf882 # v4.4.3 with: name: tarballs path: tarballs test-tarball-linux: needs: build-tarball - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - - uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 + - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: persist-credentials: false - name: Set up Python ${{ env.PYTHON_VERSION }} - uses: actions/setup-python@0a5c61591373683505ea898e09a3ea4f39ef2b9c # v5.0.0 + uses: actions/setup-python@0b93645e9fea7318ecaed2b359559ac225c90a2b # v5.3.0 with: python-version: ${{ env.PYTHON_VERSION }} + - name: Set up sccache + uses: mozilla-actions/sccache-action@9e326ebed976843c9932b3aa0e021c6f50310eb4 # v0.0.6 + with: + version: v0.8.1 - name: Environment Information run: npx envinfo - name: Download tarball - uses: actions/download-artifact@f44cd7b40bfd40b6aa1cc1b9b5b7bf03d3c67110 # v4.1.0 + uses: actions/download-artifact@fa0a91b85d4f404e444e00e005971372dc801d16 # v4.1.8 with: name: tarballs path: tarballs @@ -90,8 +101,8 @@ jobs: - name: Build run: | cd $TAR_DIR - make build-ci -j2 V=1 + make build-ci -j4 V=1 - name: Test run: | cd $TAR_DIR - make run-ci -j2 V=1 TEST_CI_ARGS="-p dots --node-args='--test-reporter=spec' --measure-flakiness 9" + make run-ci -j4 V=1 TEST_CI_ARGS="-p dots --node-args='--test-reporter=spec' --measure-flakiness 9" From 7522419f963b291b92452a169ac20bf1086037f8 Mon Sep 17 00:00:00 2001 From: Jack Strohm Date: Mon, 19 May 2025 10:01:20 -0700 Subject: [PATCH 35/35] accidental checkin --- @ | 106 -------------------------------------------------------------- 1 file changed, 106 deletions(-) delete mode 100644 @ diff --git a/@ b/@ deleted file mode 100644 index eef39b85a4ec04..00000000000000 --- a/@ +++ /dev/null @@ -1,106 +0,0 @@ -name: Build node-fibers with prebuilt Node - -on: - workflow_dispatch: - push: - branches: - - node20.18.3_dockerfile - -jobs: - build-fibers: - 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" - mv node-${{ env.NODE_VERSION }}-${{ matrix.platform }}-${{ matrix.arch }}-LATEST.tar.xz node.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 "Node Location: $GITHUB_WORKSPACE/node-install/usr/local/bin" - #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 - - #- name: Checkout node-fibers fork - #uses: actions/checkout@v3 - #with: - #repository: asana/node-fibers - #ref: jackstrohm_node20_fibers - #path: node-fibers - - - name: Download Dockerfile from GitHub API - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: | - curl -H "Authorization: token $GITHUB_TOKEN" -H "Accept: application/vnd.github.v3.raw" -o Dockerfile.Fibers https://api.github.com/repos/Asana/node/contents/Dockerfile.Fibers?ref=node20.18.3_dockerfile - cat Dockerfile.Fibers - - #- name: Build node-fibers - #working-directory: node-fibers - #run: | - #which node - #node -v - #node -p "process.arch" - #npm install --nodedir="$GITHUB_WORKSPACE/node-install/usr/local" - #npm test || true - #rm bin/repl - #find . - - - name: Execute the Dockerfile - run: | - docker build -t node20_fibers_build -f Dockerfile.Fibers . - - - name: Extract resources - working-directory: node-fibers - run: | - docker create --name temp_node_fibers_extract node20_fibers_build - docker cp temp_node_fibers_extract:/usr/src/node/node-fibers $GITHUB_WORKSPACE/node-fibers - docker rm temp_node_fibers_extract - - - name: Find and archive fibers.node - run: | - # Find the directory under bin/ that contains fibers.node - FIBERS_PATH=$(find ./node-fibers/bin -type f -name fibers.node | head -n1) - FIBERS_DIR=$(dirname "$FIBERS_PATH") - ARCHIVE_NAME=$(basename "$FIBERS_DIR").tar.gz - echo "ARCHIVE_NAME=$ARCHIVE_NAME" >> $GITHUB_ENV - tar -czf "$ARCHIVE_NAME" -C "$(dirname "$FIBERS_DIR")" "$(basename "$FIBERS_DIR")" - - - 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: ${{ env.ARCHIVE_NAME }} - env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}