Skip to content

npm(deps): Bump the production-dependencies group across 1 directory with 7 updates #121

npm(deps): Bump the production-dependencies group across 1 directory with 7 updates

npm(deps): Bump the production-dependencies group across 1 directory with 7 updates #121

Workflow file for this run

name: Node.js CI (Windows) 🪟
# Modeled after the Lemonade SDK CI pattern:
# - Self-hosted Windows runners
# - Process cleanup before/after (critical for persistent self-hosted state)
# - Single consolidated job for efficiency on self-hosted
on:
push:
branches: [main, develop]
paths:
- 'src/**'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- 'tsconfig.electron.json'
- '.github/workflows/nodejs-ci.yml'
pull_request:
branches: [main, develop]
paths:
- 'src/**'
- 'package.json'
- 'package-lock.json'
- 'tsconfig.json'
- 'tsconfig.electron.json'
- '.github/workflows/nodejs-ci.yml'
workflow_dispatch:
permissions:
contents: read
jobs:
# ========================================================================
# BUILD & TEST - Self-hosted Windows runner
# ========================================================================
build-and-test:
name: Build & Test (Windows)
runs-on: [self-hosted, Windows]
env:
NODE_ENV: production
PYTHONIOENCODING: utf-8
steps:
- uses: actions/checkout@v4
with:
clean: true
- name: Cleanup processes (pre-build)
uses: ./.github/actions/cleanup-processes-windows
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
shell: PowerShell
run: |
$ErrorActionPreference = "Stop"
Write-Host "Installing npm dependencies..." -ForegroundColor Cyan
npm ci
if ($LASTEXITCODE -ne 0) {
Write-Host "ERROR: npm ci failed!" -ForegroundColor Red
exit $LASTEXITCODE
}
Write-Host "Dependencies installed successfully!" -ForegroundColor Green
- name: Run ESLint
shell: PowerShell
run: |
Write-Host "Running ESLint..." -ForegroundColor Cyan
npm run lint
if ($LASTEXITCODE -ne 0) {
Write-Host "WARNING: ESLint found issues" -ForegroundColor Yellow
} else {
Write-Host "ESLint passed!" -ForegroundColor Green
}
continue-on-error: true
- name: TypeScript compilation check
shell: PowerShell
run: |
$ErrorActionPreference = "Stop"
Write-Host "Running TypeScript type check..." -ForegroundColor Cyan
npx tsc --noEmit
if ($LASTEXITCODE -ne 0) {
Write-Host "ERROR: TypeScript compilation failed!" -ForegroundColor Red
exit $LASTEXITCODE
}
Write-Host "TypeScript compilation passed!" -ForegroundColor Green
- name: Run tests
shell: PowerShell
run: |
Write-Host "Running tests..." -ForegroundColor Cyan
npm test
if ($LASTEXITCODE -ne 0) {
Write-Host "WARNING: Tests had failures" -ForegroundColor Yellow
} else {
Write-Host "All tests passed!" -ForegroundColor Green
}
continue-on-error: true
- name: Build application
shell: PowerShell
run: |
$ErrorActionPreference = "Stop"
Write-Host "Building application..." -ForegroundColor Cyan
npm run build
if ($LASTEXITCODE -ne 0) {
Write-Host "ERROR: Build failed!" -ForegroundColor Red
exit $LASTEXITCODE
}
Write-Host "Build successful!" -ForegroundColor Green
- name: Upload build artifacts
uses: actions/upload-artifact@v4
with:
name: build-artifacts
path: dist/
retention-days: 7
- name: Cleanup processes (post-build)
if: always()
uses: ./.github/actions/cleanup-processes-windows