packaging icon indicating copy to clipboard operation
packaging copied to clipboard

snap publishing should use github actions

Open achow101 opened this issue 2 months ago • 2 comments

Currently snap publishing uses Launchpad to build the snaps and then push them to the snap store. Unfortunately, the CI environment is different from Launchpad's build environments which can result in CI passing but the snaps failing to build on Launchpad, and noticing this only occurs once we try to publish a release. It seems that there is an action provided by Canonical that allows snaps to be published from a Github action. Given this, we could change the CI to use Github actions, and change the publishing workflow to also use Github actions. This would ensure that the CI uses the same process as releases so that PRs are properly tested.

Furthermore, the Launchpad UI is pretty awful and every time I try to use it to setup a new release, I get lost. Moving off of Launchpad should reduce the overhead.

If we were to do this, we should still preserve the behavior of requiring an explicit action to publish a snap, so the workflow that does that needs to be one that can only be triggered manually.

achow101 avatar Sep 10 '25 22:09 achow101

... the CI environment is different from Launchpad's build environments...

In what way?

hebasto avatar Sep 11 '25 13:09 hebasto

... the CI environment is different from Launchpad's build environments...

In what way?

Launchpad builds the snaps on native hardware (or perhaps emulated), so the build environment host architecture matches the target architecture.

Our CI uses CIrrus and only runs on x86_64. While we could have a arm64 runner, we wouldn't have armhf, riscv64, ppc64el, etc. that Launchpad uses. Additionally, AFAICT Launchpad uses its own special scripts and such to do the snap build. I don't think they are using anything from our repo except snapcraft.yaml.

achow101 avatar Sep 11 '25 17:09 achow101