summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKarel Kočí <cynerd@email.cz>2018-09-07 17:18:29 +0200
committerKarel Kočí <cynerd@email.cz>2018-09-07 17:18:29 +0200
commitaa508028036ea01683b07cb9fc2812dc35bc9b65 (patch)
tree8334be3d7e2817281b857e8f450291a3504856fa
parent901d7020373e43d441fea5ab8f14492026b66671 (diff)
downloadlaminar-cnf-aa508028036ea01683b07cb9fc2812dc35bc9b65.tar.gz
laminar-cnf-aa508028036ea01683b07cb9fc2812dc35bc9b65.tar.bz2
laminar-cnf-aa508028036ea01683b07cb9fc2812dc35bc9b65.zip
Add fake laminar execution possibility
-rw-r--r--fakelaminar55
-rw-r--r--job.common (renamed from scripts/common)5
-rwxr-xr-xjobs/alpine-amd64.run3
-rwxr-xr-xtemplates/turris3x.run3
-rwxr-xr-xtemplates/turris4x.run3
5 files changed, 60 insertions, 9 deletions
diff --git a/fakelaminar b/fakelaminar
new file mode 100644
index 0000000..4401960
--- /dev/null
+++ b/fakelaminar
@@ -0,0 +1,55 @@
+# vim: ft=sh
+# Fake laminar environment to be able to do test run on any host
+
+# Make sure that we are running this script with absolute path
+echo "$0" | grep -q '^/' || exec "$(pwd)/$0"
+
+# Add path to scripts
+export PATH="$(dirname "$(readlink -f "$0")")/../scripts:$PATH"
+
+# Note: Changing home variable relly changes home directory to local laminar-fake.
+# This does not work for all commands and specially for ssh it does not but we
+# require this because thanks to that we don't have to setup ssh configuration
+# copy.
+export HOME="$PWD/laminar-fake"
+mkdir -p "$HOME"
+
+# Create link to configuration directory
+rm -f "$HOME/cfg"
+ln -s "$(dirname $(readlink -f "$0"))/.." "$HOME/cfg"
+
+# Get name of the job from script name
+export JOB="$(basename "$0" | sed 's/\.run$//')"
+
+JOBDIR="$HOME/run/$JOB"
+mkdir -p "$JOBDIR"
+
+# Set run number
+export RUN="$(ls "$JOBDIR" | sed -n '/^[0-9]\+$/p' | sort --numeric-sort | tail -1)"
+RUN="${RUN:-0}"
+RUN="$(expr "$RUN" + 1)"
+# Create directory for this run
+mkdir -p "$JOBDIR/$RUN"
+cd "$JOBDIR/$RUN"
+
+# Set workspace
+export WORKSPACE="$JOBDIR/workspace"
+mkdir -p "$WORKSPACE"
+
+# Set archive
+export ARCHIVE="$HOME/archive/$JOB/$RUN"
+mkdir -p "$ARCHIVE"
+
+# TODO missing variables: RESULT, LAST_RESULT
+
+# Drop JOBDIR variable
+JOBDIR=
+
+
+# Fake laminarc command
+laminarc() {
+ # TODO this is currently not supported but we should implement it in future.
+ false
+}
+
+echo "========== Laminar environment is faked =========="
diff --git a/scripts/common b/job.common
index 7514ea9..ebe6ab1 100644
--- a/scripts/common
+++ b/job.common
@@ -1,8 +1,7 @@
# vim: ft=sh
-# Laminar guard
+set -e
if [ -z "$WORKSPACE" ]; then
- echo "This script can be run only from laminar build environment!" >&2
- exit 1
+ . "$(dirname "$(readlink -f "$0")")/../fakelaminar"
fi
# Subprocess inclusion guard
diff --git a/jobs/alpine-amd64.run b/jobs/alpine-amd64.run
index 80e8644..f9cfbbc 100755
--- a/jobs/alpine-amd64.run
+++ b/jobs/alpine-amd64.run
@@ -1,7 +1,6 @@
#!/bin/sh
# vim: ft=sh
-set -e
-. common
+. "$(dirname "$(readlink -f "$0")")/../job.common"
if [ -n "$CLEAN" ]; then
echo_stage "Remove root"
diff --git a/templates/turris3x.run b/templates/turris3x.run
index 1327e24..49640cc 100755
--- a/templates/turris3x.run
+++ b/templates/turris3x.run
@@ -1,7 +1,6 @@
#!/bin/sh
# vim: ft=sh
-set -e
-. common
+. "$(dirname "$(readlink -f "$0")")/../job.common"
echo_stage "Get packages"
git_clone "git@cynerd.cz:openwrt-personal-pkgs" pkgs turris3x
diff --git a/templates/turris4x.run b/templates/turris4x.run
index a5405b5..5c39008 100755
--- a/templates/turris4x.run
+++ b/templates/turris4x.run
@@ -1,7 +1,6 @@
#!/bin/sh
# vim: ft=sh
-set -e
-. common
+. "$(dirname "$(readlink -f "$0")")/../job.common"
if [ "$V" -ge 1 ]; then
MAKE="make -j1 IS_TTY=1 BUILD_LOG=1 V=99"