Skip to content

Add manifest verification for downloaded AL symbol packages - #17

Merged
PropmanProphecy merged 2 commits into
mainfrom
copilot/add-verify-symbol-package-manifests-step
Sep 22, 2026
Merged

PropmanProphecy merged 2 commits into
mainfrom
copilot/add-verify-symbol-package-manifests-step

Conversation

Copilot AI commented Sep 22, 2026 •

Copy link
Copy Markdown
Contributor

This adds an early verification step to the build workflow to surface stale, malformed, or mismatched downloaded symbol packages before AL compilation. The immediate target is the class of failures where compilation breaks on missing PrintVis objects even though the dependency appears installed in QA_Feature.

  • Workflow guardrail

    • Inserts Verify downloaded symbol package manifests in the build job between symbol download and compile.
    • Leaves existing download, compile, artifact upload, and publish behavior unchanged.
  • Manifest inspection

    • Scans all *.app files in ${{ env.PACKAGE_CACHE }}.
    • Treats each .app as a NAV package by stripping the 40-byte header, writing the remaining payload to a temp .zip, and extracting under ${{ env.OUTPUT_FOLDER }}/manifest-check/<package-name>.
  • Failure visibility

    • Reads NavxManifest.xml for each package and reports:
      • File
      • SizeBytes
      • Id
      • Name
      • Publisher
      • Version
      • Error
    • Fails the job if:
      • no symbol packages were downloaded, or
      • any package cannot be extracted or parsed, or
      • required manifest fields are missing
  • Output shape

    • Prints the full package summary as a formatted table.
    • Reprints only failed entries before stopping the build.

Example of the added verification flow:

$appBytes = [System.IO.File]::ReadAllBytes($appFile.FullName)
$zipBytes = $appBytes[40..($appBytes.Length - 1)]
[System.IO.File]::WriteAllBytes($zipPath, $zipBytes)

[System.IO.Compression.ZipFile]::ExtractToDirectory($zipPath, $contentPath)

[xml] $manifest = Get-Content (Join-Path $contentPath "NavxManifest.xml") -Raw
$manifestApp = $manifest.NavxManifest.App

Co-authored-by: PropmanProphecy <8543071+PropmanProphecy@users.noreply.github.com>
@PropmanProphecy
PropmanProphecy marked this pull request as ready for review September 22, 2026 07:28
Copilot AI changed the title [WIP] Add step to verify downloaded symbol package manifests Add manifest verification for downloaded AL symbol packages Sep 22, 2026
@PropmanProphecy
PropmanProphecy merged commit f3c2025 into main Sep 22, 2026
1 check failed
@PropmanProphecy
PropmanProphecy deleted the copilot/add-verify-symbol-package-manifests-step branch September 22, 2026 07:29
@PropmanProphecy
PropmanProphecy restored the copilot/add-verify-symbol-package-manifests-step branch September 22, 2026 07:32
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants