summaryrefslogtreecommitdiff
path: root/Jenkinsfile
diff options
context:
space:
mode:
Diffstat (limited to 'Jenkinsfile')
-rw-r--r--Jenkinsfile82
1 files changed, 82 insertions, 0 deletions
diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 00000000..74c86249
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,82 @@
+#!/usr/bin/env groovy
+
+node('master') {
+ def changelog = getChangeLog currentBuild
+
+ slackSend "Building ${env.JOB_NAME} #${env.BUILD_NUMBER} \n Change Log: \n ${changelog}"
+}
+
+parallel 'centos7': {
+ node('centos7') {
+ try {
+ checkout scm
+
+ stage('Build Centos 7') {
+ sh 'make -f make-linux.mk'
+ }
+ }
+ catch (err) {
+ currentBuild.result = "FAILURE"
+ slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on Centos 7 (<${env.BUILD_URL}|Open>)"
+
+ throw err
+ }
+ }
+}, 'android-ndk': {
+ node('android-ndk') {
+ try {
+ checkout scm
+
+ stage('Build Android NDK') {
+ sh "/android/android-ndk-r13b/ndk-build -C $WORKSPACE/java ZT1=${WORKSPACE}"
+ }
+ }
+ catch (err) {
+ currentBuild.result = "FAILURE"
+ slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on Android NDK (<${env.BUILD_URL}|Open>)"
+
+ throw err
+ }
+ }
+}, 'macOS': {
+ node('macOS') {
+ try {
+ checkout scm
+
+ stage('Build macOS') {
+ sh 'make -f make-mac.mk'
+ }
+
+ stage('Build macOS UI') {
+ sh 'cd macui && xcodebuild -target "ZeroTier One" -configuration Debug'
+ }
+ }
+ catch (err) {
+ currentBuild.result = "FAILURE"
+ slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on macOS (<${env.BUILD_URL}|Open>)"
+
+ throw err
+ }
+ }
+}, 'windows': {
+ node('windows') {
+ try {
+ checkout scm
+
+ stage('Build Windows') {
+ bat '''CALL "C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\vcvarsall.bat" amd64
+git clean -dfx
+msbuild windows\\ZeroTierOne.sln
+'''
+ }
+ }
+ catch (err) {
+ currentBuild.result = "FAILURE"
+ slackSend color: '#ff0000', message: "${env.JOB_NAME} broken on Windows (<${env.BUILD_URL}|Open>)"
+
+ throw err
+ }
+ }
+}
+
+slackSend color: "#00ff00", message: "${env.JOB_NAME} #${env.BUILD_NUMBER} Complete (<${env.BUILD_URL}|Show More...>)"