Setting up CI/CD for meta-snapd

Hello snapcrafters.

I am one of the people that co-maintain the repository. There you can find a Yocto meta-layer allowing anyone to build snap support into their custom system.

Since inception this repository has lacked CI/CD automation. This is due to a mixture of factors, in no particular order:

  • nobody bothered to do it
  • CI for Yocto is a poor fit for GitHub CI (cache is on the order of 100GB), builds require lots of disk space and RAM
  • nobody wanted to pocket the cost of maintaining a custom runner with special cache and disk space.

During my work at Eclipse Oniro I was responsible for CI across many images and build configurations, based on GitLab runners. I have some experience in GitHub based CI for meta layers I’ve gained by observing the work on meta-raspberrypi.

During the last Ubuntu summit I asked sabdfl about CI for meta-snapd and he expressed support in getting this addressed.

Is there anyone who wants to participate in this effort? Alternatively, is there a way for Canonical to offer a hosted runner that would be able to pick up GitHub actions with access to large local disk as cache?


cc @mvo, do you think something could be done here?

i know that @rpjday is generally interested in snapd/yocto stuff but IIRC he is on vacation so it might take a while til he sees this ping …

I will peruse this … is there actual interest from customers in meta-snapd that would justify the effort in doing this?

I think it depends on the breadth of the effort. I would be interested in having kas {checkout, build} for a configuration or two. Nothing deeper at present (certainly not full spread tests that are notoriously broken)

I’m certainly interested in such an effort, but approval would have to go through my manager.