Adding Snaps support at Travis CI

At Travis CI, we’ve partnered with the snapcraft team to improve the development experience while building, releasing and installing snaps.

Since the snapcraft summit two weeks ago, we’ve been working closely with developers of many programming languages so we can make their snaps available for you to use on Travis CI at build time.

The first of these improvements is already available thanks to @bcardiff and @ana_rosas, you can now build and test against Crystal nightly releases.

On the top of that, as long as you’re using Ubuntu Xenial 16.04, you can now use the snaps addon to install any Snap package at build time.

About snaps

Snapcraft is designed to be a universal app distribution system for Linux, including Ubuntu, Debian, OpenSuse, ArchLinux, Gentoo or Fedora.

While APT works well for installing libraries and headers, snaps focus on ease of installation and updating applications. Snaps bundle all of an apps dependencies and are wrapped in a layer of added security. These strictly confined snaps can be trusted to not break on system upgrades, and unless explicitly allowed, can be trusted to not modify the system or peer into the private data of other applications.

This is an example .travis.yml file to install the AWS CLI snap that then you can use it to test a site:

 dist: xenial
   addons:
     snaps:
       - aws-cli

By default, when you install a snap, we fetch it with the default confinement, strict which means that it’s completely isolated from the rest of the system. To change these values, you can specify the confinement or snap release channel that you’d like.

  dist: xenial

  addons:
    snaps:
    - name: aws-cli
      confinement: classic
      channel: edge

Check out the full docs to install snaps at Travis CI here.

Packaging your own snap

To create the snap package for your application / installer, you can follow the docs at the first snap guide

The snaps team is available to help with questions on their community forum at https://forum.snapcraft.io/

Automatically deploy new versions of your snap package

After you test and build your snap at Travis CI, you can automatically upload it to the Snap Store using the deployment: snaps option

For example, the CMake snap uses this workflow and the following configuration file: cmake-snap/.travis.yml


Let us know how this works for you in the Travis CI Community Forum and happy building!