Skip to content

Keep notice broadcast controls inside the user toolbar #66

Keep notice broadcast controls inside the user toolbar

Keep notice broadcast controls inside the user toolbar #66

Workflow file for this run

name: Validate
on:
pull_request:
push:
branches:
- main
permissions:
contents: read
concurrency:
group: validate-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
validate:
runs-on: windows-latest
timeout-minutes: 20
env:
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24: true
steps:
- name: Checkout
uses: actions/checkout@d23441a48e516b6c34aea4fa41551a30e30af803 # v6.1.0
- name: Setup Node
uses: actions/setup-node@249970729cb0ef3589644e2896645e5dc5ba9c38 # v6.5.0
with:
node-version: 24
cache: npm
- name: Validate repository hygiene
run: npm run validate:repo
- name: Install
run: npm ci
- name: Validate bundled Mihomo
run: npm run validate:mihomo
- name: Typecheck
run: npm run typecheck
- name: Test
# Avoid a PowerShell 7 module path while retaining the runner's prewarmed PS5 analysis cache.
# Spawn contracts and a lightweight real child prove production still scrubs both settings.
shell: cmd
run: |
if not defined PSModuleAnalysisCachePath (
echo ERROR: GitHub runner PS5 analysis cache is unavailable.
exit /b 1
)
if /I "%PSModuleAnalysisCachePath%"=="NUL" (
echo ERROR: GitHub runner PS5 analysis cache is disabled.
exit /b 1
)
if not exist "%PSModuleAnalysisCachePath%" (
echo ERROR: GitHub runner PS5 analysis cache file does not exist.
exit /b 1
)
set "PSModulePath="
node node_modules\vitest\vitest.mjs run --exclude tests/main/updateInstallerLauncher.test.ts --exclude tests/main/manageInstalledProcessScript.test.ts
if errorlevel 1 exit /b 1
node node_modules\vitest\vitest.mjs run tests/main/manageInstalledProcessScript.test.ts
if errorlevel 1 exit /b 1
node node_modules\vitest\vitest.mjs run tests/main/updateInstallerLauncher.test.ts
if errorlevel 1 exit /b 1
- name: Test Worker maintenance
run: npm run test:worker
- name: Typecheck Worker
run: npm run typecheck:worker
- name: Build Worker
run: npm run build:worker
- name: Lint
run: npm run lint --if-present
- name: Check formatting
run: npm run format:check --if-present
- name: Build
run: npm run build