172 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
			
		
		
	
	
			172 lines
		
	
	
		
			6.9 KiB
		
	
	
	
		
			Groovy
		
	
	
	
	
	
| pipeline {
 | |
|     agent none
 | |
|     options {
 | |
|         buildDiscarder(logRotator(numToKeepStr: '5', daysToKeepStr: '30'))
 | |
|         timestamps()
 | |
|         timeout(unit: 'HOURS', time: 2)
 | |
|     }
 | |
|     
 | |
|     stages {
 | |
|         stage ('Parallel') {
 | |
|             parallel {
 | |
|                 stage ('Linux') {
 | |
|                     agent { label 'docker-amt' }
 | |
|                     stages {
 | |
|                         stage ('Cloning Repository') {
 | |
|                             steps {
 | |
|                                 script {
 | |
|                                     scmCheckout {
 | |
|                                         clean = true
 | |
|                                     }
 | |
|                                 }
 | |
|                             }
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|                 stage ('Windows') {
 | |
|                     agent { label 'openamt-win' }
 | |
|                     stages {
 | |
|                         stage ('Cloning Repository') {
 | |
|                             steps {
 | |
|                                 script {
 | |
|                                     scmCheckout {
 | |
|                                         clean = true
 | |
|                                     }
 | |
|                                 }
 | |
|                             }
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         stage ('Static Code Scan - Protex') {
 | |
|             agent { label 'docker-amt' }
 | |
|             steps {
 | |
|                 script {
 | |
|                     staticCodeScan {
 | |
|                         // generic
 | |
|                         scanners             = ['protex']
 | |
|                         scannerType          = ['c','c++']
 | |
| 
 | |
|                         protexProjectName    = 'OpenAMT - RPC'
 | |
|                         // internal, do not change
 | |
|                         protexBuildName      = 'rrs-generic-protex-build'
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
| 
 | |
|         stage ('Parallel Builds') {
 | |
|             parallel {
 | |
|                 stage ('Linux') {
 | |
|                     agent { label 'docker-amt' }
 | |
|                     stages {
 | |
|                         stage('Build') {
 | |
|                             agent {
 | |
|                                 docker {
 | |
|                                     image 'ubuntu:18.04'
 | |
|                                     reuseNode true
 | |
|                                 }
 | |
|                             }
 | |
|                             steps {
 | |
|                                 sh './scripts/jenkins-pre-build.sh'
 | |
|                                 sh './scripts/jenkins-build.sh'
 | |
|                             }
 | |
|                         }
 | |
|                         stage ('Archive') {
 | |
|                             steps {
 | |
|                                 archiveArtifacts allowEmptyArchive: true, artifacts: 'build/rpc', caseSensitive: false, onlyIfSuccessful: true
 | |
|                             }
 | |
|                         }
 | |
|                         
 | |
|                     }
 | |
|                 }
 | |
|                 stage ('Windows') {
 | |
|                     agent { label 'openamt-win' }
 | |
|                     stages{
 | |
|                         stage ('Build') {
 | |
|                             steps {
 | |
|                                 bat 'scripts\\jenkins-pre-build.cmd'
 | |
|                                 bat 'scripts\\jenkins-build.cmd'
 | |
|                                 // prepare stash for the binary scan
 | |
|                                 stash includes: "**/*.exe", name: 'rpc-app'
 | |
|                             }
 | |
|                         }
 | |
|                         stage ('Archive') {
 | |
|                             steps {
 | |
|                                 archiveArtifacts allowEmptyArchive: true, artifacts: 'build\\Release\\rpc.exe', caseSensitive: false, onlyIfSuccessful: true
 | |
|                             }
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|         stage ('Parallel Scans') {
 | |
|             parallel {
 | |
|                 stage ('Static Code Scan Linux') {
 | |
|                     agent { label 'docker-amt' }
 | |
|                     steps {
 | |
|                         script {
 | |
|                             staticCodeScan {
 | |
|                                 // generic
 | |
|                                 scanners             = ['bdba','klocwork']
 | |
|                                 scannerType          = 'c++'
 | |
| 
 | |
|                                 protecodeGroup          = '25'
 | |
|                                 protecodeScanName       = 'rpc-zip'
 | |
|                                 protecodeDirectory      = './build/rpc'
 | |
|                                 
 | |
|                                 klockworkPreBuildScript = './scripts/jenkins-pre-build.sh'
 | |
|                                 klockworkBuildCommand = './scripts/jenkins-build.sh'
 | |
|                                 klockworkProjectName  = 'Panther Point Creek'
 | |
|                                 klockworkIgnoreCompileErrors = true
 | |
|                             }
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|                 stage ('Static Code Scan Windows') {
 | |
|                     stages {
 | |
|                         stage ('Static Code Scan Windows - Klockwork') {
 | |
|                             agent { label 'openamt-win' }
 | |
|                             steps {
 | |
|                                 script {
 | |
|                                     staticCodeScan {
 | |
|                                         // generic
 | |
|                                         scanners             = ['klocwork']
 | |
|                                         scannerType          = 'c++'
 | |
|                                         
 | |
|                                         klockworkPreBuildScript = 'scripts\\jenkins-pre-build.cmd'
 | |
|                                         klockworkBuildCommand = 'scripts\\jenkins-build.cmd'
 | |
|                                         klockworkProjectName  = 'Panther Point Creek'
 | |
|                                         klockworkIgnoreCompileErrors = true
 | |
|                                     }
 | |
|                                 }
 | |
|                             }
 | |
|                         }
 | |
|                         stage ('Static Code Scan Windows - BDBA') {
 | |
|                             agent { label 'docker-amt' }
 | |
|                             steps {
 | |
|                                 script {
 | |
|                                     sh "mkdir -p bdbaScanDir"
 | |
|                                     dir("bdbaScanDir") {
 | |
|                                         unstash 'rpc-app'
 | |
|                                     }
 | |
|                                     staticCodeScan {
 | |
|                                         // generic
 | |
|                                         scanners             = ['bdba']
 | |
|                                         scannerType          = 'c++'
 | |
|                                         
 | |
|                                         protecodeGroup          = '25'
 | |
|                                         protecodeScanName       = 'rpc-zip'
 | |
|                                         protecodeDirectory      = 'bdbaScanDir'
 | |
|                                     }
 | |
|                                 }
 | |
|                             }
 | |
|                         }
 | |
|                     }
 | |
|                 }
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| }
 |