From 14f16d6c2e8db1d99268c44a59aa86132c00eca3 Mon Sep 17 00:00:00 2001 From: Thorben Date: Wed, 9 May 2018 16:52:51 +0200 Subject: snap-packaging for gitea (#2568) * Modify tbraeutigam/gogs-snap for gitea * Fix building on 16.04 (manually build go-bindata). -> add _source.tar.bz2 to .gitignore (used by snapcraft cleanbuild) * Streamline Snap packaging: - Take advantage of install-hooks (snapd 2.27) - Use snapctl configuration storage for unchanging values * Move to using Snap Hooks for configuration * Missed re-adding daemon statement * Fix two warnings from Codacy. --- snap/snapcraft.yaml | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 snap/snapcraft.yaml (limited to 'snap/snapcraft.yaml') diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml new file mode 100644 index 0000000000..7439f50f25 --- /dev/null +++ b/snap/snapcraft.yaml @@ -0,0 +1,121 @@ +name: gitea +summary: Gitea - A painless self-hosted Git service +description: | + The goal of this project is to make the easiest, fastest, and most painless + way of setting up a self-hosted Git service. With Go, this can be done with + an independent binary distribution across ALL platforms that Go supports, + including Linux, Mac OS X, Windows and ARM. + +type: app +icon: public/img/gitea-lg.png +confinement: strict +grade: stable + +version: 'git' + +apps: + gitea: + command: bin/gitea + plugs: [network, network-bind] + web: + command: bin/gitea web + daemon: simple + plugs: [network, network-bind] + serv: + command: bin/gitea serv + plugs: [network, network-bind] + admin: + command: bin/gitea admin + plugs: [network, network-bind] + cert: + command: bin/gitea cert + hook: + command: bin/gitea hook + plugs: [network, network-bind] + dump: + command: bin/gitea dump + plugs: [home] + help: + command: bin/gitea --help + version: + command: bin/gitea --version + sqlite: + command: usr/bin/sqlite3 + +parts: + go: + source-tag: go1.8.3 + prime: + - -* + + gitea: + plugin: nil + source: . + source-type: git + after: [ go ] + stage-packages: [ git, sqlite3, openssh-client ] + build-packages: [ libpam0g-dev, libsqlite3-dev] + prepare: | + export PATH=$SNAPCRAFT_PART_INSTALL/../../go/install/bin:$PATH + export GOPATH=$SNAPCRAFT_PART_INSTALL/../go + export bld=$SNAPCRAFT_PART_INSTALL/../build + export src=$SNAPCRAFT_PART_INSTALL/../src + mkdir -p $GOPATH/src/code.gitea.io/gitea + cp -r $src/* $GOPATH/src/code.gitea.io/gitea + build: | + export PATH=$SNAPCRAFT_PART_INSTALL/../go/bin/:$SNAPCRAFT_PART_INSTALL/../../go/install/bin:$PATH + export GOPATH=$SNAPCRAFT_PART_INSTALL/../go + go get -u github.com/jteeuwen/go-bindata/... + cd $GOPATH/src/code.gitea.io/gitea + TAGS="bindata sqlite pam cert" make generate build + install: | + # Set Convenience Variables + src=$SNAPCRAFT_PART_INSTALL/../go/src/code.gitea.io/gitea + giteaBase=$SNAPCRAFT_PART_INSTALL/gitea + scurrent=/var/snap/$SNAPCRAFT_PROJECT_NAME/current + scommon=/var/snap/$SNAPCRAFT_PROJECT_NAME/common + # Copy build artifact and necessary files + mkdir -p $giteaBase/conf + # Workaround for gitea ignoring APP_DATA_PATH in app.ini after snap update. + ln -s $scurrent/custom $giteaBase/custom + ln -s $scommon/data $giteaBase/data + # Workaround for cmd/certs not knowing how to put files somewhere else + ln -s $scurrent/cert.pem $giteaBase/cert.pem + ln -s $scurrent/key.pem $giteaBase/key.pem + # Copy static content + mkdir -p $SNAPCRAFT_PART_INSTALL/static + cp $src/gitea $giteaBase/ + cp -r $src/LICENSE \ + $src/templates \ + $src/public \ + $src/scripts \ + $SNAPCRAFT_PART_INSTALL/static/ + cp -r $src/README.md \ + $src/LICENSE \ + $src/custom \ + $SNAPCRAFT_PART_INSTALL/ + prime: + - -etc + - -usr/lib/systemd + - -usr/lib/gcc + - -usr/lib/sasl2 + - -usr/lib/x86_64-linux-gnu/krb5 + - -usr/share/apport + - -usr/share/bash-completion + - -usr/share/doc + - -usr/share/git-core/contrib + - -usr/share/man + - -usr/share/upstart + - -var + + helpers: + plugin: dump + source: snap/helpers + organize: + simple_launcher.sh: bin/gitea + app.ini: gitea/snapApp.ini + configuration.sh: bin/gconfig + prime: + - bin/gitea + - bin/gconfig + - gitea/snapApp.ini -- cgit v1.2.3