Add gitlab ci workflow

Change-Id: I78b1aefdc6d413d1aafc5d8f524f3d36368baae3
diff --git a/ci/html2pdf b/ci/html2pdf
new file mode 100755
index 0000000..971ccd3
--- /dev/null
+++ b/ci/html2pdf
@@ -0,0 +1,11 @@
+#!/bin/sh -eu
+in=$1 out=$2 page0=${3:-} page1=${4:-$page0}
+${CHROME:-chromium-browser} --no-sandbox --headless --disable-gpu \
+    --run-all-compositor-stages-before-draw \
+     --no-pdf-header-footer --print-to-pdf="$out" "$in"
+GS_ARGS=
+if [ -n "$page0" ]; then
+        GS_ARGS="-dFirstPage=$page0 -dLastPage=$page1"
+fi
+gs -sDEVICE=pdfwrite -dNOPAUSE -dBATCH $GS_ARGS -sOutputFile="$2.tmp" "$2"
+mv "$2.tmp" "$2"
diff --git a/ci/section_helper.sh b/ci/section_helper.sh
new file mode 100644
index 0000000..ddefe0d
--- /dev/null
+++ b/ci/section_helper.sh
@@ -0,0 +1,20 @@
+#!/bin/bash
+
+# Reference: https://docs.gitlab.com/ee/ci/jobs/#custom-collapsible-sections
+
+#
+# Takes 2 Parameters a new section id and a heading/title
+#
+function start_section() {
+  id=$1
+  title=$2
+  echo -e "\e[0Ksection_start:$(date +%s):${id}[collapsed=true]\r\e[0K\e[36;1m${title}\e[0m"
+}
+
+#
+# Takes 1 Parameter, the unique section id of the section that should end
+#
+function end_section() {
+  id=$1
+  echo -e "\e[0Ksection_end:$(date +%s):${id}\r\e[0K"
+}