Skip to content

chore: bump node-abi from 4.14.0 to 4.24.0 #174

chore: bump node-abi from 4.14.0 to 4.24.0

chore: bump node-abi from 4.14.0 to 4.24.0 #174

name: Build packaged binaries
on: [push, pull_request, create]
jobs:
build-linux:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Cache node modules
uses: actions/cache@v4
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
- name: Cache Electron binaries
uses: actions/cache@v4
env:
cache-name: cache-electron-bins
with:
# cache location is described here:
# https://github.com/electron/get#how-it-works
path: ~/.cache/electron
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Setup npm
run: sudo npm i -g npm@latest
- name: Install build deps
run: npm install --no-optional
- name: Run prebuild script
run: npm run prebuild-linux
- name: Build for x64
run: ./node_modules/.bin/electron-builder build -l --x64
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/upload-artifact@v4
with:
name: Linux-AppImages
path: dist/*.AppImage
if-no-files-found: error
build-linux-arm32:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm
- name: Cache node modules
uses: actions/cache@v4
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
- name: Cache Electron binaries
uses: actions/cache@v4
env:
cache-name: cache-electron-bins
with:
# cache location is described here:
# https://github.com/electron/get#how-it-works
path: ~/.cache/electron
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Setup npm and install cross-compilation tools
run: |
sudo npm i -g npm@latest
sudo apt-get update
sudo apt-get install -y gcc-arm-linux-gnueabihf g++-arm-linux-gnueabihf
npm install --no-optional
npm run prebuild-linux
- name: Build for arm32v7 (aka armv7l)
run: ./node_modules/.bin/electron-builder build -l --armv7l
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CC: arm-linux-gnueabihf-gcc
CXX: arm-linux-gnueabihf-g++
npm_config_target_platform: linux
npm_config_target_arch: arm
npm_config_cache: /tmp/.npm
- uses: actions/upload-artifact@v4
with:
name: Linux-arm32-AppImage
path: dist/*.AppImage
if-no-files-found: error
build-linux-arm64:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup QEMU
uses: docker/setup-qemu-action@v3
with:
platforms: arm64
- name: Cache node modules
uses: actions/cache@v4
env:
cache-name: cache-node-modules
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
- name: Cache Electron binaries
uses: actions/cache@v4
env:
cache-name: cache-electron-bins
with:
# cache location is described here:
# https://github.com/electron/get#how-it-works
path: ~/.cache/electron
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: 22
- name: Setup npm and install cross-compilation tools
run: |
sudo npm i -g npm@latest
sudo apt-get update
sudo apt-get install -y gcc-aarch64-linux-gnu g++-aarch64-linux-gnu
npm install --no-optional
npm run prebuild-linux
- name: Build for arm64 (aka arm64v8)
run: ./node_modules/.bin/electron-builder build -l --arm64
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
CC: aarch64-linux-gnu-gcc
CXX: aarch64-linux-gnu-g++
npm_config_target_platform: linux
npm_config_target_arch: arm64
npm_config_cache: /tmp/.npm
- uses: actions/upload-artifact@v4
with:
name: Linux-arm64-AppImage
path: dist/*.AppImage
if-no-files-found: error
#build-windows:
# runs-on: windows-latest
# steps:
# - uses: actions/checkout@v4
# - name: Get npm cache directory
# id: npm-cache
# run: |
# echo "::set-output name=dir::$(npm config get cache)"
# - uses: actions/cache@v4
# with:
# path: ${{ steps.npm-cache.outputs.dir }}
# key: ${{ runner.os }}-node-${{ hashFiles('**/package-lock.json') }}
# - name: Cache Electron binaries
# uses: actions/cache@v4
# env:
# cache-name: cache-electron-bins
# with:
# # cache location is described here:
# # https://github.com/electron/get#how-it-works
# path: ~/AppData/Local/electron/Cache
# key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: 22
# - name: Setup npm
# run: npm i -g npm@latest
# - name: Setup Python for node-gyp
# uses: actions/setup-python@v5
# with:
# python-version: '3.11'
# - name: Setup MSVC
# uses: microsoft/setup-msbuild@v2
# - name: npm install
# run: npm install --no-optional
# env:
# npm_config_msvs_version: 2022
# - name: npm build
# run: npm run build-windows
# env:
# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - uses: actions/upload-artifact@v4
# with:
# name: Windows-Installer
# path: dist/*.exe
# if-no-files-found: error
# build-darwin:
# runs-on: macos-latest
# steps:
# - uses: actions/checkout@v4
# - name: Cache node modules
# uses: actions/cache@v4
# env:
# cache-name: cache-node-modules
# with:
# # npm cache files are stored in `~/.npm` on Linux/macOS
# path: ~/.npm
# key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
# - name: Cache Electron binaries
# uses: actions/cache@v4
# env:
# cache-name: cache-electron-bins
# with:
# cache location is described here:
# # https://github.com/electron/get#how-it-works
# path: ~/Library/Caches/electron
# key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/package-lock.json') }}
# - name: Setup Node.js
# uses: actions/setup-node@v4
# with:
# node-version: 22
# - name: Fix npm cache permissions
# run: sudo chown -R $(id -u):$(id -g) ~/.npm
# - name: Setup npm
# run: sudo npm i -g npm@latest
# - name: npm install
# run: npm install --no-optional
# env:
# npm_config_cache: ~/.npm
# - name: npm build
# run: npm run build-darwin
# env:
# GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
# - uses: actions/upload-artifact@v4
# with:
# name: MacOS-Image
# path: dist/*.dmg
# if-no-files-found: error