From 77cd36c158624808e657e5dbb5ec8bc026fafa55 Mon Sep 17 00:00:00 2001 From: Miquel Sabaté Solà Date: Mon, 19 Feb 2018 17:02:50 +0100 Subject: Sorted out how to properly deploy MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Miquel Sabaté Solà --- script/build.sh | 35 +++++++++++++++++++++++++++++++++++ script/post-receive | 43 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+) create mode 100755 script/build.sh create mode 100644 script/post-receive (limited to 'script') diff --git a/script/build.sh b/script/build.sh new file mode 100755 index 0000000..7d24c09 --- /dev/null +++ b/script/build.sh @@ -0,0 +1,35 @@ +#!/usr/bin/env bash +# Copyright (C) 2018 Miquel Sabaté Solà +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +set -ex + +DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )/.." && pwd )" +pushd $DIR + +# The build source and destination directories. This is done this way so we +# can re-use this script when deploying. +: ${BUILD_SOURCE:=.} +: ${BUILD_DEST:=./_site} + +# Clean up previous build. +rm -rf $BUILD_DEST + +# Build && test. +bundle exec jekyll build -s $BUILD_SOURCE -d $BUILD_DEST +bundle exec rubocop +bundle exec rake + +echo "Jekyll has built your application in '$BUILD_DEST'" diff --git a/script/post-receive b/script/post-receive new file mode 100644 index 0000000..3f4f8ee --- /dev/null +++ b/script/post-receive @@ -0,0 +1,43 @@ +#!/usr/bin/env bash +# Copyright (C) 2018 Miquel Sabaté Solà +# +# This program is free software: you can redistribute it and/or modify +# it under the terms of the GNU Affero General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU Affero General Public License for more details. +# +# You should have received a copy of the GNU Affero General Public License +# along with this program. If not, see . + +# +# This script is based on the one from the documentation of Jekyll. +# + +NAME=jo +GIT_REPO=$HOME/$NAME.git +TARGET_BRANCH=master + +# Exported so it's picked by the `script/build.sh` script. +export BUILD_SOURCE=$HOME/tmp/$NAME +export BUILD_DEST=/srv/$NAME/www + +while read oldrev newrev refname +do + branch=$(git rev-parse --symbolic --abbrev-ref $refname) + if [ -n "$branch" ] && [ "$TARGET_BRANCH" == "$branch" ]; then + # Re-generate git repository in a temporary directory. + rm -Rf $TMP_GIT_CLONE + git clone $GIT_REPO $BUILD_SOURCE + + # Build site + chmod +x $BUILD_SOURCE/script/build.sh + BUNDLE_GEMFILE=$BUILD_SOURCE/Gemfile bundle install + BUNDLE_GEMFILE=$BUILD_SOURCE/Gemfile $BUILD_SOURCE/script/build.sh + rm -Rf $BUILD_SOURCE + fi +done -- cgit v1.2.3