100 lines
3.6 KiB
YAML
100 lines
3.6 KiB
YAML
# Simplified workflow using custom electerm-builder Docker image
|
|
name: linux-arm-legacy-docker
|
|
|
|
on:
|
|
push:
|
|
branches: [ build, test, build-only, linux-arm-legacy, legacy-build ]
|
|
workflow_dispatch:
|
|
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-24.04-arm
|
|
container: zxdong262/electerm-builder-legacy:latest # This will be our custom image
|
|
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 legacy]') && !contains(github.event.head_commit.message, '[skip linux-arm-legacy]') }}
|
|
|
|
steps:
|
|
- name: Clone repository to /tmp and setup
|
|
run: |
|
|
cd /tmp
|
|
git clone https://github.com/electerm/electerm.git electerm_build
|
|
cd electerm_build
|
|
git checkout ${{ github.sha }}
|
|
|
|
# Configure npm to use /tmp for cache and global packages
|
|
mkdir -p /tmp/.npm /tmp/.npm-global
|
|
npm config set cache /tmp/.npm
|
|
npm config set prefix /tmp/.npm-global
|
|
export PATH="/tmp/.npm-global/bin:$PATH"
|
|
echo "PATH=/tmp/.npm-global/bin:$PATH" >> $GITHUB_ENV
|
|
echo "npm_config_cache=/tmp/.npm" >> $GITHUB_ENV
|
|
echo "npm_config_prefix=/tmp/.npm-global" >> $GITHUB_ENV
|
|
|
|
- name: Verify pre-installed versions
|
|
working-directory: /tmp/electerm_build
|
|
run: |
|
|
echo "=== Pre-installed versions ==="
|
|
node --version
|
|
npm --version
|
|
yarn --version
|
|
python3 --version
|
|
python --version
|
|
gcc --version
|
|
g++ --version
|
|
fpm --version
|
|
|
|
- name: Clear electron-builder cache
|
|
working-directory: /tmp/electerm_build
|
|
run: rm -rf ~/.cache/electron-builder
|
|
|
|
- name: ci init
|
|
working-directory: /tmp/electerm_build
|
|
run: npm config set legacy-peer-deps true
|
|
|
|
- name: Update electron version and remove package-lock
|
|
working-directory: /tmp/electerm_build
|
|
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'] = '0.10.1';
|
|
pkg.dependencies.serialport = '10.5.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
|
|
working-directory: /tmp/electerm_build
|
|
run: npm i && npm i -S @electron/rebuild@3.7.2
|
|
|
|
- name: Install R2 dependencies if needed
|
|
working-directory: /tmp/electerm_build
|
|
if: ${{ contains(github.event.head_commit.message, '[r2]') }}
|
|
run: npm i -D @aws-sdk/client-s3
|
|
|
|
- name: Build application
|
|
working-directory: /tmp/electerm_build
|
|
run: npm run b
|
|
|
|
- name: Run pb
|
|
working-directory: /tmp/electerm_build
|
|
run: npm run pb
|
|
|
|
- name: Build legacy packages
|
|
working-directory: /tmp/electerm_build
|
|
env:
|
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
BUILD_NUMBER: ${{ secrets.BUILD_NUMBER }}
|
|
USE_SYSTEM_FPM: true
|
|
WORKFLOW_NAME: ${{ github.workflow }}
|
|
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 }}
|
|
run: node build/bin/build-linux-arm-legacy
|