Skip to content

samuelmeuli/action-snapcraft

Use this GitHub Action with your project

Add this Action to an existing workflow or create a new one.

View on Marketplace
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Snapcraft Action

GitHub Action for setting up Snapcraft

Overview

This action…

  • Installs Snapcraft on Ubuntu 18.04+/macOS
  • Optionally logs you in to the Snap Store
  • Allows you to run Snapcraft commands in your GitHub Actions workflows

Note that the more recently created snapcore/action-build and snapcore/action-publish effectively copy the use_lxd strategy (below). Building using this actions still takes ~3:30 min less time than snapcore/action-build.

Usage

Basic

To use this action, add the following step to your workflow:

- name: Install Snapcraft
  uses: samuelmeuli/action-snapcraft@v1

A full example:

name: My workflow

on: push

jobs:
  my-job:
    runs-on: ubuntu-18.04

    steps:
      - name: Check out Git repository
        uses: actions/checkout@v2

      - name: Install Snapcraft
        uses: samuelmeuli/action-snapcraft@v1

      # You can now run Snapcraft shell commands
      - name: Use Snapcraft
        run: snapcraft --help

Log in

This action can also log you in to the Snap Store. For this to work, you need an Ubuntu One account.

You will also need a Snap Store login token. To obtain one, run the following command on your machine:

snapcraft export-login --snaps SNAP_NAME --channels edge -

NOTE: You will need to manually push a package to the Snap Store to get a valid SNAP_NAME first.

Copy that token and add it as a secret to GitHub Actions. You can do this in your GitHub repository under Settings β†’ Secrets. The secret must be called snapcraft_token.

Finally, add the following option to your workflow step:

- name: Install Snapcraft
  uses: samuelmeuli/action-snapcraft@v1
  with:
    snapcraft_token: ${{ secrets.snapcraft_token }}
    skip_install: true # optional, if already installed in an earlier step

Build using LXD

LXD (runs-on: ubuntu-18.04) is for now likely the easiest way to get snapcraft to build snaps. This is an alternative to using multipass (GitHub VMs give the error launch failed: CPU does not support KVM extensions. when trying to use multipass).

- name: Install Snapcraft with LXD
  uses: samuelmeuli/action-snapcraft@v1
  with:
    use_lxd: true
- name: Build snap
  run: sg lxd -c 'snapcraft --use-lxd'

Development

Suggestions and contributions are always welcome! Please discuss larger changes via issue before submitting a pull request.

Currently maintained by @casperdcl.

Related