We do hope to introduce our own official Github Actions in the near future to simplify the user experience! In the meantime, there are a couple of options to build your charms with Github Actions (or similar CI systems):
(1) Use Charmcraft’s --destructive-mode
on an OS that matches a build-on
base configuration in your project’s charmcraft.yaml (for more information, check out Juju | Charmcraft Configuration). Today, this would mean configuring either ubuntu-18.04
or ubuntu-20.04
as the operating system, with a corresponding bases
config.
(2) Use Charmcraft’s default, with LXD used to build Charms for all applicable bases
. On Github Actions, this means setting up LXD for use by Charmcraft and running charmcraft
with the correct permissions. For example:
- name: Configure LXD
run: |
sudo groupadd --force --system lxd
sudo usermod --append --groups lxd $USER
sudo snap start lxd
sudo lxd waitready --timeout=30
sudo lxd init --auto
- name: Build my Charm
run: |
sg lxd -c "charmcraft -v pack"
...