Add initial Jenkins pipeline script
authorYury V. Zaytsev <yury.zaytsev@moneymeets.com>
Tue, 29 Nov 2016 18:49:25 +0000 (19:49 +0100)
committerJoey Hess <joeyh@joeyh.name>
Thu, 1 Dec 2016 16:05:26 +0000 (12:05 -0400)
Signed-off-by: Yury V. Zaytsev <yury.zaytsev@moneymeets.com>
Jenkinsfile [new file with mode: 0644]

diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644 (file)
index 0000000..66d3753
--- /dev/null
@@ -0,0 +1,55 @@
+currentBuild.result = 'SUCCESS'
+def caught_exception = null
+
+final def EMAIL_RECIPIENTS = 'joey+git-annex@joeyh.name'
+
+properties([
+        buildDiscarder(logRotator(artifactNumToKeepStr: '1')),
+        pipelineTriggers([[$class: 'hudson.triggers.SCMTrigger', scmpoll_spec: ''],])  // pollScm('') in 2.22+
+])
+
+try {
+
+    node('windows') {
+
+        dir('git-annex') {
+
+            stage('Checkout') {
+                checkout scm
+            }
+
+            stage('Build') {
+                bat 'c:/msysgit/bin/sh standalone/windows/build.sh'
+            }
+
+            stage('Archive') {
+                archiveArtifacts 'git-annex-installer.exe,dist/build-version'
+            }
+
+            stage('Upload') {
+                withCredentials([usernamePassword(credentialsId: 'rsync-downloads-kitenet-net', passwordVariable: 'RSYNC_PASSWORD', usernameVariable: 'DUMMY')]) {
+                    bat 'c:/cygwin/bin/rsync git-annex-installer.exe winautobuild@downloads.kitenet.net::winautobuild'
+                    bat 'c:/cygwin/bin/rsync dist/build-version winautobuild@downloads.kitenet.net::winautobuild'
+                }
+            }
+
+        }
+
+    }
+
+} catch (exception) {
+
+    caught_exception = exception
+    currentBuild.result = 'FAILURE'
+
+} finally {
+
+    node('master') {
+        step([$class: 'Mailer', notifyEveryUnstableBuild: false, recipients: EMAIL_RECIPIENTS, sendToIndividuals: false])
+    }
+
+    if (caught_exception) {
+        throw caught_exception
+    }
+
+}