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>
111 lines
5.1 KiB
YAML
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
|