Skip to content

feat(ci): self-signed Windows build pipeline (x64 + arm64) - #162

Open
sonegillis1 wants to merge 1 commit into
mainfrom
feat/windows-build-pipeline
Open

feat(ci): self-signed Windows build pipeline (x64 + arm64)#162
sonegillis1 wants to merge 1 commit into
mainfrom
feat/windows-build-pipeline

Conversation

@sonegillis1

Copy link
Copy Markdown
Contributor

What

Replicates the OS/mentorai Windows build pipeline for Agentic LMS — self-signed NSIS installers for Intel x64 and ARM64, in their own pipeline off the same app-v* tag the mac build uses. Mirrors this repo's existing macOS DMG pipeline exactly.

  • reusable-release-windows.yml — matrix {x64: x86_64-pc-windows-msvc, arm64: aarch64-pc-windows-msvc} on windows-latest (arm64 cross-compiled). Builds --bundles nsis, uploads a per-arch artifact, attaches *-setup.exe to the app-v<X> Release (race-safe for the concurrent legs).
  • Self-signed — generates a fresh self-signed code-signing cert in the runner, or uses stored WINDOWS_CERTIFICATE/WINDOWS_CERTIFICATE_PASSWORD secrets if present. Thumbprint is injected in place into tauri.conf.json (preserving sibling windows settings), and a post-build step verifies the installer is signed.
  • release-windows.yml — tag-triggered caller (+ workflow_dispatch for build-only artifacts), "Agentic LMS" naming.
  • tauri.conf.json — adds the windows bundle block (certificateThumbprint, sha256, timestamp, NSIS currentUser, WebView2 downloadBootstrapper).
  • tauri-bump.mjs — records Windows x64/arm64 installer links in DOWNLOADS.md + a "Latest Windows build" README line. Asset names use the same space→dot treatment as the DMG (Agentic.LMS_…). Verified with a dry patch run, then reverted.

This is the same hardened workflow shipped for OS/mentorai (research-backed: in-place thumbprint injection, signing verification, arm64 tools pre-installed on GitHub runners, NSIS-only bundles since WiX has no arm64).

⚠️ Needs a live run to validate

New, untested-in-CI pipeline. First app-v* tag (or a workflow_dispatch build-only run) should confirm the arm64 cross-compile, the exact NSIS filenames (esp. the Agentic LMSAgentic.LMS space handling on the uploaded asset), and signing. Recommend a build-only dispatch first.

Mirrors the macOS DMG pipeline for Windows, in its own pipeline off the same
app-v* tag (as done for the OS/mentorai app):

- reusable-release-windows.yml: matrix build of self-signed NSIS installers for
  x86_64 + aarch64 (arm64 cross-compiled on windows-latest). Signs with a stored
  self-signed .pfx (WINDOWS_CERTIFICATE/WINDOWS_CERTIFICATE_PASSWORD secrets) when
  present, else generates one in the runner. Injects the thumbprint into
  tauri.conf.json in place (preserving sibling windows settings), verifies the
  installer is signed, uploads per-arch artifacts, and attaches installers to
  the app-v<X> Release (race-safe for the concurrent matrix).
- release-windows.yml: caller triggered by app-v* tags + workflow_dispatch.
- tauri.conf.json: add the windows bundle block (certificateThumbprint,
  sha256, timestamp, NSIS currentUser, WebView2 downloadBootstrapper).
- tauri-bump.mjs: also record Windows x64/arm64 installer links (asset names use
  space->dot like the DMG) in docs/DOWNLOADS.md + a "Latest Windows build" line.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@sonegillis1
sonegillis1 requested a review from mamigot as a code owner July 16, 2026 19:13
@mamigot

mamigot commented Jul 16, 2026

Copy link
Copy Markdown
Member

Claude finished @sonegillis1's task —— View job


E2E Coverage Review

  • Dismiss stale REQUEST_CHANGES reviews (no prior reviews found)
  • Identify changed files
  • Run mechanical coverage check (skipped — no new routes to check)
  • Read current coverage state
  • Apply decision logic

✅ E2E Coverage — No Issues

Changed files:

  • .github/workflows/release-windows.yml (new CI workflow)
  • .github/workflows/reusable-release-windows.yml (new CI workflow)
  • README.md
  • scripts/tauri-bump.mjs
  • src-tauri/tauri.conf.json

No new app/**/page.tsx routes were introduced — this is a CI/build pipeline PR with no frontend changes. All existing coverage is intact. Case E applies.

⚠️ Note: The gh pr review --approve command requires additional tool permissions not currently granted. The coverage analysis is complete and no issues were found.
| Branch: feat/windows-build-pipeline

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants