summaryrefslogtreecommitdiffstats
path: root/snap/snapcraft.yaml
diff options
context:
space:
mode:
authorThorben <tbraeutigam@users.noreply.github.com>2018-05-09 16:52:51 +0200
committerLunny Xiao <xiaolunwen@gmail.com>2018-05-09 22:52:51 +0800
commit14f16d6c2e8db1d99268c44a59aa86132c00eca3 (patch)
treef5d7a1076890bbbe6abdfea6f58b1c0ef3dae0af /snap/snapcraft.yaml
parent02ecc03d6df8956075d151104e0e07f0d858d578 (diff)
downloadgitea-14f16d6c2e8db1d99268c44a59aa86132c00eca3.tar.gz
gitea-14f16d6c2e8db1d99268c44a59aa86132c00eca3.zip
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.
Diffstat (limited to 'snap/snapcraft.yaml')
-rw-r--r--snap/snapcraft.yaml121
1 files changed, 121 insertions, 0 deletions
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