Repository navigation
84 lines (81 loc) · 3.35 KB
/
Copy pathwindows.yml
File metadata and controls
84 lines (81 loc) · 3.35 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
name: Windows bundle
on:
pull_request:
paths:
- "scripts/windows-*"
- "scripts/build-windows.ps1"
- ".github/workflows/windows.yml"
- "package*.json"
- "src/windows-*"
- "src/setup-*"
- "test/windows-*"
workflow_dispatch:
release:
types: [published]
permissions:
contents: read
jobs:
build:
runs-on: windows-latest
permissions:
contents: read
id-token: write
attestations: write
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7
with:
persist-credentials: false
- uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: 22
package-manager-cache: false
- run: npm ci --omit=dev
- name: Verify launchers without an installed .NET runtime
run: node --test test/windows-bundle-smoke.test.js
- name: Build and smoke-test EXE bundle
shell: pwsh
run: ./scripts/build-windows.ps1
- name: Packaged WebUI first-run and provider activation screenshots
shell: pwsh
run: |
npm install --no-save --package-lock=false playwright-core
New-Item -ItemType Directory -Force windows-webui-evidence | Out-Null
$version = (Get-Content package.json | ConvertFrom-Json).version
node scripts/windows-webui-e2e.js "dist/windows/nowplaying-v$version-windows-x64" windows-webui-evidence
- name: Upload Windows WebUI evidence
if: always()
uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: nowplaying-windows-webui-evidence
path: windows-webui-evidence/*.png
if-no-files-found: warn
retention-days: 14
- name: Credential Manager round-trip
run: node --test test/windows-credential-adapter.test.js
- name: Native setup window self-test
run: node --test test/windows-setup-ui.test.js
- name: Start from the setup config (Credential Manager round trip)
run: node --test test/windows-start-config.test.js
- name: Discord IPC over a named pipe
run: node --test test/discord-ipc.test.js
- name: Start with Windows shortcut (write, read back, remove)
run: node --test test/windows-startup.test.js
- name: Tray menu self-test
run: node --test test/windows-tray.test.js
- name: Installer stop path against a real running app
run: node --test test/windows-entry-shutdown.test.js
- name: Updater hostile fixtures on Windows (bad digest, oversized body, redirect, channel, interrupted replacement)
run: node --test test/update-check.test.js test/update-download.test.js test/update-install.test.js test/auto-updater.test.js test/update-windows-e2e.test.js
- name: Attest published Windows bundles
if: ${{ github.event_name == 'release' && github.event.repository.visibility == 'public' }}
uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4
with:
subject-path: |
dist/windows/*.exe
dist/windows/*.zip
- uses: actions/upload-artifact@ea165f8d65b6e75b540449e92b4886f43607fa02 # v4
with:
name: nowplaying-windows-x64
path: dist/windows/*.zip
if-no-files-found: error
retention-days: 14