diff options
Diffstat (limited to 'platforms')
-rwxr-xr-x | platforms/debian/scripts/create-debian-package.sh | 53 | ||||
-rw-r--r-- | platforms/debian/stdeb.cfg | 2 | ||||
-rw-r--r-- | platforms/debian/stdeb/compat | 1 | ||||
-rw-r--r-- | platforms/debian/stdeb/conffiles | 0 | ||||
-rw-r--r-- | platforms/debian/stdeb/control | 17 | ||||
-rwxr-xr-x | platforms/debian/stdeb/git-auto-deploy.init | 152 | ||||
-rw-r--r-- | platforms/debian/stdeb/git-auto-deploy.install | 1 | ||||
-rwxr-xr-x | platforms/debian/stdeb/git-auto-deploy.postinst | 39 | ||||
-rwxr-xr-x | platforms/debian/stdeb/git-auto-deploy.prerm | 1 | ||||
-rwxr-xr-x | platforms/debian/stdeb/rules | 27 | ||||
-rw-r--r-- | platforms/debian/stdeb/source/format | 1 | ||||
-rw-r--r-- | platforms/debian/stdeb/source/options | 1 | ||||
-rwxr-xr-x | platforms/linux/initfiles/debianLSBInitScripts/git-auto-deploy | 150 | ||||
-rw-r--r-- | platforms/linux/initfiles/systemd/git-auto-deploy.service | 11 |
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 |