From 5cf385e717b973db38a057569afb5e2e043b54d9 Mon Sep 17 00:00:00 2001 From: Philip Peterson Date: Sat, 7 Dec 2024 04:24:15 -0900 Subject: [PATCH] wip --- .github/workflows/nodejs.yml | 149 +++++++++++++++++------------------ 1 file changed, 74 insertions(+), 75 deletions(-) diff --git a/.github/workflows/nodejs.yml b/.github/workflows/nodejs.yml index 0ae21f37..3fb1553f 100644 --- a/.github/workflows/nodejs.yml +++ b/.github/workflows/nodejs.yml @@ -121,78 +121,77 @@ jobs: path: ${{ steps.yarn-cache-dir-path.outputs.dir }} key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', 'app/yarn.lock') }} -# build-linux-arm: -# runs-on: self-hosted -# strategy: -# matrix: -# include: -# - name: armv7l -# cpu: cortex-a8 -# image: raspios_lite:latest -# - name: arm64 -# cpu: cortex-a53 -# image: raspios_lite_arm64:latest -# fail-fast: false -# steps: -# - name: Checkout -# uses: actions/checkout@v4 -# - name: Use Node.js ${{ env.NODE_VERSION }} -# uses: actions/setup-node@v4 -# with: -# node-version: ${{ env.NODE_VERSION }} -# - name: Fix node-gyp and Python -# run: python3 -m pip install packaging setuptools -# - name: Get yarn cache directory path -# id: yarn-cache-dir-path -# run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT -# - uses: actions/cache/restore@v4 -# with: -# path: ${{ steps.yarn-cache-dir-path.outputs.dir }} -# key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', 'app/yarn.lock') }} -# restore-keys: | -# ${{ runner.os }}-yarn- -# - name: Install -# run: | -# yarn install -# sudo apt update -# sudo apt install libarchive-tools -# - name: Compile -# run: yarn run build -# - name: rebuild node-pty -# uses: pguyot/arm-runner-action@v2.6.5 -# with: -# image_additional_mb: 2000 -# base_image: ${{ matrix.image }} -# cpu: ${{ matrix.cpu }} -# shell: bash -# copy_artifact_path: target/node_modules/node-pty -# copy_artifact_dest: target/node_modules -# commands: | -# wget https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-${{ matrix.name }}.tar.xz -# tar -xJf node-v18.16.0-linux-${{ matrix.name }}.tar.xz -# sudo cp node-v18.16.0-linux-${{ matrix.name }}/* /usr/local/ -R -# npm run rebuild-node-pty -# - name: chown node-pty -# run: | -# sudo chown -R $USER:$USER target/node_modules/node-pty -# - name: Prepare v8 snapshot -# if: matrix.name == 'armv7l' -# run: | -# sudo dpkg --add-architecture i386 -# sudo apt update -# sudo apt install -y libglib2.0-0:i386 libexpat1:i386 libgcc-s1:i386 -# npm_config_arch=armv7l yarn run v8-snapshot:arch -# - name: Build -# run: yarn run electron-builder -l deb rpm AppImage pacman --${{ matrix.name }} -c electron-builder-linux-ci.json -# env: -# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} -# - name: Archive Build Artifacts -# uses: LabhanshAgrawal/upload-artifact@v3 -# with: -# path: | -# dist/*.snap -# dist/*.AppImage -# dist/*.deb -# dist/*.rpm -# dist/*.pacman -# \ No newline at end of file + build-linux-arm: + runs-on: ubuntu-latest + strategy: + matrix: + include: + - name: armv7l + cpu: cortex-a8 + image: raspios_lite:latest + - name: arm64 + cpu: cortex-a53 + image: raspios_lite_arm64:latest + fail-fast: false + steps: + - name: Checkout + uses: actions/checkout@v4 + - name: Use Node.js ${{ env.NODE_VERSION }} + uses: actions/setup-node@v4 + with: + node-version: ${{ env.NODE_VERSION }} + - name: Fix node-gyp and Python + run: python3 -m pip install packaging setuptools + - name: Get yarn cache directory path + id: yarn-cache-dir-path + run: echo "dir=$(yarn cache dir)" >> $GITHUB_OUTPUT + - uses: actions/cache/restore@v4 + with: + path: ${{ steps.yarn-cache-dir-path.outputs.dir }} + key: ${{ runner.os }}-yarn-${{ hashFiles('yarn.lock', 'app/yarn.lock') }} + restore-keys: | + ${{ runner.os }}-yarn- + - name: Install + run: | + yarn install + sudo apt update + sudo apt install libarchive-tools + - name: Compile + run: yarn run build + - name: rebuild node-pty + uses: pguyot/arm-runner-action@v2.6.5 + with: + image_additional_mb: 2000 + base_image: ${{ matrix.image }} + cpu: ${{ matrix.cpu }} + shell: bash + copy_artifact_path: target/node_modules/node-pty + copy_artifact_dest: target/node_modules + commands: | + wget https://nodejs.org/dist/v18.16.0/node-v18.16.0-linux-${{ matrix.name }}.tar.xz + tar -xJf node-v18.16.0-linux-${{ matrix.name }}.tar.xz + sudo cp node-v18.16.0-linux-${{ matrix.name }}/* /usr/local/ -R + npm run rebuild-node-pty + - name: chown node-pty + run: | + sudo chown -R $USER:$USER target/node_modules/node-pty + - name: Prepare v8 snapshot + if: matrix.name == 'armv7l' + run: | + sudo dpkg --add-architecture i386 + sudo apt update + sudo apt install -y libglib2.0-0:i386 libexpat1:i386 libgcc-s1:i386 + npm_config_arch=armv7l yarn run v8-snapshot:arch + - name: Build + run: yarn run electron-builder -l deb rpm AppImage pacman --${{ matrix.name }} -c electron-builder-linux-ci.json + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + - name: Archive Build Artifacts + uses: LabhanshAgrawal/upload-artifact@v3 + with: + path: | + dist/*.snap + dist/*.AppImage + dist/*.deb + dist/*.rpm + dist/*.pacman