From b3bb993867d571cddf6375b39dbf08a2e32d019b Mon Sep 17 00:00:00 2001 From: takiguchi Date: Tue, 13 Aug 2019 21:37:01 +0200 Subject: [PATCH] Set server properties for production. --- jenkins/Jenkinsfile-do-release | 23 +++ src/main/bash/do-release.bash | 57 +++++++ src/main/bash/minager-service | 28 --- src/main/bash/minager.sh | 80 --------- .../minecraft-server/minecraft-server-service | 28 --- .../bash/minecraft-server/minecraft-server.sh | 159 ------------------ 6 files changed, 80 insertions(+), 295 deletions(-) create mode 100644 jenkins/Jenkinsfile-do-release create mode 100644 src/main/bash/do-release.bash delete mode 100644 src/main/bash/minager-service delete mode 100644 src/main/bash/minager.sh delete mode 100644 src/main/bash/minecraft-server/minecraft-server-service delete mode 100644 src/main/bash/minecraft-server/minecraft-server.sh diff --git a/jenkins/Jenkinsfile-do-release b/jenkins/Jenkinsfile-do-release new file mode 100644 index 0000000..124c213 --- /dev/null +++ b/jenkins/Jenkinsfile-do-release @@ -0,0 +1,23 @@ +pipeline { + agent any + + tools { + maven 'Maven-3.5.0' + } + + stages { + stage('Perform release') { + steps { + dir('minager-properties') { + git url:'https://gogs.takiguchi.ovh/Minager/minager-properties.git', branch: 'master', credentialsId: 'a6494064-8130-42fd-9d3d-e7734518c79e' + } + script { + sh ''' + chmod u+x src/main/bash/do-release.bash + src/main/bash/do-release.bash + ''' + } + } + } + } +} \ No newline at end of file diff --git a/src/main/bash/do-release.bash b/src/main/bash/do-release.bash new file mode 100644 index 0000000..b89e260 --- /dev/null +++ b/src/main/bash/do-release.bash @@ -0,0 +1,57 @@ +#!/usr/bin/env bash +function setVersion() +{ + echo 'Update pom.xml file' + mvn versions:set -DnewVersion=$1 + + echo 'Update properties file' + sed -i -z -E "s/minager:\n version: ([0-9]+(\.[0-9]+){2}(-SNAPSHOT)?)/minager:\n version: $1/" \ + minager-properties/application-prod.yml + + echo 'Update Angular app version' + sed -i -E "s/appVersion: '([0-9]+(\.[0-9]+){2}(-SNAPSHOT)?)'/appVersion: $1/" \ + src/main/ts/src/environments/environment.prod.ts +} + +echo 'Retreive the project version...' +VERSION=$(mvn -q \ + -Dexec.executable="echo" \ + -Dexec.args='${project.version}' \ + --non-recursive \ + org.codehaus.mojo:exec-maven-plugin:1.6.0:exec) + +VERSION_MAJOR=$(echo $VERSION | cut -d '-' -f 1 | cut -d '.' -f 1) +VERSION_MINOR=$(echo $VERSION | cut -d '-' -f 1 | cut -d '.' -f 2) +VERSION_PATCH=$(echo $VERSION | cut -d '-' -f 1 | cut -d '.' -f 3) + +RELEASE_VERSION=$(echo $VERSION | cut -d '-' -f 1) + +NEXT_VERSION=$(echo "$VERSION_MAJOR.$(($VERSION_MINOR + 1)).$VERSION_PATCH-SNAPSHOT") + +echo "Project version: $VERSION" +echo "Release version: $RELEASE_VERSION" +echo "Next version: $NEXT_VERSION" + +echo 'Change files to release version' +setVersion $RELEASE_VERSION + +echo 'Git tag for release freezing' +git tag $RELEASE_VERSION +cd minager-properties && git tag $RELEASE_VERSION && cd .. + +echo 'Change files to next version' +setVersion $NEXT_VERSION + +echo 'Git commit and push' +# Minager-properties +cd minager-properties +git add application-prod.yml +git commit -m "Set version for next iteration: $NEXT_VERSION" +git push +cd .. + +# Minager +git add pom.xml +git add src/main/ts/src/environments/environment.prod.ts +git commit -m "Set version for next iteration: $NEXT_VERSION" +git push \ No newline at end of file diff --git a/src/main/bash/minager-service b/src/main/bash/minager-service deleted file mode 100644 index 6a91d09..0000000 --- a/src/main/bash/minager-service +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -USER=minecraft -MINECRAFT_SERVER_PATH=/home/minecraft/minager/ -MINECRAFT_SHELL=minager.sh - -case "$1" in - 'start') - sudo -H -u $USER bash -c "$MINECRAFT_SERVER_PATH/$MINECRAFT_SHELL start" - ;; - 'stop') - sudo -H -u $USER bash -c "$MINECRAFT_SERVER_PATH/$MINECRAFT_SHELL stop" - ;; - 'status') - sudo -H -u $USER bash -c "$MINECRAFT_SERVER_PATH/$MINECRAFT_SHELL status" - ;; - 'restart') - sudo -H -u $USER bash -c "$MINECRAFT_SERVER_PATH/$MINECRAFT_SHELL restart" - ;; - *) - # If no argument, we launch the app in case of server startup - sudo -H -u $USER bash -c "$MINECRAFT_SERVER_PATH/$MINECRAFT_SHELL start &>/dev/null" - # And show the script usage - echo "Usage: /etc/init.d/minecraft {start|stop|status|restart}\n" >&2 - exit 3 - ;; -esac -exit 0 diff --git a/src/main/bash/minager.sh b/src/main/bash/minager.sh deleted file mode 100644 index 9ceb59a..0000000 --- a/src/main/bash/minager.sh +++ /dev/null @@ -1,80 +0,0 @@ -#!/bin/sh -# kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing. -if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then - set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script -fi - -# Colors -RED='\033[0;31m' -GREEN='\033[0;32m' -NC='\033[0m' - -DESC="The Minager web app server" -NAME='minager' -MINECRAFT_HOME='/home/minecraft' -MINAGER_HOME="$MINECRAFT_HOME/minager" -DAEMON_HOME="$MINAGER_HOME/bin" -DAEMON="$DAEMON_HOME/$NAME.jar" -PIDFILE="$DAEMON_HOME/$NAME.pid" -SCRIPTNAME="$DAEMON_HOME/$0" - -start() -{ - # If PIDFILE exists and PID is in running processes - if [ -f $PIDFILE ] && kill -0 `cat $PIDFILE` 2>/dev/null - then - echo 'Service already running\n' - else - echo "Starting service $NAME" - cd $DAEMON_HOME - nohup 2>/dev/null java -jar $DAEMON &>/dev/null & - expr $! - 1 > $PIDFILE - echo "Service started [`cat $PIDFILE`]\n" - fi -} - -stop() -{ - # If PIDFILE doesn't exists or PID isn't in running processes - if [ ! -f "$PIDFILE" ] || ! kill -0 `cat "$PIDFILE"` - then - echo 'Service not running\n' - else - echo 'Stopping service...' - # Send signal to end to the process - kill -15 `cat "$PIDFILE"` && rm -f "$PIDFILE" - echo 'Service stopped\n' - fi -} - -status() -{ - if [ -f $PIDFILE ] && kill -0 `cat $PIDFILE` 2>/dev/null - then - echo "Service is running (${GREEN}● active${NC})\n" - else - echo "Service not running (${RED}● inactive${NC})\n" - fi -} - -case "$1" in - 'start') - start - ;; - 'stop') - stop - ;; - 'status') - status - ;; - 'restart') - stop - sleep 5 - start - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|status|restart}\n" >&2 - exit 3 - ;; -esac -exit 0 diff --git a/src/main/bash/minecraft-server/minecraft-server-service b/src/main/bash/minecraft-server/minecraft-server-service deleted file mode 100644 index 67cee47..0000000 --- a/src/main/bash/minecraft-server/minecraft-server-service +++ /dev/null @@ -1,28 +0,0 @@ -#!/bin/sh - -USER=takiguchi -MINECRAFT_SERVER_PATH=/home/minecraft/server -MINECRAFT_SHELL=minecraft-server.sh - -case "$1" in - 'start') - sudo -H -u $USER bash -c "$MINECRAFT_SERVER_PATH/$MINECRAFT_SHELL start" - ;; - 'stop') - sudo -H -u $USER bash -c "$MINECRAFT_SERVER_PATH/$MINECRAFT_SHELL stop" - ;; - 'status') - sudo -H -u $USER bash -c "$MINECRAFT_SERVER_PATH/$MINECRAFT_SHELL status" - ;; - 'restart') - sudo -H -u $USER bash -c "$MINECRAFT_SERVER_PATH/$MINECRAFT_SHELL restart" - ;; - *) - # If no argument, we launch the app in case of server startup - sudo -H -u $USER bash -c "$MINECRAFT_SERVER_PATH/$MINECRAFT_SHELL start &>/dev/null" - # And show the script usage - echo "Usage: /etc/init.d/minecraft {start|stop|status|restart}\n" >&2 - exit 3 - ;; -esac -exit 0 diff --git a/src/main/bash/minecraft-server/minecraft-server.sh b/src/main/bash/minecraft-server/minecraft-server.sh deleted file mode 100644 index 2f22097..0000000 --- a/src/main/bash/minecraft-server/minecraft-server.sh +++ /dev/null @@ -1,159 +0,0 @@ -#!/bin/sh -# kFreeBSD do not accept scripts as interpreters, using #!/bin/sh and sourcing. -if [ true != "$INIT_D_SCRIPT_SOURCED" ] ; then - set "$0" "$@"; INIT_D_SCRIPT_SOURCED=true . /lib/init/init-d-script -fi - -# Colors -RED='\033[0;31m' -GREEN='\033[0;32m' -NC='\033[0m' - -DESC="The Minecraft server" -NAME='minecraft-server' -MINECRAFT_HOME='/home/minecraft' -DAEMON_HOME="$MINECRAFT_HOME/server" -DAEMON="$DAEMON_HOME/$NAME.jar" -PIDFILE="$DAEMON_HOME/$NAME.pid" -SCRIPTNAME="$DAEMON_HOME/$0" -JAVA_OPT='-Xms=512M -Xmx=2048M' - -# *********************************************** -# Normal functions for bash commands. -# *********************************************** -start() -{ - # If PIDFILE exists and PID is in running processes - if [ -f $PIDFILE ] && kill -0 `cat $PIDFILE` 2>/dev/null - then - echo 'Service already running\n' - else - echo "Starting service $NAME" - cd $DAEMON_HOME - nohup 2>/dev/null java $JAVA_OPT -jar $DAEMON &>/dev/null & - expr $! - 1 > $PIDFILE - echo "Service started [`cat $PIDFILE`]\n" - fi -} - -stop() -{ - # If PIDFILE doesn't exists or PID isn't in running processes - if [ ! -f "$PIDFILE" ] || ! kill -0 `cat "$PIDFILE"` - then - echo 'Service not running\n' - else - echo 'Stopping service...' - # Send signal to end to the process - kill -15 `cat "$PIDFILE"` && rm -f "$PIDFILE" - echo 'Service stopped\n' - fi -} - -status() -{ - if [ -f $PIDFILE ] && kill -0 `cat $PIDFILE` 2>/dev/null - then - echo "Service is running (${GREEN}● active${NC})\n" - else - echo "Service not running (${RED}● inactive${NC})\n" - fi -} - -# *********************************************** -# Commands used by Minager to drive the server. -# *********************************************** -api_check_error() -{ - if [ $1 != 0 ] - then - exit 1 - fi -} - -api_status() -{ - if [ -f $PIDFILE ] && kill -0 `cat $PIDFILE` 2>/dev/null - then - echo 1 # Running - else - echo 0 # Stopped - fi -} - -api_start() { - # If PIDFILE exists and PID is in running processes - if [ -f $PIDFILE ] && kill -0 `cat $PIDFILE` 2>/dev/null - then - exit 2 # STATE_UNCHANGED - else - cd $DAEMON_HOME - api_check_error $? - - nohup 2>/dev/null java $JAVA_OPT -jar $DAEMON &>/dev/null & - api_check_error $? - - expr $! - 1 > $PIDFILE - api_check_error $? - fi -} - -api_stop() -{ - # If PIDFILE doesn't exists or PID isn't in running processes - if [ ! -f "$PIDFILE" ] || ! kill -0 `cat "$PIDFILE"` - then - exit 2 # STATE_UNCHANGED - else - # Send signal to end to the process - kill -15 `cat "$PIDFILE"` && rm -f "$PIDFILE" - api_check_error $? - fi -} - -api_restart() -{ - # Stop if running - if [ $(api_status) = 1 ] - then - kill -15 `cat "$PIDFILE"` && rm -f "$PIDFILE" - api_check_error $? - fi - - sleep 5 - api_start -} - -case "$1" in - 'start') - start - ;; - 'stop') - stop - ;; - 'status') - status - ;; - 'restart') - stop - sleep 5 - start - ;; - 'api_status') - api_status - ;; - 'api_start') - api_start - ;; - 'api_stop') - api_stop - ;; - 'api_restart') - api_restart - ;; - *) - echo "Usage: $SCRIPTNAME {start|stop|status|restart}\n" >&2 - exit 3 - ;; -esac -exit 0