GeezerVison is showing github.com — ci: verify packaging produced every configured artifact by setchy · Pull Request #3663 · gitify-app/gitify
Conversation
setchy
commented
Nov 9, 2026
•
edited
Loading
Uh oh!
There was an error while loading. Please reload this page.
Summary
Closes the remaining gap in the release pipeline, without maintaining a second copy of the target configuration.
-
electron-builder.js now registers artifactBuildCompleted and afterAllArtifactBuild:
artifactBuildCompleted records every platform:target that emitted an artifact.
afterAllArtifactBuild walks buildResult.platformToTargets — the targets electron-builder actually planned — and throws for any target that never emitted one.
The check reads the same file the packager reads, so adding or removing a target needs no matching change here. Only dir is skipped, because it produces the unpacked app rather than something to upload.
-
upload-artifact uses if-no-files-found: error instead of the default warning, with !dist/*/ excluding directories — so a job that only produced an unpacked app fails instead of uploading nothing.
-
publish-release refuses to publish a draft with no assets, so an empty release can never go out.
Why
verifyPackagedDependencies and verifyFuses both stop at the unpacked app. Electron can pack successfully and still fail to build a distributable, and upload-artifact treats an empty match as a warning — so a platform job could go green with nothing to download, and the release would still publish. That is precisely the failure mode that left a sibling project without Windows installers for seven releases.
Notes
- No target→extension table: the hook compares produced artifacts against the planned targets, so
dmg/zip/exe/AppImage/deb/rpm are covered implicitly and a new target is covered automatically.
- Verified the hooks with simulated electron-builder payloads: all targets emitting passes; a missing RPM fails with
electron-builder produced no artifact for: linux/rpm; nothing emitting names every planned target; a dir-only build passes the hook and is then stopped by the upload guard.
actionlint passes on both workflows; no packaged-app or runtime changes.
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
setchy
changed the title
ci: fail when a release artifact is missing
ci: verify packaging produced every configured artifact
Nov 9, 2026
The packaged-app checks cover the unpacked app only. Electron can pack
successfully and still fail to build a distributable, and `upload-artifact`
only warns when nothing matches, so a release could publish with a platform
missing its download.
* add `artifactBuildCompleted` and `afterAllArtifactBuild` hooks to
`electron-builder.js`. They record which targets emitted an artifact and
compare that with the targets planned for the build, throwing when a target
produced nothing. The check reads the same config it polices, so there is no
second target list to maintain; the `dir` target is excluded because it
produces the unpacked app rather than something to upload
* make an empty artifact set an error instead of a warning, so a job cannot
pass by uploading directories only
* refuse to publish a draft that has no assets
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
|
🎉 This pull request is included in Gitify v8.1.0! 🎉
Downloads for macOS, Windows, and Linux are available on the release page.
Thanks for helping make Gitify better!
|
Sorry, something went wrong.
Uh oh!
There was an error while loading. Please reload this page.
Reviewers
afonsojramos
Awaiting requested review from afonsojramos
afonsojramos is a code owner
Uh oh!
There was an error while loading. Please reload this page.
Assignees
No one assigned
Development
Successfully merging this pull request may close these issues.
Uh oh!
There was an error while loading. Please reload this page.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
|