diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 4926643ff..bc2de6597 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -15,45 +15,63 @@ apps: plugs: [home, network-bind, removable-media] parts: + git: + plugin: nil + stage-packages: + - git + organize: + usr/bin/: bin/ + prime: + - bin/git + + go: + # Hugo's go.mod would interfere with the build of Go 1.11 in the + # parts/go/build/ subdirectory. Move go.mod out of the way + # as a workaround. (Note: 'override-build' does not work here, + # hence the use of the deprecated 'prepare' keyword.) + # See https://forum.snapcraft.io/t/go-plugin-go1-11-fails-if-go-mod-exists-in-the-top-level-directory/7546 + prepare: | + set -x + ( cd ../../.. && mv -v go.mod go.mod~ ) + source-tag: go1.11 + hugo: source: . + after: [go] plugin: go go-importpath: github.com/gohugoio/hugo - build-packages: - - git override-build: | + set -ex + echo "\nStarting override-build:" + ( cd ../../.. && mv -v go.mod~ go.mod || : ) export GO111MODULE=on export GOPATH=$(dirname $SNAPCRAFT_PART_INSTALL)/go export PATH=$GOPATH/bin:$PATH + cd $GOPATH/src/github.com/gohugoio/hugo echo ' * Running "go get -v github.com/magefile/mage"...' go get -v github.com/magefile/mage echo ' * Running "mage -v test"...' mage -v test + echo " * Building hugo (build tag: none)..." [ "$SNAPCRAFT_PROJECT_GRADE" = "stable" ] && mage -v hugoNoGitInfo || mage -v hugo ./hugo version ldd hugo || : + echo " * Building shell completion..." ./hugo gen autocomplete --completionfile=hugo-completion + echo " * Installing to ${SNAPCRAFT_PART_INSTALL}..." install -d $SNAPCRAFT_PART_INSTALL/bin cp -av hugo $SNAPCRAFT_PART_INSTALL/bin/ mv -v hugo-completion $SNAPCRAFT_PART_INSTALL/ + echo " * Stripping binary..." ls -l $SNAPCRAFT_PART_INSTALL/bin/hugo strip --remove-section=.comment --remove-section=.note $SNAPCRAFT_PART_INSTALL/bin/hugo ls -l $SNAPCRAFT_PART_INSTALL/bin/hugo - after: [go] - - go: - source-tag: go1.11 - - git: - plugin: nil - stage-packages: [git] - prime: [usr/bin/git] node: plugin: nodejs