Travis does all the work here: https://travis-ci.com/elopio/geth-snap
Every night it takes the latest commit from master and publishes it to the edge channel. If there is a new stable release, it publishes it to candidate.
I've just started playing with geth this week ( https://forum.snapcraft.io/t/request-to-transfer-back-the-geth-snap/9768 ) ), to make it easier for me to maintain the Zeppelin nodes. The packaging and CI is here:
The build and delivery is automated in https://launchpad.net/solidity/+snaps , one pipeline takes every commit from the develop branch and pushes it to the edge channel, the other takes every release and pushes it to candidate.
The solc snap is owned by the solidity team, so they have full access and I'm just contributing testing the candidate releases and moving them to stable. The packaging info is in their repo: https://github.com/ethereum/solidity/blob/develop/snap/snapcraft.yaml
This server was setup for the Ubuntu community to use.