summaryrefslogtreecommitdiff
path: root/Jenkinsfile
diff options
context:
space:
mode:
Diffstat (limited to 'Jenkinsfile')
-rw-r--r--Jenkinsfile55
1 files changed, 55 insertions, 0 deletions
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 000000000..66d3753bd
--- /dev/null
+++ b/Jenkinsfile
@@ -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
+ }
+
+}