Core18: xenial vs bionic

It seems I ran into another bump on my road to core18. I have several packages that use core18 now that build and work when I build them locally using snapcraft. In this case snapcraft automatically uses a build VM that is based on bionic.

However when I commit them to github and the snapcraft.io build bots try to build them, the build fails or the resulting packages don’t work properly. I noticed that even though the snapcraft.yaml declares “base: core18”, the bots still run the build on a xenial system.

So what exactly is the right approach there?

This looks to be a limitation of build.snapcraft.io. I’ve filed the following bug report, so you could subscribe to that:

https://github.com/canonical-websites/build.snapcraft.io/issues/1185

In the interim, one option would be to configure a build recipe on Launchpad directly. That forgoes some of the automation provided by build.snapcraft.io, but does have the option of picking bionic as a build environment for your snap.

Another alternative some people use is perform the build in Travis or Gitlab CI. Again, that requires more effort on your part, and probably means limiting yourself to amd64 builds.

I’m sure build.snapcraft.io will eventually be updated, so the other option is to wait.

1 Like