JD2022-TU1/main/extern/Hue/Jenkinsfile

105 lines
2.1 KiB
Groovy

def getWorkspace() {
pwd().replace("%2F", "_")
}
def buildWindows(jobname, cmakeEnv) {
def destination = new File('/b/' + jobname + '_' + env.BRANCH_NAME.replace("/", "_"))
if(destination.exists()) destination.deleteDir()
bat 'buildscripts/build_windows.cmd' + ' "' + cmakeEnv + '" ' + destination.absolutePath + ' ' + pwd()
}
def build_MinGW32(jobname) {
node('windows') {
ws(getWorkspace()) {
stage("Checkout") {
checkout scm
}
stage("Build MinGW32") {
withEnv(["PATH+MINGW=C:/Program Files (x86)/mingw-w64/i686-6.2.0-posix-dwarf-rt_v5-rev0/mingw32/bin"]) {
buildWindows(jobname, "MinGW Makefiles")
}
}
}
}
}
def build_Linux(jobname) {
node('linux') {
ws(getWorkspace()) {
stage("Checkout") {
checkout scm
}
stage("Build Linux Release") {
sh 'chmod +x buildscripts/build_linux_release.sh'
sh 'buildscripts/build_linux_release.sh'
}
stage("Build Linux Debug Coverage") {
sh 'chmod +x buildscripts/build_linux_debug_coverage.sh'
sh 'buildscripts/build_linux_debug_coverage.sh'
}
}
}
}
def build_VS2015_32(jobname) {
node('windows') {
ws(getWorkspace()) {
stage("Checkout") {
checkout scm
}
stage("Build VS2015") {
buildWindows(jobname, "Visual Studio 14 2015")
}
}
}
}
def build_VS2015_64(jobname) {
node('windows') {
ws(getWorkspace()) {
stage("Checkout") {
checkout scm
}
stage("Build VS2015") {
buildWindows(jobname, "Visual Studio 14 2015 Win64")
}
}
}
}
def buildAndTest(jobname) {
echo jobname
if (jobname.toLowerCase().endsWith("all")){
build_MinGW32(jobname)
build_Linux(jobname)
build_VS2015_32(jobname)
build_VS2015_64(jobname)
}
if (jobname.toLowerCase().endsWith("mingw32")){
build_MinGW32(jobname)
}
if (jobname.toLowerCase().endsWith("linux")){
build_Linux(jobname)
}
if (jobname.toLowerCase().endsWith("vs2015")){
build_VS2015_32(jobname)
}
if (jobname.toLowerCase().endsWith("vs2015_32")){
build_VS2015_32(jobname)
}
if (jobname.toLowerCase().endsWith("vs2015_64")){
build_VS2015_64(jobname)
}
}
buildAndTest("${env.JOB_NAME}".tokenize( '/' )[0])