Skip to content

Commit

Permalink
Merge pull request #198 from Esri/develop
Browse files Browse the repository at this point in the history
Develop
  • Loading branch information
chr11115 authored Nov 23, 2022
2 parents d94a93a + 23a5c39 commit caf6676
Show file tree
Hide file tree
Showing 81 changed files with 4,155 additions and 1,367 deletions.
12 changes: 8 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,4 +1,8 @@
/build
/.idea
/src/.idea
/src/Pipfile.lock
/build
/.idea
/src/.idea
/src/Pipfile.lock
/.venv*
/.vs
/.vscode
src/CMakeSettings.json
132 changes: 114 additions & 18 deletions Jenkinsfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,37 +4,133 @@

import groovy.transform.Field

@Library('psl')
import com.esri.zrh.jenkins.PipelineSupportLibrary
import com.esri.zrh.jenkins.JenkinsTools
import com.esri.zrh.jenkins.ce.CityEnginePipelineLibrary
import com.esri.zrh.jenkins.ce.PrtAppPipelineLibrary
import com.esri.zrh.jenkins.PslFactory
import com.esri.zrh.jenkins.psl.UploadTrackingPsl

// -- PIPELINE LIBRARIES
@Field def psl = PslFactory.create(this, UploadTrackingPsl.ID)
@Field def cepl = new CityEnginePipelineLibrary(this, psl)
@Field def papl = new PrtAppPipelineLibrary(cepl)

@Library('psl')
import com.esri.zrh.jenkins.PipelineSupportLibrary

@Field def psl = new PipelineSupportLibrary(this)
// -- GLOBAL DEFINITIONS

@Field final String REPO = 'https://github.com/Esri/palladio.git'
@Field final String SOURCE = "palladio.git/src"
@Field final String BUILD_TARGET = 'package'
@Field final String SOURCE_STASH = 'palladio-src'

// -- SETUP
@Field final List CONFIGS_CHECKOUT = [ [ ba: psl.BA_CHECKOUT ] ]

@Field final List CONFIGS_TEST = [
[ os: cepl.CFG_OS_RHEL7, bc: cepl.CFG_BC_REL, tc: cepl.CFG_TC_GCC93, cc: cepl.CFG_CC_OPT, arch: cepl.CFG_ARCH_X86_64 ],
[ os: cepl.CFG_OS_WIN10, bc: cepl.CFG_BC_REL, tc: cepl.CFG_TC_VC1427, cc: cepl.CFG_CC_OPT, arch: cepl.CFG_ARCH_X86_64 ],
]

properties([
parameters([
string(name: 'PRM_CESDK_BRANCH', defaultValue: '')
]),
disableConcurrentBuilds()
])
@Field final List CONFIGS_HOUDINI_185 = [
[ os: cepl.CFG_OS_RHEL7, bc: cepl.CFG_BC_REL, tc: cepl.CFG_TC_GCC93, cc: cepl.CFG_CC_OPT, arch: cepl.CFG_ARCH_X86_64, houdini: '18.5' ],
[ os: cepl.CFG_OS_WIN10, bc: cepl.CFG_BC_REL, tc: cepl.CFG_TC_VC1427, cc: cepl.CFG_CC_OPT, arch: cepl.CFG_ARCH_X86_64, houdini: '18.5' ],
]

@Field final List CONFIGS_HOUDINI_190 = [
[ os: cepl.CFG_OS_RHEL7, bc: cepl.CFG_BC_REL, tc: cepl.CFG_TC_GCC93, cc: cepl.CFG_CC_OPT, arch: cepl.CFG_ARCH_X86_64, houdini: '19.0' ],
[ os: cepl.CFG_OS_WIN10, bc: cepl.CFG_BC_REL, tc: cepl.CFG_TC_VC1427, cc: cepl.CFG_CC_OPT, arch: cepl.CFG_ARCH_X86_64, houdini: '19.0' ],
]

@Field final List CONFIGS_HOUDINI_195 = [
[ os: cepl.CFG_OS_RHEL7, bc: cepl.CFG_BC_REL, tc: cepl.CFG_TC_GCC93, cc: cepl.CFG_CC_OPT, arch: cepl.CFG_ARCH_X86_64, houdini: '19.5' ],
[ os: cepl.CFG_OS_WIN10, bc: cepl.CFG_BC_REL, tc: cepl.CFG_TC_VC1427, cc: cepl.CFG_CC_OPT, arch: cepl.CFG_ARCH_X86_64, houdini: '19.5' ],
]


// -- SETUP

psl.runsHere('production')
env.PIPELINE_ARCHIVING_ALLOWED = "true"
properties([ disableConcurrentBuilds() ])


// -- PIPELINE

// -- LOAD & RUN PIPELINE
stage('prepare'){
cepl.runParallel(taskGenCheckout())
}

def impl
stage('test') {
cepl.runParallel(taskGenTest())
}

node {
checkout scm
impl = load('pipeline.groovy')
stage('build') {
cepl.runParallel(taskGenBuild())
}

stage('palladio') {
impl.pipeline()
papl.finalizeRun('palladio', env.BRANCH_NAME)


// -- TASK GENERATORS

Map taskGenCheckout(){
Map tasks = [:]
tasks << cepl.generateTasks('pld-src', this.&taskSourceCheckout, CONFIGS_CHECKOUT)
return tasks
}

Map taskGenTest() {
Map tasks = [:]
tasks << cepl.generateTasks('pld-test', this.&taskRunTest, CONFIGS_TEST)
return tasks;
}

Map taskGenBuild() {
Map tasks = [:]
tasks << cepl.generateTasks('pld-hdn18.5', this.&taskBuildPalladio, CONFIGS_HOUDINI_185)
tasks << cepl.generateTasks('pld-hdn19.0', this.&taskBuildPalladio, CONFIGS_HOUDINI_190)
tasks << cepl.generateTasks('pld-hdn19.5', this.&taskBuildPalladio, CONFIGS_HOUDINI_195)
return tasks;
}


// -- TASK BUILDERS

def taskSourceCheckout(cfg) {
cepl.cleanCurrentDir()
papl.checkout(REPO, env.BRANCH_NAME)
stash(name: SOURCE_STASH)
}

def taskRunTest(cfg) {
cepl.cleanCurrentDir()
unstash(name: SOURCE_STASH)
dir(path: 'build') {
papl.runCMakeBuild(SOURCE, 'build_and_run_tests', cfg, [])
}
junit('build/test/palladio_test_report.xml')
}

def taskBuildPalladio(cfg) {
List defs = [
[ key: 'HOUDINI_USER_PATH', val: "${env.WORKSPACE}/install" ],
[ key: 'PLD_VERSION_BUILD', val: env.BUILD_NUMBER ],
[ key: 'PLD_HOUDINI_VERSION', val: cfg.houdini]
]

cepl.cleanCurrentDir()
unstash(name: SOURCE_STASH)
dir(path: 'build') {
papl.runCMakeBuild(SOURCE, BUILD_TARGET, cfg, defs)
}

def versionExtractor = { p ->
def vers = (p =~ /.*palladio-(.*)\.hdn.*/)
return vers[0][1]
}
def classifierExtractor = { p ->
def cls = (p =~ /.*palladio-.*\.(hdn.*)-(windows|linux)\..*/)
return cls[0][1] + '.' + cepl.getArchiveClassifier(cfg)
}
papl.publish('palladio', env.BRANCH_NAME, "palladio-*", versionExtractor, cfg, classifierExtractor)
}
Loading

0 comments on commit caf6676

Please sign in to comment.