Files
2026-07-13 12:46:20 +08:00

110 lines
3.9 KiB
YAML

# Simplified workflow using custom electerm-builder Docker image
name: linux-legacy-docker
on:
push:
branches: [ build, test, build-only, linux-legacy, legacy-build ]
workflow_dispatch:
jobs:
build:
runs-on: ubuntu-latest
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-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));
fs.unlinkSync('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: Verify updated dependencies
working-directory: /tmp/electerm_build
run: |
echo "Verifying updated dependencies:"
npm list electron --depth=0
npm list @electron/rebuild --depth=0
npm list node-pty --depth=0
npm list serialport --depth=0
npm list vite --depth=0
- 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-legacy