From 9323ee4a19a0d4dbd37529a75f4eb58c6d8bdb75 Mon Sep 17 00:00:00 2001
From: Bach Nguyen <bachnguyen0426@gmail.com>
Date: Wed, 28 Jul 2021 08:49:43 +0000
Subject: [PATCH] Jenkins in Gitlab CI integration

---
 Jenkinsfile | 87 +++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 87 insertions(+)
 create mode 100644 Jenkinsfile

diff --git a/Jenkinsfile b/Jenkinsfile
new file mode 100644
index 000000000..ba6953346
--- /dev/null
+++ b/Jenkinsfile
@@ -0,0 +1,87 @@
+pipeline {
+    agent any
+    stages {
+        stage('simox') {
+            steps {
+                script {
+                    def BUILD_STATUS = sh(script: "rm -rf ~/.cmake && mkdir -p build && cd build && cmake .. && make", returnStatus: true)
+
+                    if (BUILD_STATUS == 0) {
+                        updateGitlabCommitStatus name: 'Build simox', state: 'success'    
+                    } else {
+                        updateGitlabCommitStatus name: 'Build simox', state: 'failed'
+                        error("Build simox failed!")
+                    }
+
+                    def TEST_STATUS = sh(script: "cd build && ctest --output-on-failure", returnStatus: true)
+
+                    if (TEST_STATUS == 0) {
+                        updateGitlabCommitStatus name: 'Test simox', state: 'success'    
+                    } else {
+                        updateGitlabCommitStatus name: 'Test simox', state: 'failed'
+                    }
+                }
+            }
+        }
+
+        stage('MMMCore') {
+            steps {
+                script {
+                    def STATUS = build job: 'gitlab/MMMCore', wait: true, propagate: false
+
+                    if (STATUS.buildVariables.BUILD_STATUS == "0") {
+                        updateGitlabCommitStatus name: 'Build MMMCore', state: 'success'
+                        if (STATUS.buildVariables.TEST_STATUS == "0") {
+                            updateGitlabCommitStatus name: 'Test MMMCore', state: 'success'
+                        } else {
+                            updateGitlabCommitStatus name: 'Test MMMCore', state: 'failed'
+                        }
+                    } else {
+                        updateGitlabCommitStatus name: 'Build MMMCore', state: 'failed'
+                    }
+                }
+            }
+        }
+
+        stage('ArmarXCore') {
+            steps {
+                script {
+                    def STATUS = build job: 'gitlab/ArmarXCore', wait: true, propagate: false
+
+                    echo STATUS.buildVariables.BUILD_STATUS
+
+                    if (STATUS.buildVariables.BUILD_STATUS == "0") {
+                        updateGitlabCommitStatus name: 'Build ArmarXCore', state: 'success'
+                        if (STATUS.buildVariables.TEST_STATUS == "0") {
+                            updateGitlabCommitStatus name: 'Test ArmarXCore', state: 'success'
+                        } else {
+                            updateGitlabCommitStatus name: 'Test ArmarXCore', state: 'failed'
+                        }
+                    } else {
+                        updateGitlabCommitStatus name: 'Build ArmarXCore', state: 'failed'
+                    }
+                }
+            }
+        }
+
+        stage('MMMTools') {
+            steps {
+                script {
+                    def STATUS = build job: 'gitlab/MMMTools', wait: true, propagate: false
+
+                    if (STATUS.buildVariables.BUILD_STATUS == "0") {
+                        updateGitlabCommitStatus name: 'Build MMMTools', state: 'success'
+                        if (STATUS.buildVariables.TEST_STATUS == "0") {
+                            updateGitlabCommitStatus name: 'Test MMMTools', state: 'success'
+                        } else {
+                            updateGitlabCommitStatus name: 'Test MMMTools', state: 'failed'
+                        }
+                    } else {
+                        updateGitlabCommitStatus name: 'Build MMMTools', state: 'failed'
+                    }
+                }
+            }
+        }
+
+    }
+}
-- 
GitLab