Skip to content

Integrate vpk into CI for Velopack-compatible update feed #15

@Computer-Tsu

Description

@Computer-Tsu

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

  1. Add vpk pack to the publish job in build.yml to generate Velopack-compatible release artifacts
  2. Update the dispatch payload and ShackDesk-Site receiver workflow to publish the Velopack files rather than the hand-written JSON
  3. Decide whether to host the Velopack feed at the existing /portpane/update/ path or a new path
  4. 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.ymlrelease 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions