From 44e46ef973c4addaf283337bae2c56350012b275 Mon Sep 17 00:00:00 2001 From: Christopher Manouvrier Date: Thu, 11 Jan 2024 13:22:18 +1100 Subject: [PATCH] feat: Add node 20,21 arm linux builds --- .../actions/linux-arm64-node-20/Dockerfile | 6 +++ .../actions/linux-arm64-node-20/action.yml | 12 ++++++ .../actions/linux-arm64-node-20/entrypoint.sh | 10 +++++ .../actions/linux-arm64-node-21/Dockerfile | 6 +++ .../actions/linux-arm64-node-21/action.yml | 12 ++++++ .../actions/linux-arm64-node-21/entrypoint.sh | 10 +++++ .github/workflows/build.yml | 38 +++++++++++++++++++ 7 files changed, 94 insertions(+) create mode 100644 .github/actions/linux-arm64-node-20/Dockerfile create mode 100644 .github/actions/linux-arm64-node-20/action.yml create mode 100755 .github/actions/linux-arm64-node-20/entrypoint.sh create mode 100644 .github/actions/linux-arm64-node-21/Dockerfile create mode 100644 .github/actions/linux-arm64-node-21/action.yml create mode 100755 .github/actions/linux-arm64-node-21/entrypoint.sh diff --git a/.github/actions/linux-arm64-node-20/Dockerfile b/.github/actions/linux-arm64-node-20/Dockerfile new file mode 100644 index 0000000..fa05197 --- /dev/null +++ b/.github/actions/linux-arm64-node-20/Dockerfile @@ -0,0 +1,6 @@ +FROM --platform=linux/arm64 node:20-buster + +RUN apt install python3 make gcc g++ + +COPY entrypoint.sh /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] diff --git a/.github/actions/linux-arm64-node-20/action.yml b/.github/actions/linux-arm64-node-20/action.yml new file mode 100644 index 0000000..df987ed --- /dev/null +++ b/.github/actions/linux-arm64-node-20/action.yml @@ -0,0 +1,12 @@ +name: 'Create a binary artifact for Node 20 on Linux on ARM64' +description: 'Create a binary artifact for Node 20 on Linux on ARM64 using node:20-buster' +inputs: + node-version: + description: 'Node.js version' + required: false + default: '20' +runs: + using: 'docker' + image: 'Dockerfile' + args: + - ${{inputs.node-version}} diff --git a/.github/actions/linux-arm64-node-20/entrypoint.sh b/.github/actions/linux-arm64-node-20/entrypoint.sh new file mode 100755 index 0000000..6243a26 --- /dev/null +++ b/.github/actions/linux-arm64-node-20/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +export USERNAME=`whoami` +export DEVELOPMENT_SKIP_GETTING_ASSET=true +npm i +npm run build --if-present +npm test +npm run save-to-github diff --git a/.github/actions/linux-arm64-node-21/Dockerfile b/.github/actions/linux-arm64-node-21/Dockerfile new file mode 100644 index 0000000..db031d0 --- /dev/null +++ b/.github/actions/linux-arm64-node-21/Dockerfile @@ -0,0 +1,6 @@ +FROM --platform=linux/arm64 node:21-bullseye + +RUN apt install python3 make gcc g++ + +COPY entrypoint.sh /entrypoint.sh +ENTRYPOINT ["/entrypoint.sh"] diff --git a/.github/actions/linux-arm64-node-21/action.yml b/.github/actions/linux-arm64-node-21/action.yml new file mode 100644 index 0000000..3dee8a4 --- /dev/null +++ b/.github/actions/linux-arm64-node-21/action.yml @@ -0,0 +1,12 @@ +name: 'Create a binary artifact for Node 21 on Linux on ARM64' +description: 'Create a binary artifact for Node 21 on Linux on ARM64 using node:21-bullseye' +inputs: + node-version: + description: 'Node.js version' + required: false + default: '21' +runs: + using: 'docker' + image: 'Dockerfile' + args: + - ${{inputs.node-version}} diff --git a/.github/actions/linux-arm64-node-21/entrypoint.sh b/.github/actions/linux-arm64-node-21/entrypoint.sh new file mode 100755 index 0000000..6243a26 --- /dev/null +++ b/.github/actions/linux-arm64-node-21/entrypoint.sh @@ -0,0 +1,10 @@ +#!/bin/sh + +set -e + +export USERNAME=`whoami` +export DEVELOPMENT_SKIP_GETTING_ASSET=true +npm i +npm run build --if-present +npm test +npm run save-to-github diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 257b6ed..ce8dc93 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -159,3 +159,41 @@ jobs: uses: ./.github/actions/linux-arm64-node-18/ env: GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + + build-linux-arm64-node-20: + name: Node.js 20 on Debian Buster on ARM64 + needs: create-release + runs-on: ubuntu-latest + continue-on-error: true + + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: arm64 + - name: Install, test, and create artifact + uses: ./.github/actions/linux-arm64-node-18/ + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}} + + build-linux-arm64-node-21: + name: Node.js 21 on Debian Buster on ARM64 + needs: create-release + runs-on: ubuntu-latest + continue-on-error: true + + steps: + - uses: actions/checkout@v3 + with: + submodules: true + - name: Set up QEMU + uses: docker/setup-qemu-action@v3 + with: + platforms: arm64 + - name: Install, test, and create artifact + uses: ./.github/actions/linux-arm64-node-18/ + env: + GITHUB_TOKEN: ${{secrets.GITHUB_TOKEN}}