summaryrefslogtreecommitdiffstats
path: root/platforms
diff options
context:
space:
mode:
Diffstat (limited to 'platforms')
-rwxr-xr-xplatforms/debian/scripts/create-debian-package.sh53
-rw-r--r--platforms/debian/stdeb.cfg2
-rw-r--r--platforms/debian/stdeb/compat1
-rw-r--r--platforms/debian/stdeb/conffiles0
-rw-r--r--platforms/debian/stdeb/control17
-rwxr-xr-xplatforms/debian/stdeb/git-auto-deploy.init152
-rw-r--r--platforms/debian/stdeb/git-auto-deploy.install1
-rwxr-xr-xplatforms/debian/stdeb/git-auto-deploy.postinst39
-rwxr-xr-xplatforms/debian/stdeb/git-auto-deploy.prerm1
-rwxr-xr-xplatforms/debian/stdeb/rules27
-rw-r--r--platforms/debian/stdeb/source/format1
-rw-r--r--platforms/debian/stdeb/source/options1
-rwxr-xr-xplatforms/linux/initfiles/debianLSBInitScripts/git-auto-deploy150
-rw-r--r--platforms/linux/initfiles/systemd/git-auto-deploy.service11
14 files changed, 456 insertions, 0 deletions
diff --git a/platforms/debian/scripts/create-debian-package.sh b/platforms/debian/scripts/create-debian-package.sh
new file mode 100755
index 0000000..d103416
--- /dev/null
+++ b/platforms/debian/scripts/create-debian-package.sh
@@ -0,0 +1,53 @@
+#!/usr/bin/env bash
+#
+# This script compiles a binary Debian package (.deb)
+#
+
+# Get current path
+ORIGINAL_CWD=`pwd -P`
+
+# Get script path (<path>/Git-Auto-Deploy/platforms/debian/scripts)
+pushd `dirname $0` > /dev/null
+SCRIPT_PATH=`pwd -P`
+popd > /dev/null
+
+# Path to Git-Auto-Deploy project directory
+PROJECT_PATH=`readlink -f $SCRIPT_PATH/../../../`
+cd $PROJECT_PATH
+
+# Get package name and version
+PACKAGE_NAME=`python setup.py --name`
+PACKAGE_VERSION=`python setup.py --version`
+
+# Generate a Debian source package
+echo
+echo "** Generating a Debian source package **"
+python setup.py --command-packages=stdeb.command sdist_dsc -x platforms/debian/stdeb.cfg
+
+# Path to newly generated deb_dist directory
+TARGET=`readlink -f "$PROJECT_PATH/deb_dist/$PACKAGE_NAME-$PACKAGE_VERSION"`
+
+# Copy configuration files
+echo
+echo "** Copying configuration files **"
+cp -vr "$PROJECT_PATH/platforms/debian/stdeb"/* "$PROJECT_PATH/deb_dist/$PACKAGE_NAME-$PACKAGE_VERSION/debian/"
+#cp -vrp "$PROJECT_PATH/platforms/debian/etc"/* "$PROJECT_PATH/deb_dist/$PACKAGE_NAME-$PACKAGE_VERSION/debian/"
+#cp -vrp "$PROJECT_PATH/platforms/debian/etc"/* "$PROJECT_PATH/deb_dist/$PACKAGE_NAME-$PACKAGE_VERSION/debian/source"
+#mkdir "$PROJECT_PATH/deb_dist/$PACKAGE_NAME-$PACKAGE_VERSION/debian/gitautodeploy"
+#mkdir "$PROJECT_PATH/deb_dist/$PACKAGE_NAME-$PACKAGE_VERSION/debian/git-auto-deploy"
+#mkdir "$PROJECT_PATH/deb_dist/$PACKAGE_NAME-$PACKAGE_VERSION/debian/tmp"
+#cp -vrp "$PROJECT_PATH/platforms/debian/etc"/* "$PROJECT_PATH/deb_dist/$PACKAGE_NAME-$PACKAGE_VERSION/debian/gitautodeploy"
+#cp -vrp "$PROJECT_PATH/platforms/debian/etc"/* "$PROJECT_PATH/deb_dist/$PACKAGE_NAME-$PACKAGE_VERSION/debian/tmp"
+#cp -vrp "$PROJECT_PATH/platforms/debian/etc"/* "$PROJECT_PATH/deb_dist/$PACKAGE_NAME-$PACKAGE_VERSION/gitautodeploy"
+
+# Copile a Debian binary package
+echo
+echo "** Compiling a Debian binary package **"
+cd "$PROJECT_PATH/deb_dist/"*
+
+#dpkg-source --commit
+
+dpkg-buildpackage -rfakeroot -uc -us
+
+# Restore cwd
+cd $ORIGINAL_CWD \ No newline at end of file
diff --git a/platforms/debian/stdeb.cfg b/platforms/debian/stdeb.cfg
new file mode 100644
index 0000000..10ce100
--- /dev/null
+++ b/platforms/debian/stdeb.cfg
@@ -0,0 +1,2 @@
+[DEFAULT]
+Package: git-auto-deploy
diff --git a/platforms/debian/stdeb/compat b/platforms/debian/stdeb/compat
new file mode 100644
index 0000000..7f8f011
--- /dev/null
+++ b/platforms/debian/stdeb/compat
@@ -0,0 +1 @@
+7
diff --git a/platforms/debian/stdeb/conffiles b/platforms/debian/stdeb/conffiles
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/platforms/debian/stdeb/conffiles
diff --git a/platforms/debian/stdeb/control b/platforms/debian/stdeb/control
new file mode 100644
index 0000000..e436648
--- /dev/null
+++ b/platforms/debian/stdeb/control
@@ -0,0 +1,17 @@
+Source: git-auto-deploy
+Maintainer: Oliver Poignant <oliver@poignant.se>
+Section: python
+Priority: optional
+Build-Depends: python-all (>= 2.6.6-3), debhelper (>= 7)
+Standards-Version: 3.9.1
+
+
+
+Package: git-auto-deploy
+Architecture: all
+Depends: ${misc:Depends}, ${python:Depends}
+Description: Deploy your GitHub, GitLab or Bitbucket projects automatical
+ GitAutoDeploy consists of a HTTP server that listens for Web hook requests sent from GitHub, GitLab or Bitbucket servers. This application allows you to continuously and automatically deploy you projects each time you push new commits to your repository.
+
+
+
diff --git a/platforms/debian/stdeb/git-auto-deploy.init b/platforms/debian/stdeb/git-auto-deploy.init
new file mode 100755
index 0000000..9a0a84c
--- /dev/null
+++ b/platforms/debian/stdeb/git-auto-deploy.init
@@ -0,0 +1,152 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: gitautodeploy
+# Required-Start: $remote_fs $syslog $network
+# Required-Stop: $remote_fs $syslog $network
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Script to start Autodeploy Git
+# Description: Autodeploy script for Gitlab
+### END INIT INFO
+
+# Author: JA Nache <nache.nache@gmail.com>
+
+NAME="git-auto-deploy"
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="GitAutodeploy"
+DAEMON=$(which $NAME)
+DAEMON_UID="git-auto-deploy"
+DAEMON_GID="git-auto-deploy"
+RUNDIR=/var/run/$NAME
+PIDFILE=/var/run/$NAME/$NAME.pid
+#PWD=/opt/Git-Auto-Deploy/
+OPTIONS="--daemon-mode --pid-file $PIDFILE --config /etc/$NAME.conf.json"
+SCRIPTNAME="/etc/init.d/$NAME"
+
+# Exit if the package is not installed
+#[ -x $DAEMON ] || echo "$NAME is not installed" && exit 0
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+. /lib/lsb/init-functions
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME || ENABLE_GITAUTODEPLOY=yes
+
+#
+# Check whether daemon starting is enabled
+#
+check_start_daemon() {
+ if [ ! "$ENABLE_GITAUTODEPLOY" = "yes" ]; then
+ [ "$VERBOSE" != no ] && \
+ log_warning_msg "Not starting gitautodeploy, disabled via /etc/default/gitautodeploy"
+ return 1
+ else
+ return 0
+ fi
+}
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+ echo "Starting.."
+ # Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
+
+ if [ ! -d $RUNDIR ]; then
+ mkdir $RUNDIR
+ fi
+
+ if ! dpkg-statoverride --list $dir >/dev/null 2>&1; then
+ chown $DAEMON_UID:$DAEMON_GID $RUNDIR
+ chmod g-w,o-rwx $RUNDIR
+ fi
+
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON \
+ --name $NAME --test > /dev/null \
+ || return 1
+ start-stop-daemon --start --quiet --pidfile $PIDFILE --startas $DAEMON \
+ --name $NAME --umask 0027 --chuid $DAEMON_UID:$DAEMON_GID -- $OPTIONS \
+ || return 2
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+ echo "Stopping.."
+ # Return
+ # 0 if daemon has been stopped
+ # 1 if daemon was already stopped
+ # 2 if daemon could not be stopped
+ # other if a failure occurred
+ start-stop-daemon --stop --signal 6 --retry 30 --pidfile $PIDFILE
+}
+
+#
+# Function that reload the daemon/service
+#
+do_reload()
+{
+ echo "Reloading.."
+ start-stop-daemon --stop -s 1 --pidfile $PIDFILE
+}
+
+case "$1" in
+ start)
+ check_start_daemon || exit 0
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
+ do_start
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ stop)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ status)
+ status_of_proc -p $PIDFILE "python" "$DAEMON" && exit 0 || exit $?
+
+ ;;
+ reload)
+ do_reload
+ ;;
+ restart|force-reload)
+ log_daemon_msg "Restarting $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1)
+ do_start
+ case "$?" in
+ 0) log_end_msg 0 ;;
+ 1) log_end_msg 1 ;; # Old process is still running
+ *) log_end_msg 1 ;; # Failed to start
+ esac
+ ;;
+ *)
+ # Failed to stop
+ log_end_msg 1
+ ;;
+ esac
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
+
+:
+
diff --git a/platforms/debian/stdeb/git-auto-deploy.install b/platforms/debian/stdeb/git-auto-deploy.install
new file mode 100644
index 0000000..cbe91a4
--- /dev/null
+++ b/platforms/debian/stdeb/git-auto-deploy.install
@@ -0,0 +1 @@
+gitautodeploy/data/git-auto-deploy.conf.json etc
diff --git a/platforms/debian/stdeb/git-auto-deploy.postinst b/platforms/debian/stdeb/git-auto-deploy.postinst
new file mode 100755
index 0000000..c5a2af0
--- /dev/null
+++ b/platforms/debian/stdeb/git-auto-deploy.postinst
@@ -0,0 +1,39 @@
+#!/bin/bash
+
+NAME="git-auto-deploy"
+GAD_UID="git-auto-deploy"
+GAD_GID="git-auto-deploy"
+
+CONF_DIR="/etc/$NAME"
+DATA_DIR="/var/lib/$NAME"
+PID_DIR="/var/run/$NAME"
+
+# Add user and group
+adduser --quiet --system --home $CONF_DIR --no-create-home --ingroup nogroup --disabled-password $GAD_UID
+addgroup --system $GAD_GID
+adduser $GAD_UID $GAD_GID
+
+# Create config dir
+mkdir -p $CONF_DIR
+chown -R $GAD_UID:$GAD_GID $CONF_DIR
+chmod 750 $CONF_DIR
+
+# Create log file
+touch /var/log/$NAME.log
+chown $GAD_UID:$GAD_GID /var/log/$NAME.log
+chmod 750 /var/log/$NAME.log
+
+# Create data directory
+mkdir -p $DATA_DIR
+chown -R $GAD_UID:$GAD_GID $DATA_DIR
+chmod 750 $DATA_DIR
+
+# Create pid file
+mkdir -p $PID_DIR
+chown -R $GAD_UID:$GAD_GID $PID_DIR
+chmod 750 $PID_DIR
+touch $PID_DIR/$NAME.pid
+chown $GAD_UID:$GAD_GID $PID_DIR/$NAME.pid
+chmod 750 $PID_DIR/$NAME.pid
+
+update-rc.d $NAME defaults
diff --git a/platforms/debian/stdeb/git-auto-deploy.prerm b/platforms/debian/stdeb/git-auto-deploy.prerm
new file mode 100755
index 0000000..a9bf588
--- /dev/null
+++ b/platforms/debian/stdeb/git-auto-deploy.prerm
@@ -0,0 +1 @@
+#!/bin/bash
diff --git a/platforms/debian/stdeb/rules b/platforms/debian/stdeb/rules
new file mode 100755
index 0000000..27cda30
--- /dev/null
+++ b/platforms/debian/stdeb/rules
@@ -0,0 +1,27 @@
+#!/usr/bin/make -f
+
+# This file was automatically generated by stdeb 0.8.5 at
+# Thu, 10 Mar 2016 19:52:51 +0100
+
+%:
+ dh $@ --with python2 --buildsystem=python_distutils
+
+
+override_dh_auto_clean:
+ python setup.py clean -a
+ find . -name \*.pyc -exec rm {} \;
+
+
+
+override_dh_auto_build:
+ python setup.py build --force
+
+
+
+override_dh_auto_install:
+ python setup.py install --force --root=debian/git-auto-deploy --no-compile -O0 --install-layout=deb
+
+
+
+override_dh_python2:
+ dh_python2 --no-guessing-versions
diff --git a/platforms/debian/stdeb/source/format b/platforms/debian/stdeb/source/format
new file mode 100644
index 0000000..163aaf8
--- /dev/null
+++ b/platforms/debian/stdeb/source/format
@@ -0,0 +1 @@
+3.0 (quilt)
diff --git a/platforms/debian/stdeb/source/options b/platforms/debian/stdeb/source/options
new file mode 100644
index 0000000..bcc4bbb
--- /dev/null
+++ b/platforms/debian/stdeb/source/options
@@ -0,0 +1 @@
+extend-diff-ignore="\.egg-info$" \ No newline at end of file
diff --git a/platforms/linux/initfiles/debianLSBInitScripts/git-auto-deploy b/platforms/linux/initfiles/debianLSBInitScripts/git-auto-deploy
new file mode 100755
index 0000000..9edf87b
--- /dev/null
+++ b/platforms/linux/initfiles/debianLSBInitScripts/git-auto-deploy
@@ -0,0 +1,150 @@
+#! /bin/sh
+### BEGIN INIT INFO
+# Provides: gitautodeploy
+# Required-Start: $remote_fs $syslog $network
+# Required-Stop: $remote_fs $syslog $network
+# Default-Start: 2 3 4 5
+# Default-Stop: 0 1 6
+# Short-Description: Script to start Autodeploy Git
+# Description: Autodeploy script for Gitlab
+### END INIT INFO
+
+# Author: JA Nache <nache.nache@gmail.com>
+
+NAME="git-auto-deploy"
+PATH=/sbin:/usr/sbin:/bin:/usr/bin
+DESC="GitAutodeploy"
+DAEMON="/usr/bin/env python /opt/Git-Auto-Deploy/gitautodeploy"
+DAEMON_UID=root
+DAEMON_GID=root
+RUNDIR=/var/run/$NAME
+PIDFILE=/var/run/$NAME.pid
+PWD=/opt/Git-Auto-Deploy/
+OPTIONS="--daemon-mode --quiet --pid-file /var/run/git-auto-deploy.pid --log-file /var/log/git-auto-deploy.log"
+USER=root
+SCRIPTNAME=/etc/init.d/$NAME
+
+# Exit if the package is not installed
+#[ -x $DAEMON ] || echo "$NAME is not installed" && exit 0
+
+# Load the VERBOSE setting and other rcS variables
+. /lib/init/vars.sh
+
+# Define LSB log_* functions.
+. /lib/lsb/init-functions
+
+# Read configuration variable file if it is present
+[ -r /etc/default/$NAME ] && . /etc/default/$NAME || ENABLE_GITAUTODEPLOY=yes
+
+#
+# Check whether daemon starting is enabled
+#
+check_start_daemon() {
+ if [ ! "$ENABLE_GITAUTODEPLOY" = "yes" ]; then
+ [ "$VERBOSE" != no ] && \
+ log_warning_msg "Not starting gitautodeploy, disabled via /etc/default/gitautodeploy"
+ return 1
+ else
+ return 0
+ fi
+}
+
+#
+# Function that starts the daemon/service
+#
+do_start()
+{
+ # Return
+ # 0 if daemon has been started
+ # 1 if daemon was already running
+ # 2 if daemon could not be started
+
+ if [ ! -d $RUNDIR ]; then
+ mkdir $RUNDIR
+ fi
+
+ if ! dpkg-statoverride --list $dir >/dev/null 2>&1; then
+ chown $DAEMON_UID:$DAEMON_GID $RUNDIR
+ chmod g-w,o-rwx $RUNDIR
+ fi
+
+ start-stop-daemon --start --quiet --chdir $PWD --pidfile $PIDFILE --startas $DAEMON \
+ --name $NAME --test > /dev/null \
+ || return 1
+ start-stop-daemon --start --quiet --chdir $PWD --pidfile $PIDFILE --startas $DAEMON \
+ --name $NAME --umask 0027 --chuid $DAEMON_UID:$DAEMON_GID -- $OPTIONS \
+ || return 2
+}
+
+#
+# Function that stops the daemon/service
+#
+do_stop()
+{
+ # Return
+ # 0 if daemon has been stopped
+ # 1 if daemon was already stopped
+ # 2 if daemon could not be stopped
+ # other if a failure occurred
+ start-stop-daemon --stop --signal 6 --retry 30 --pidfile $PIDFILE
+}
+
+#
+# Function that reload the daemon/service
+#
+do_reload()
+{
+ start-stop-daemon --stop -s 1 --pidfile $PIDFILE
+}
+
+case "$1" in
+ start)
+ check_start_daemon || exit 0
+ [ "$VERBOSE" != no ] && log_daemon_msg "Starting $DESC " "$NAME"
+ do_start
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ stop)
+ [ "$VERBOSE" != no ] && log_daemon_msg "Stopping $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1) [ "$VERBOSE" != no ] && log_end_msg 0 ;;
+ 2) [ "$VERBOSE" != no ] && log_end_msg 1 ;;
+ esac
+ ;;
+ status)
+ status_of_proc -p $PIDFILE "python" "$DAEMON" && exit 0 || exit $?
+
+ ;;
+ reload)
+ do_reload
+ ;;
+ restart|force-reload)
+ log_daemon_msg "Restarting $DESC" "$NAME"
+ do_stop
+ case "$?" in
+ 0|1)
+ do_start
+ case "$?" in
+ 0) log_end_msg 0 ;;
+ 1) log_end_msg 1 ;; # Old process is still running
+ *) log_end_msg 1 ;; # Failed to start
+ esac
+ ;;
+ *)
+ # Failed to stop
+ log_end_msg 1
+ ;;
+ esac
+ ;;
+ *)
+ echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload}" >&2
+ exit 3
+ ;;
+esac
+
+:
+
diff --git a/platforms/linux/initfiles/systemd/git-auto-deploy.service b/platforms/linux/initfiles/systemd/git-auto-deploy.service
new file mode 100644
index 0000000..c73ff6c
--- /dev/null
+++ b/platforms/linux/initfiles/systemd/git-auto-deploy.service
@@ -0,0 +1,11 @@
+[Unit]
+Description=GitAutoDeploy
+
+[Service]
+User=www-data
+Group=www-data
+WorkingDirectory=/opt/Git-Auto-Deploy/
+ExecStart=/usr/bin/python /opt/Git-Auto-Deploy/gitautodeploy --daemon-mode
+
+[Install]
+WantedBy=multi-user.target