From d0cfbdf3cfd3b45e0957f2aef040547fda00d9d3 Mon Sep 17 00:00:00 2001 From: Oliver Jowett Date: Tue, 28 Aug 2018 23:15:31 +0100 Subject: [PATCH] Build automation --- Jenkinsfile | 46 ++++++++++++++++++++++++++++++++++++++++++++++ prepare-build.sh | 3 +++ 2 files changed, 49 insertions(+) create mode 100644 Jenkinsfile diff --git a/Jenkinsfile b/Jenkinsfile new file mode 100644 index 0000000..b6a2607 --- /dev/null +++ b/Jenkinsfile @@ -0,0 +1,46 @@ +node(label: 'raspberrypi') { + def dists = ["stretch", "jessie", "wheezy"] + def srcdir = "${WORKSPACE}/src" + + stage('Checkout') { + sh "rm -fr ${srcdir}" + sh "mkdir ${srcdir}" + dir(srcdir) { + checkout scm + } + } + + for (int i = 0; i < dists.size(); ++i) { + def dist = dists[i] + def pkgdir = "package-${dist}" + def results = "results-${dist}" + + stage("Prepare source for ${dist}") { + sh "rm -fr ${pkgdir}" + sh "${srcdir}/prepare-build.sh ${dist} ${pkgdir}" + } + + stage("Build for ${dist}") { + sh "rm -fr ${results}" + sh "mkdir -p ${results}" + dir(pkgdir) { + sh "DIST=${dist} pdebuild --use-pdebuild-internal --debbuildopts -b --buildresult ${WORKSPACE}/${results}" + } + archiveArtifacts artifacts: "${results}/*.deb", fingerprint: true + } + + stage("Test install on ${dist}") { + sh "/build/repo/validate-packages.sh ${dist} ${results}/dump1090-fa_*.deb ${results}/dump1090_*.deb" + } + } + + if (env.BRANCH_NAME == "master" || env.BRANCH_NAME == "dev") { + stage("Deploy to staging repo") { + for (int i = 0; i < dists.size(); ++i) { + def dist = dists[i] + def results = "results-${dist}" + sh "/build/repo/deploy-packages.sh ${dist} ${results}/*.deb" + } + } + } +} diff --git a/prepare-build.sh b/prepare-build.sh index 9efd706..ef0a467 100755 --- a/prepare-build.sh +++ b/prepare-build.sh @@ -11,6 +11,9 @@ then exit 1 fi +export DEBFULLNAME=${DEBFULLNAME:-FlightAware build automation} +export DEBEMAIL=${DEBEMAIL:-adsb-devs@flightaware.com} + TOP=`dirname $0` DIST=$1 OUT=$2