Snap Packaging #3313

This commit is contained in:
Alessio Treglia 2019-01-28 15:00:17 -08:00 committed by Jack Zampolin
parent 75c3a44a0d
commit 57ae957168
2 changed files with 64 additions and 2 deletions

View File

@ -122,7 +122,7 @@ draw_deps: tools
@goviz -i github.com/cosmos/cosmos-sdk/cmd/gaia/cmd/gaiad -d 2 | dot -Tpng -o dependency-graph.png
clean:
rm -f devtools-stamp vendor-deps
rm -f devtools-stamp vendor-deps snapcraft.yaml
########################################
### Documentation
@ -235,6 +235,18 @@ localnet-start: localnet-stop
localnet-stop:
docker-compose down
########################################
### Packaging
snapcraft.yaml: snapcraft.yaml.in
sed "s/@VERSION@/${VERSION}/g" < $< > $@
build-snap-edge: snapcraft.yaml
snapcraft clean
snapcraft
# To avoid unintended conflicts with file names, always add to .PHONY
# unless there is a reason not to.
# https://www.gnu.org/software/make/manual/html_node/Phony-Targets.html
@ -243,4 +255,5 @@ check_tools check_dev_tools get_vendor_deps draw_deps test test_cli test_unit \
test_cover test_lint benchmark devdoc_init devdoc devdoc_save devdoc_update \
build-linux build-docker-gaiadnode localnet-start localnet-stop \
format check-ledger test_sim_gaia_nondeterminism test_sim_modules test_sim_gaia_fast \
test_sim_gaia_multi_seed test_sim_gaia_import_export update_tools update_dev_tools
test_sim_gaia_multi_seed test_sim_gaia_import_export update_tools update_dev_tools \
build-snap-edge

49
snapcraft.yaml.in Normal file
View File

@ -0,0 +1,49 @@
name: gaia # you probably want to 'snapcraft register <name>'
# base: core18 # the base snap is the execution environment for this snap
version: '@VERSION@' # just for humans, typically '1.2+git' or '1.3.2'
summary: Gaia Daemon # 79 char long summary
description: |
This snap provides the Gaia daemon gaiad and the command line
tool gaiacli.
grade: devel # must be 'stable' to release into candidate/stable channels
confinement: strict # use 'strict' once you have the right plugs and slots
apps:
gaiad:
command: bin/gaiad
plugs: [home,network,network-bind]
gaiacli:
command: bin/gaiacli
plugs: [home,network,network-bind]
parts:
gaia:
plugin: dump
source: ./
override-pull: |
rootdir=$(pwd)
gitroot=$(git rev-parse --show-toplevel)
cd ${gitroot} && git archive \
-o ${rootdir}/gaia-@VERSION@.tar.gz \
--format tar.gz -9 --prefix gaia-@VERSION@/ HEAD
cd ${rootdir}
tar xvf gaia-@VERSION@.tar.gz ; rm -f gaia-@VERSION@.tar.gz
mkdir -p go/src/github.com/cosmos bin
mv gaia-@VERSION@/ go/src/github.com/cosmos/cosmos-sdk/
# Use the following instructions to build a package from a release.
# wget https://github.com/cosmos/cosmos-sdk/archive/v@VERSION@.tar.gz
# tar xvf v@VERSION@.tar.gz
# rm v@VERSION@.tar.gz
build-snaps: [go]
override-build: |
base=`pwd`
export GOPATH=`pwd`/go
cd $GOPATH/src/github.com/cosmos/cosmos-sdk
make tools
make vendor-deps
make install
mkdir $SNAPCRAFT_PART_INSTALL/bin
cp $GOPATH/bin/gaiad $SNAPCRAFT_PART_INSTALL/bin
cp $GOPATH/bin/gaiacli $SNAPCRAFT_PART_INSTALL/bin