How to trigger builds on launchpad upon upstream repository update?

I have modified my 0AD snap packaging branch to allow building from SVN trunk instead of release tarballs.

My branch contains only the packaging bits, and the goal would be to have launchpad automatically trigger a new build for each new commit in the upstream SVN repository. Alternatively, a daily build would do (the upstream repository gets several commits per day on average). Successful builds would then be pushed to the edge channel for consumption by people eager to test the latest development version.

The automated publication is already set up, but I’m not sure how to teach launchpad to trigger a new build on upstream commits / daily. Is there such a functionality? If not, is it in the works, or planned?

1 Like

i fear LP can only watch local trees (unless that changed recently).

what we are doing for i.e. the gadget snaps [1] is to mirror a github tree to launchpad [2], have regular auto-imports and watch that for changes to auto-build snaps [3] …

that indeed means you get a delay (…or you click the import button to force an import run, but thats indeed not very “automated” :wink: )

[1] https://github.com/snapcore/pi2-gadget [2] https://code.launchpad.net/~canonical-foundations/snap-pi2/+git/github-mirror/+ref/master [3] pi2 : Snap packages : “Canonical Foundations Team” team

(@zyga-snapd knows the dirty details of this setup btw)

2 Likes

@ogra any reason you’re not using https://build.snapcraft.io/ to get builds of master into edge?

It’s GitHub centric so suspect it won’t be useful for 0AD, but should be good enough for pi2-gadget?

1 Like

yes, there was no build.snapcraft.io when this was initially set up, we might eventually move over …

we also just now are getting github org support

GitHub org support is on production as of this week: https://build.snapcraft.io. @ogra, I’d be keen to know if you have any blockers to using it for pi2-gadget.

1 Like

i’ll try it out and report back …

1 Like

You can use snap install lp-build-snap (documentation needed) to trigger Launchpad snap builds. You could set up cron on your local machine to run this daily, for example.

2 Likes

i did not use the pi gadget but had to work on a new board anyway. the build works fine, i was able to go through the build.snapcraft.io steps just fine to register a new name and have it start a build.

eventually the snap shows up in my dashboard and (since it is a gadget snap) goes into manual review (which is normal for the first upload of kernel/gadget snaps)

one thing that bothers me though is that it does not seem to respect the “architectures” entry in my snapcraft.yaml, it seems to always build for armhf and amd64 by default (obviously i don’t need the latter for a gadget snap built for an arm board)…

This is 556.