Background
The update feed infrastructure is in place:
BrandingInfo.UpdateEndpoint resolves per-channel to https://shackdesk.com/portpane/update/{channel}.json
- ShackDesk-Site hosts the JSON files at those paths
- PortPane CI dispatches to ShackDesk-Site after each release to update the JSON
However, UpdateService uses Velopack's SimpleWebSource, which does not consume the simple JSON format we are currently writing. Velopack expects its own generated files:
- A
RELEASES index file
releases.{channel}.json files generated by vpk pack
What needs to happen
- Add
vpk pack to the publish job in build.yml to generate Velopack-compatible release artifacts
- Update the dispatch payload and ShackDesk-Site receiver workflow to publish the Velopack files rather than the hand-written JSON
- Decide whether to host the Velopack feed at the existing
/portpane/update/ path or a new path
- Verify
UpdateService successfully detects and applies an update end-to-end
References
- Velopack
SimpleWebSource docs: https://docs.velopack.io/reference/cs/Velopack/Sources/SimpleWebSource
- Current dispatch workflow:
.github/workflows/build.yml — release and rolling-alpha jobs
- Receiver workflow:
Computer-Consultant/ShackDesk-Site/.github/workflows/update-portpane.yml
- Current placeholder JSON:
Computer-Consultant/ShackDesk-Site/portpane/update/
Notes
- This is required before auto-update can function for any user
- Should be addressed before the first beta or stable release
Background
The update feed infrastructure is in place:
BrandingInfo.UpdateEndpointresolves per-channel tohttps://shackdesk.com/portpane/update/{channel}.jsonHowever,
UpdateServiceuses Velopack'sSimpleWebSource, which does not consume the simple JSON format we are currently writing. Velopack expects its own generated files:RELEASESindex filereleases.{channel}.jsonfiles generated byvpk packWhat needs to happen
vpk packto thepublishjob inbuild.ymlto generate Velopack-compatible release artifacts/portpane/update/path or a new pathUpdateServicesuccessfully detects and applies an update end-to-endReferences
SimpleWebSourcedocs: https://docs.velopack.io/reference/cs/Velopack/Sources/SimpleWebSource.github/workflows/build.yml—releaseandrolling-alphajobsComputer-Consultant/ShackDesk-Site/.github/workflows/update-portpane.ymlComputer-Consultant/ShackDesk-Site/portpane/update/Notes