ci: add Windows quality and packaging gates

Teach ESLint the classic renderer and mixed CommonJS harness runtimes while retaining actionable rules. Add deterministic credential, lockfile, release-manifest, and lint contracts plus equivalent GitHub and Gitea Windows pipelines. Gate clean installs, focused offline smoke coverage, builds, packaged launches, and silent installer verification without enabling authenticated network tests.
This commit is contained in:
Sucukdeluxe
2026-08-12 02:32:07 +02:00
parent e5114b814f
commit 66e84508c8
21 changed files with 708 additions and 39 deletions
+60
View File
@@ -0,0 +1,60 @@
name: Windows CI
on:
push:
pull_request:
workflow_dispatch:
permissions:
contents: read
jobs:
verify:
runs-on: windows-latest
env:
CI: 'true'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '22.13.0'
cache: npm
- name: Clean install
run: npm ci
timeout-minutes: 10
- name: Lint
run: npm run lint
timeout-minutes: 10
- name: Lint configuration contract
run: npm run test:lint-config
timeout-minutes: 10
- name: Security contracts
run: npm run security:check
timeout-minutes: 10
- name: Security regression tests
run: npm run test:security
timeout-minutes: 10
- name: CI contract
run: npm run test:ci-contract
timeout-minutes: 10
- name: Unit tests
run: npm run test:unit
timeout-minutes: 10
- name: Focused Electron smoke
run: npm run test:e2e:focused
timeout-minutes: 10
- name: Build
run: npm run build
timeout-minutes: 10
- name: Package directory
run: npm run pack
timeout-minutes: 10
- name: Packaged launch smoke
run: npm run test:packaged-launch
timeout-minutes: 10
- name: Build installer
run: npm run dist:ci
timeout-minutes: 10
- name: Installer smoke
run: npm run test:installer
timeout-minutes: 10