summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitattributes2
-rw-r--r--ci-build-script.sh79
2 files changed, 81 insertions, 0 deletions
diff --git a/.gitattributes b/.gitattributes
new file mode 100644
index 0000000..9f7a0cb
--- /dev/null
+++ b/.gitattributes
@@ -0,0 +1,2 @@
+.gitattributes export-ignore
+ci-build-script.sh export-ignore
diff --git a/ci-build-script.sh b/ci-build-script.sh
new file mode 100644
index 0000000..feb65f8
--- /dev/null
+++ b/ci-build-script.sh
@@ -0,0 +1,79 @@
+# build debian source package in CI
+
+# check for parameters
+if [ "x${SRC_VER}" = "x" -o "x${SRC_ARCHIVE}" = "x" -o "x${SRC_DESTDIR}" = "x" -o "x${PREV_VER}" = "x" ];then
+echo "Missing parameters"
+exit 1
+fi
+
+# ensure Debian suite is set
+if [ "x${1}" = "x" ]; then
+DEBIAN_SUITE=buster
+fi
+
+# show parameters
+echo DEBIAN_SUITE=${DEBIAN_SUITE}
+echo SRC_VER=${SRC_VER}
+echo SRC_ARCHIVE=${SRC_ARCHIVE}
+echo SRC_DESTDIR=${SRC_DESTDIR}
+echo PREV_VER=${PREV_VER}
+
+SCPUSER=netsurf
+SCPBASE=/srv/ci.netsurf-browser.org/html
+SCPSRV=ci.netsurf-browser.org
+
+# if parameters file is present from previous run use it for previous debian version
+if [ -f PARAMETERS ];then
+ PREV_DEB_VER=$(sed -ne '/^[ ]*DEB_VER[ ]*=[ ]*.*/ { s#^[ ]*DEB_VER[ ]*=[ ]*##; p; }' PARAMETERS)
+ # ensure any stale parameters file is removed
+ rm -f PARAMETERS
+else
+ PREV_DEB_VER="${PREV_VER}-1"
+fi
+
+DEB_VER="${SRC_VER}-1"
+DEB_SRC_DESTDIR=${SCPBASE}/debian/${DEBIAN_SUITE}/source
+
+
+# copy the source tar here
+if [ ! -f netsurf_${SRC_VER}.orig.tar.gz ];then
+scp ${SCPUSER}@ci.netsurf-browser.org:${SRC_DESTDIR}/${SRC_ARCHIVE} netsurf_${SRC_VER}.orig.tar.gz
+fi
+
+# remove any existing source
+if [ -d netsurf-${SRC_VER} ];then
+rm -rf netsurf-${SRC_VER}
+fi
+
+# unpack source tar and ensure the directory name is correct
+tar -axf netsurf_${SRC_VER}.orig.tar.gz
+mv netsurf-all-${SRC_VER} netsurf-${SRC_VER}
+
+# get the base debian packaging
+(cd debian && git archive --prefix=debian/ --format=tar HEAD) | tar -xC netsurf-${SRC_VER}
+
+# update version
+(cd netsurf-${SRC_VER} && dch -b --newversion "${DEB_VER}" "CI build")
+
+# build source deb
+(cd netsurf-${SRC_VER} && debuild -S -us -uc -nc -Zxz)
+
+# copy source deb to published area
+scp netsurf_${DEB_VER}.dsc netsurf_${DEB_VER}.debian.tar.xz netsurf_${SRC_VER}.orig.tar.gz ${SCPUSER}@${SCPSRV}:${DEB_SRC_DESTDIR}
+
+# remove old versions
+ssh ${SCPUSER}@${SCPSRV} "rm -f ${DEB_SRC_DESTDIR}/netsurf_${PREV_DEB_VER}.dsc ${DEB_SRC_DESTDIR}/netsurf_${PREV_DEB_VER}.debian.tar.xz ${DEB_SRC_DESTDIR}/netsurf_${PREV_VER}.orig.tar.gz"
+
+#cleanup
+rm -f netsurf_${DEB_VER}.dsc netsurf_${DEB_VER}.debian.tar.xz netsurf_${SRC_VER}.orig.tar.gz
+rm -rf netsurf-${SRC_VER}
+
+# setup trigger parameters for package builds
+echo "SRC_VER=${SRC_VER}" > PARAMETERS
+echo "PREV_VER=${PREV_VER}" >> PARAMETERS
+echo "DEB_VER=${DEB_VER}" >> PARAMETERS
+echo "PREV_DEB_VER=${PREV_DEB_VER}" >> PARAMETERS
+echo "SRC_ARCHIVE=${SRC_ARCHIVE}" >>PARAMETERS
+echo "SRC_DESTDIR=${SRC_DESTDIR}" >>PARAMETERS
+echo "DEB_SRC_DESTDIR=${DEB_SRC_DESTDIR}" >>PARAMETERS
+