111 lines
3.2 KiB
YAML
111 lines
3.2 KiB
YAML
# Alternative workflow using native ARM64 runners
|
|
name: linux-arm-native
|
|
|
|
on:
|
|
push:
|
|
branches: [ build, test, build-only, linux-arm ]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-24.04-arm
|
|
environment: build
|
|
if: ${{ !contains(github.event.head_commit.message, '[skip build]') && !contains(github.event.head_commit.message, '[skip ci]') && !contains(github.event.head_commit.message, '[skip arm-linux]') && !contains(github.event.head_commit.message, '[skip linux3]') }}
|
|
env:
|
|
# Force electron-builder to use the system fpm (ARM native) instead of downloading x86 prebuilt bundle
|
|
USE_SYSTEM_FPM: true
|
|
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
|
|
- name: Set up Node.js 16.x
|
|
uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 16.x
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.11'
|
|
|
|
- name: Install system dependencies
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y \
|
|
python3-dev \
|
|
build-essential \
|
|
libnss3-dev \
|
|
libsecret-1-dev \
|
|
fakeroot \
|
|
rpm \
|
|
libgtk-3-0 \
|
|
libnotify4 \
|
|
libnss3 \
|
|
libxss1 \
|
|
libxtst6 \
|
|
xdg-utils \
|
|
libatspi2.0-0 \
|
|
libuuid1 \
|
|
libsecret-1-0 \
|
|
libappindicator3-1 \
|
|
ruby-full
|
|
|
|
- name: Install FPM
|
|
run: sudo gem install fpm
|
|
|
|
- name: Verify glibc version
|
|
run: ldd --version
|
|
|
|
- name: Verify fpm
|
|
run: |
|
|
which fpm
|
|
fpm --version
|
|
|
|
- name: Install yarn
|
|
run: npm install -g yarn
|
|
|
|
- name: ci init
|
|
run: npm config set legacy-peer-deps true
|
|
|
|
- name: Clear electron-builder cache
|
|
run: rm -rf ~/.cache/electron-builder
|
|
|
|
- name: Update electron version and remove package-lock
|
|
run: |
|
|
node -e "
|
|
const fs = require('fs');
|
|
const pkg = JSON.parse(fs.readFileSync('package.json'));
|
|
pkg.devDependencies.electron = '22.3.27';
|
|
pkg.devDependencies['electron-builder'] = '26.0.20';
|
|
pkg.devDependencies['@electron/rebuild'] = '3.7.2';
|
|
pkg.dependencies['node-pty'] = '1.1.0-beta14';
|
|
pkg.dependencies.serialport = '13.0.0';
|
|
pkg.devDependencies.vite = '4';
|
|
pkg.devDependencies['@vitejs/plugin-react'] = '4.7.0';
|
|
fs.writeFileSync('package.json', JSON.stringify(pkg, null, 2));
|
|
"
|
|
rm -f package-lock.json
|
|
|
|
- name: Install npm dependencies
|
|
run: npm i && npm i -S @electron/rebuild@3.7.2
|
|
|
|
- name: Install R2 dependencies if needed
|
|
if: ${{ contains(github.event.head_commit.message, '[r2]') }}
|
|
run: npm i -D @aws-sdk/client-s3
|
|
|
|
- name: Build application
|
|
run: npm run b
|
|
|
|
- name: Run pb
|
|
run: npm run pb
|
|
|
|
- name: Build ARM64 packages
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
CF_R2_ACCOUNT_ID: ${{ secrets.CF_R2_ACCOUNT_ID }}
|
|
CF_R2_BUCKET: ${{ secrets.CF_R2_BUCKET }}
|
|
CF_R2_ACCESS_KEY_ID: ${{ secrets.CF_R2_ACCESS_KEY_ID }}
|
|
CF_R2_SECRET_ACCESS_KEY: ${{ secrets.CF_R2_SECRET_ACCESS_KEY }}
|
|
BUILD_NUMBER: ${{ secrets.BUILD_NUMBER }}
|
|
WORKFLOW_NAME: ${{ github.workflow }}
|
|
run: node build/bin/build-linux-arm |