Skip to content
Snippets Groups Projects
Select Git revision
  • test_immutable_data_array
  • develop default protected
  • NXCALS-7141-Upgrade-to-Spring-6-and-new-baseline
  • feature-NXCALS-8169-extractor-grouping-api
  • master protected
  • feature-NXCALS-8254-python-metadata-api
  • feature-NXCALS-8085-include-all-merged-commits-in-release-notes
  • feature-NXCALS-8077-add-fundamentals-to-get-for-variables
  • NXCALS-7994-Upgrade-NXCALS-to-Java-17
  • feature-7971-adapt-for-tracing-tests
  • NXCALS-7948-experiment-with-failing-curl
  • feature-NXCALS-7914-fix-union-in-pytimber
  • NXCALS-7905-Python-version-of-expanded-DataQuery
  • NXCALS-7851-limit-number-of-io-operations-with-hdfs-on-close
  • feature-NXCALS-7698-moving-sonar-to-rhel9
  • NXCALS-7429-refactor-pipeline
  • NXCALS-7620-add-udf-for-array-conversion
  • feature-7612-use-of-pinned-versions-in-pytimber
  • NXCALS-7602-fix-empty-ds-when-aggregating-and-filtering-by-fundamentals
  • NXCALS-7505-Prepare-Spark-jars-ansible-to-put-on-HDFS
  • NXCALS-7502-improve-integration-test-sh
  • to-be-released
  • 1.6.17
  • PRO-RELEASE-1.6.17
  • 1.6.16
  • PRO-RELEASE-1.6.16
  • 1.6.15
  • PRO-RELEASE-1.6.15
  • 1.6.14
  • PRO-RELEASE-1.6.14
  • 1.6.13
  • PRO-RELEASE-1.6.13
  • 1.6.12
  • PRO-RELEASE-1.6.12
  • 1.6.11
  • PRO-RELEASE-1.6.11
  • 1.6.10
  • PRO-RELEASE-1.6.10
  • 1.6.9
  • PRO-RELEASE-1.6.9
  • 1.6.8
41 results

gitlab_CI.jenkinsfile

Blame
  • Rafal Mucha's avatar
    NXCALS-6679 Use nxcals-ci labeled nodes to run gitlab_CI
    Rafal Mucha authored
    7c11da62
    History
    Code owners
    Assign users and groups as approvers for specific file changes. Learn more.
    gitlab_CI.jenkinsfile 4.55 KiB
    pipeline {
        agent { label 'nxcals-ci' }
        options {
            gitlabBuilds(builds: ['Build', 'Test', 'Coverage', 'Sonar', 'Gate', 'Clean'])
            timeout(time: 40, unit: 'MINUTES')
        }
    
        environment {
            GITLAB_MR_USER_NAME = "${env.gitlabMergedByUser}"
            spring_profiles_active = "gitlab-ci"
            JAVA_HOME="${tool 'jdk1.11'}"
        }
        stages {
            stage ("Build") {
                steps {
                    echo "Environment variables available on start of this build:"
                    sh 'printenv | sort'
                    sh '$JAVA_HOME/bin/java --version'
    
                    updateGitlabCommitStatus name: 'Build', state: 'running'
                    sh './gradlew clean build -x test --no-daemon --parallel --stacktrace'
                }
                post {
                    success {
                        updateGitlabCommitStatus name: 'Build', state: 'success'
                    }
                    failure {
                        updateGitlabCommitStatus name: 'Build', state: 'failed'
                    }
                    aborted {
                        updateGitlabCommitStatus name: 'Build', state: 'canceled'
                    }
                }
            }
    
            stage ("Test") {
                steps {
                    updateGitlabCommitStatus name: 'Test', state: 'running'
                    sh './gradlew test -q --no-daemon --parallel'
    
                }
                post {
                    always {
                        //publish junits to jenkins plan
                        junit '**/build/test-results/test/*.xml'
    
                    }
                    success {
                        updateGitlabCommitStatus name: 'Test', state: 'success'
                    }
                    failure {
                        updateGitlabCommitStatus name: 'Test', state: 'failed'
                    }
                    aborted {
                        updateGitlabCommitStatus name: 'Test', state: 'canceled'
                    }
                }
            }
    
    
           stage ("Coverage") {
                steps {
                    updateGitlabCommitStatus name: 'Coverage', state: 'running'
                    sh './gradlew jacocoTestReport --no-daemon --parallel'
                }
                post {
                    success {
                        updateGitlabCommitStatus name: 'Coverage', state: 'success'
                    }
                    failure {
                        updateGitlabCommitStatus name: 'Coverage', state: 'failed'
                    }
                    aborted {
                        updateGitlabCommitStatus name: 'Coverage', state: 'canceled'
                    }
                }
            }
    
            stage ("Sonar") {
                steps {
                    updateGitlabCommitStatus name: 'Sonar', state: 'running'
                    withSonarQubeEnv('CERN-NXCALS sonar') {
                        withCredentials([string(credentialsId: 'jwozniak-gitlab-api-token', variable: 'api_token')]){
                            sh './gradlew sonarqube -Dapi_token=${api_token} --no-daemon --parallel'
                        }
                    }
                }
                post {
                    success {
                        updateGitlabCommitStatus name: 'Sonar', state: 'success'
                    }
                    failure {
                        updateGitlabCommitStatus name: 'Sonar', state: 'failed'
                    }
                    aborted {
                        updateGitlabCommitStatus name: 'Sonar', state: 'canceled'
                    }
                }
            }
    
            stage ("Gate") {
                steps {
                    updateGitlabCommitStatus name: 'Gate', state: 'running'
                    timeout(time: 10, unit: 'MINUTES') {
                        waitForQualityGate abortPipeline: true
                    }
                }
                post {
                    success {
                        updateGitlabCommitStatus name: 'Gate', state: 'success'
                    }
                    failure {
                        updateGitlabCommitStatus name: 'Gate', state: 'failed'
                    }
                    aborted {
                        updateGitlabCommitStatus name: 'Gate', state: 'canceled'
                    }
                }
            }
    
            stage ("Clean") {
                steps {
                    updateGitlabCommitStatus name: 'Clean', state: 'running'
                    sh './gradlew clean --no-daemon'
                }
                post {
                    success {
                        updateGitlabCommitStatus name: 'Clean', state: 'success'
                    }
                    failure {
                        updateGitlabCommitStatus name: 'Clean', state: 'failed'
                    }
                    aborted {
                        updateGitlabCommitStatus name: 'Clean', state: 'canceled'
                    }
                }
            }
        }
    }