From 3885b61e6b35c1dbcc8d08f411d9e1273ead4ed1 Mon Sep 17 00:00:00 2001
From: skylartaylor <26588250+skylartaylor@users.noreply.github.com>
Date: Fri, 16 Oct 2026 05:25:18 +0200
Subject: [PATCH] ci: retain LightCraft installer and package checks
---
.github/workflows/freebsd.yml | 1 +
.github/workflows/packaging-lint.yml | 16 ++++++++++++++++
packaging/check-app-specific.sh | 24 ++++++++++++++++++++++++
3 files changed, 41 insertions(+)
create mode 100644 packaging/check-app-specific.sh
diff --git a/.github/workflows/freebsd.yml b/.github/workflows/freebsd.yml
index bdfdc21c1..5fc2092a9 100644
--- a/.github/workflows/freebsd.yml
+++ b/.github/workflows/freebsd.yml
@@ -32,4 +32,5 @@ jobs:
# Intentionally tracked at @main (not SHA-pinned) so org-wide CI improvements, security fixes, and build optimizations propagate without PR churn across all craftapp repos.
uses: storytold/craft-common-actions/.github/workflows/freebsd.yml@main
with:
+ require-craft-fonts: true
craft-fonts-ref: 3d9ab3a132ed0eff457e424226a435a901da30d3
diff --git a/.github/workflows/packaging-lint.yml b/.github/workflows/packaging-lint.yml
index f54b0538b..71d3b3063 100644
--- a/.github/workflows/packaging-lint.yml
+++ b/.github/workflows/packaging-lint.yml
@@ -21,3 +21,19 @@ jobs:
lint:
# Intentionally tracked at @main (not SHA-pinned) so org-wide CI improvements, security fixes, and build optimizations propagate without PR churn across all craftapp repos.
uses: storytold/craft-common-actions/.github/workflows/packaging-lint.yml@main
+ with:
+ extra-checks-script: packaging/check-app-specific.sh
+
+ windows-install-folder:
+ runs-on: windows-latest
+ timeout-minutes: 10
+ steps:
+ - uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
+ - name: Install WiX
+ shell: pwsh
+ run: dotnet tool install --global wix --version 5.0.2
+ - name: Install-folder fallback and precedence (real MSI AppSearch)
+ shell: pwsh
+ run: |
+ ./packaging/windows/test-install-folder.ps1 -Arch x64
+ ./packaging/windows/test-install-folder.ps1 -Arch x86
diff --git a/packaging/check-app-specific.sh b/packaging/check-app-specific.sh
new file mode 100644
index 000000000..c14ca5725
--- /dev/null
+++ b/packaging/check-app-specific.sh
@@ -0,0 +1,24 @@
+#!/usr/bin/env bash
+# App-specific installer and package assertions retained alongside shared packaging lint.
+set -euo pipefail
+cd "$(dirname "${BASH_SOURCE[0]}")/.."
+
+for want in '' 'Value="InstallDirDlg"' '' \
+ 'Key="Software\LightCraft" Name="InstallFolder"' 'Value="LaunchLightcraft"'; do
+ grep -qF "$want" packaging/windows/lightcraft.wxs || { echo "::error::lightcraft.wxs lost: $want"; exit 1; }
+done
+grep -qF '' packaging/windows/lightcraft.wxs \
+ || { echo "::error::ExitDialog is not referenced; installs and removes end without a completion dialog"; exit 1; }
+
+python3 - <<'PYEOF'
+import yaml
+manifests = []
+for name in ("ai.storyteller.lightcraft.yml", "ai.storyteller.lightcraft.bundle.yml"):
+ with open("packaging/linux/flatpak/" + name) as source:
+ manifest = yaml.safe_load(source)
+ assert manifest["id"] == "ai.storyteller.lightcraft" and manifest["command"] == "lightcraft", name
+ manifests.append(manifest)
+for key in ("runtime", "runtime-version", "sdk", "finish-args"):
+ assert manifests[0][key] == manifests[1][key], f"Flatpak manifests disagree on {key}"
+print("LightCraft package identity ok")
+PYEOF