Files
james.maesandCodex GPT-6 4c0ccc71f3 fix(releases): stabilize acceptance and pin verified signing builder (#37)
The protected releases encountered two blockers: the full111-test
Windows acceptance suite ran into its600-second process budget, and
Microsoft's signing action dependency installer conflicted with the
caller's NuGet source mapping. A subsequent completed run exposed an
immediate keyboard assertion reading jk before the required jkg value.

Allow900 seconds for each full published/installed suite and60 minutes
for all three suites plus packaging/update probes. Individual test
deadlines, assertions and filters remain unchanged. Keep the exact jkg
assertion, first awaiting that exact native textbox value within the
existing10-second deadline; FlaUI5.0.0's UntilInputIsProcessed only
sleeps100ms. Add this exact case to the focused hosted regression job.
No input is replayed and a genuinely lost key still fails.

Pin published immutable standards1.1.1
at96cbdf208a15c9c524676bd15ff9e323228a952b. The owner personally
reviewed its signing fix in PR44; it merged normally and production
builder release38322016784 succeeds. The fixed official dependency
staging verifies the exact package SHA256 and NuGet signatures without
changing application package source mapping, OIDC trust or signing
verification. Preserve only the previously approved exact Syft entry in
the setup plan, retaining restrictive container regression tests.

Refs #33. EXE/ZIP first, MSI next release (#36), following the latest
owner decision. No app release exists; preserved failed1.0.0 tags will
not be rewritten. New app candidates will use1.0.1/stable
and1.0.1-beta.1/dev after this reviewed exact-head CI passes.

Validation: zero-warning app/test builds and test formatting;42
process/registry/setup boundary tests pass, zero skips; configured
PowerShell analysis, actionlint, medium-and-above workflow security gate
and all commit hooks pass. The scan's five preexisting low
self-repository recommendations remain unchanged. Fresh full
native/published/installed hosted acceptance is running. Local baseline
and changed keyboard runs both stop earlier at missing FindText, so
neither verifies the hosted jkg fix. Temporary fixture diagnostics
removed; original user previews/profiles preserved.

Substantial AI assistance: Codex GPT-6. Genuine final-head maintainer
review under K22-AI-01 is required before merge. This PR contains no
application behavior change or weakened assertion.

---------

Signed-off-by: James Maes <james@kof22.com>
Co-authored-by: Codex GPT-6 <noreply@openai.com>
2026-10-12 19:05:50 -05:00

111 lines
5.1 KiB
YAML

# .NET build, test, coverage, and format gates (K22-CI-01, K22-CI-02, K22-TEST-10).
# Produces the required contexts `ci / build-test`, `ci / format`, and `ci / ui-tests`.
# The coverage gate holds the UI-free core at 100% line coverage.
name: ci
on:
pull_request:
push:
branches: [main]
workflow_call:
permissions: {}
concurrency:
group: ci-${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: ${{ github.event_name == 'pull_request' }}
jobs:
reader-regressions:
name: reader-regressions
runs-on: windows-latest
timeout-minutes: 10
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Set up .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
with:
global-json-file: global.json
- name: Build locked dependencies
shell: pwsh
run: |
dotnet restore MarkdownViewr.Windows.slnx -p:Platform=x64 --locked-mode
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
dotnet build MarkdownViewr.Windows.slnx -p:Platform=x64 -warnaserror --no-restore
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
- name: Verify native source, layout, pickers and print regressions
shell: pwsh
run: >-
dotnet test tests/MarkdownViewr.Windows.UiTests --no-build
--filter 'FullyQualifiedName~SourceHighlighting|FullyQualifiedName~Settings_NewWindowPanelDefaults|FullyQualifiedName~Settings_ContentsPresentation|FullyQualifiedName~Settings_ContentsTooltip|FullyQualifiedName~Themes_PalettePreviewAndDefaultChoice|FullyQualifiedName~Settings_PrintingDefaults|FullyQualifiedName~Settings_PrintingDraft|FullyQualifiedName~ThemeTransfer_NativePickerCancels|FullyQualifiedName~Print_UserWidthAndBorders|FullyQualifiedName~ReadingKeys_ScrollCommands|FullyQualifiedName~ReadingKeys_FindAndTextFocus|FullyQualifiedName~Source_ShowReloadAndHide|FullyQualifiedName~ThemeEditor_AllTypography|FullyQualifiedName~ThemeEditor_NewCustomTheme|FullyQualifiedName~Appearance_WidthCssAndPrint|FullyQualifiedName~Toolbar_ReadingCommandsAndMenus|FullyQualifiedName~Toolbar_EditorAndPrint|FullyQualifiedName~ThemeTransfer_BatchFutureInvalidAndDisabledExport|FullyQualifiedName~ReadingKeys_HeadingSequences|FullyQualifiedName~Source_BidirectionalScroll|FullyQualifiedName~Source_RawHtmlHeadingProvenance|FullyQualifiedName~Extensions_NativePreferences|FullyQualifiedName~Windows_LocalDocumentLinks|FullyQualifiedName~ActivationInboxTests|FullyQualifiedName~Outline_NestedCollapse'
--logger 'trx;LogFileName=reader-regressions.trx'
--results-directory artifacts/reader-regressions
- name: Retain native regression evidence
if: always()
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: reader-regression-results
path: |
artifacts/reader-regressions/*.trx
artifacts/installed-smoke-ui/*.png
artifacts/installed-smoke-ui/*.log
artifacts/installed-smoke-print/*.pdf
artifacts/installed-smoke-print/*.png
retention-days: 7
installed-updates:
name: installed-updates
runs-on: windows-latest
# Three complete UI suites plus packaging, installation and update probes.
timeout-minutes: 60
permissions:
contents: read
steps:
- name: Checkout
uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- name: Set up .NET
uses: actions/setup-dotnet@a98b56852c35b8e3190ac28c8c2271da59106c68 # v6.0.0
with:
global-json-file: global.json
- name: Install pinned Velopack and verify installed channels
shell: pwsh
run: |
$ErrorActionPreference = 'Stop'
$tools = Join-Path $env:RUNNER_TEMP 'installed-smoke-tools'
dotnet tool install vpk --version 1.2.161 --tool-path $tools
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
./build/Test-InstalledUpdates.ps1 -VpkPath (Join-Path $tools 'vpk.exe')
- name: Retain runtime evidence
if: always()
uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: installed-update-results
path: |
artifacts/installed-smoke-*/*.json
artifacts/installed-smoke-*/*.log
artifacts/installed-smoke-*/*.trx
artifacts/installed-smoke-*/*.png
artifacts/installed-smoke-*/*.pdf
retention-days: 7
ci:
uses: KofTwentyTwo/standards/.github/workflows/dotnet.yml@fdf5ed029603c938615a32b1beca3628b8787945 # v0.1.2
permissions:
contents: read # check out, build, and test; nothing is written
with:
solution: MarkdownViewr.Windows.slnx
platform: x64
coverage-packages: MarkdownViewr.Windows.Core
test-projects: |
tests/MarkdownViewr.Windows.Core.Tests
ui-test-projects: |
tests/MarkdownViewr.Windows.UiTests