aboutsummaryrefslogtreecommitdiff
path: root/script
diff options
context:
space:
mode:
authorMiquel Sabaté Solà <msabate@suse.com>2018-02-19 17:02:50 +0100
committerMiquel Sabaté Solà <msabate@suse.com>2018-02-19 17:02:50 +0100
commit77cd36c158624808e657e5dbb5ec8bc026fafa55 (patch)
tree4141e83d8cd37e7403ebec66bd1f3dcf11a4b8c7 /script
parent3c62a936378e490e99c2ac8955797464216b1691 (diff)
downloadjo.mssola.com-77cd36c158624808e657e5dbb5ec8bc026fafa55.tar.gz
jo.mssola.com-77cd36c158624808e657e5dbb5ec8bc026fafa55.zip
Sorted out how to properly deploy
Signed-off-by: Miquel Sabaté Solà <msabate@suse.com>
Diffstat (limited to 'script')
-rwxr-xr-xscript/build.sh35
-rw-r--r--script/post-receive43
2 files changed, 78 insertions, 0 deletions
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à <mikisabate@gmail.com>
+#
+# 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 <https://www.gnu.org/licenses/>.
+
+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à <mikisabate@gmail.com>
+#
+# 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 <https://www.gnu.org/licenses/>.
+
+#
+# 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