gnucash-on-windows future: Fix publish-ucrt64-repo action to report failures.

John Ralls jralls at code.gnucash.org
Mon Aug 24 14:05:03 EDT 2026


  discards  https://github.com/Gnucash/gnucash-on-windows/commit/06b1647e (commit)
Updated	 via  https://github.com/Gnucash/gnucash-on-windows/commit/f8e1584a (commit)

This update added new revisions after undoing existing revisions.  That is
to say, the old revision is not a strict subset of the new revision.  This
situation occurs when you --force push a change and generate a repository
containing something like this:

 * -- * -- B -- O -- O -- O (https://github.com/Gnucash/gnucash-on-windows/commit/06b1647e)
            \
             N -- N -- N (https://github.com/Gnucash/gnucash-on-windows/commit/f8e1584a)

When this happens we assume that you've already had alert emails for all
of the O revisions, and so we here report only the revisions in the N
branch from the common base, B.



commit f8e1584af08c940c3d77068fc56dcc9c2d4c3676
Author: John Ralls <jralls at ceridwen.us>
Date:   Mon Aug 24 10:35:14 2026 -0700

    Fix publish-ucrt64-repo action to report failures.

diff --git a/.github/actions/publish-ucrt64-repo/action.yml b/.github/actions/publish-ucrt64-repo/action.yml
index 7b01a32..3127b45 100644
--- a/.github/actions/publish-ucrt64-repo/action.yml
+++ b/.github/actions/publish-ucrt64-repo/action.yml
@@ -38,12 +38,18 @@ runs:
       run: |
         set -euo pipefail
         cd "${{ inputs.package-dir }}"
+        echo "::group::Contents of ${{ inputs.package-dir }} before repo-add"
+        ls -la
+        echo "::endgroup::"
         repo-add gnc-ucrt64.db.tar.zst *.pkg.tar.zst
         # repo-add normally symlinks the extensionless names to these; GitHub
         # Release assets don't reliably preserve symlinks, and pacman fetches
         # the repo by the extensionless name, so write real copies instead.
         cp -L gnc-ucrt64.db.tar.zst gnc-ucrt64.db
         cp -L gnc-ucrt64.files.tar.zst gnc-ucrt64.files
+        echo "::group::Contents of ${{ inputs.package-dir }} after repo-add"
+        ls -la
+        echo "::endgroup::"
 
     - name: Upload new/updated assets
       shell: pwsh
@@ -51,9 +57,22 @@ runs:
         GH_TOKEN: ${{ github.token }}
       run: |
         $assets = Get-ChildItem -Path '${{ inputs.package-dir }}' -File | ForEach-Object { $_.FullName }
-        gh release upload ${{ inputs.release-tag }} $assets --clobber *>$null
+        Write-Host "Found $($assets.Count) file(s) to publish in '${{ inputs.package-dir }}':"
+        $assets | ForEach-Object { Write-Host "  $_" }
+        if ($assets.Count -eq 0) {
+          Write-Error "No files found in '${{ inputs.package-dir }}' -- refusing to call gh with an empty file list, since gh release upload silently no-ops in that case instead of failing."
+          exit 1
+        }
+
+        gh release upload ${{ inputs.release-tag }} $assets --clobber
+        Write-Host "gh release upload exit code: $LASTEXITCODE"
         if ($LASTEXITCODE -ne 0) {
           gh release create ${{ inputs.release-tag }} $assets `
             --title "GnuCash ucrt64 dependency repo" `
             --notes "Auto-generated rolling pacman repository for ucrt64. Do not edit manually; updated incrementally by workflows under .github/workflows/."
+          Write-Host "gh release create exit code: $LASTEXITCODE"
+          if ($LASTEXITCODE -ne 0) {
+            Write-Error "gh release create failed (exit $LASTEXITCODE) after gh release upload also failed -- see output above for the actual error."
+            exit 1
+          }
         }



Summary of changes:
 .github/actions/publish-ucrt64-repo/action.yml | 15 +++++++++++++++
 1 file changed, 15 insertions(+)



More information about the gnucash-changes mailing list