Skip to content

feat: add Linux build job with Electron binary pre-extraction in CI #190

feat: add Linux build job with Electron binary pre-extraction in CI

feat: add Linux build job with Electron binary pre-extraction in CI #190

Workflow file for this run

name: CI
on:
push:
branches: [main, dev]
pull_request:
branches: [main, dev]
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
jobs:
lint:
name: Lint
runs-on: ubuntu-latest
permissions:
packages: read
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v6
with:
node-version: 26
cache: npm
registry-url: 'https://npm.pkg.github.com'
scope: '@openconduit'
- run: npm ci
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: npm run lint
typecheck:
name: Type Check
runs-on: ubuntu-latest
permissions:
packages: read
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v6
with:
node-version: 26
cache: npm
registry-url: 'https://npm.pkg.github.com'
scope: '@openconduit'
- run: npm ci
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- run: npx tsc --noEmit
build-linux:
name: Build Linux (x64)
runs-on: ubuntu-latest
timeout-minutes: 30
permissions:
packages: read
steps:
- uses: actions/checkout@v5
- uses: actions/setup-node@v6
with:
node-version: 26
cache: npm
registry-url: 'https://npm.pkg.github.com'
scope: '@openconduit'
- run: npm ci
env:
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Pre-extract Electron binary
run: |
mkdir -p /tmp/electron-dist
curl -fsSL "https://github.com/electron/electron/releases/download/v42.2.0/electron-v42.2.0-linux-x64.zip" \
-o /tmp/electron.zip
unzip -q /tmp/electron.zip -d /tmp/electron-dist
echo "ELECTRON_DIST_PATH=/tmp/electron-dist" >> $GITHUB_ENV
- name: Free disk space
run: |
sudo rm -rf /usr/local/lib/android /usr/share/dotnet /opt/ghc /usr/local/.ghcup /opt/hostedtoolcache/CodeQL
sudo apt-get clean
- name: Install Linux packaging deps
run: sudo apt-get install -y rpm fakeroot
- name: Build Linux x64
run: npm run make -- --platform linux --arch x64
env:
NODE_ENV: production
NODE_OPTIONS: --max-old-space-size=6144
- uses: actions/upload-artifact@v4
with:
name: openconduit-linux-x64-${{ github.sha }}
path: |
out/make/**/*.deb
out/make/**/*.rpm
if-no-files-found: error
retention-days: 7