You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
210 lines
9.0 KiB
210 lines
9.0 KiB
5 years ago
|
def Targets = ['Internal', 'External']
|
||
|
def ToolSets = ['VS2003', 'VS2010' ]
|
||
|
def BaseDir = "MOULOpenSourceClientPlugin"
|
||
|
def PlasmaDir = "${BaseDir}\\Plasma20"
|
||
|
|
||
|
def SCMBranches = [
|
||
|
CWE: '*/master',
|
||
|
LOCALDATA: '*/rarified/vs-multitool'
|
||
|
]
|
||
|
|
||
|
def ToolSetParams = [
|
||
|
VS2003: [
|
||
|
INIT: "C:\\Program Files\\Microsoft Visual Studio .NET 2003\\Common7\\Tools\\vsvars32.bat",
|
||
|
SLN: "${PlasmaDir}\\MsDevProjects\\Plasma\\Apps\\AllClient\\AllClient-ou.sln",
|
||
|
ARTIFACTDIR: "MsDevProjects",
|
||
|
ARTIFACTPATH: "${PlasmaDir}\\MsDevProjects",
|
||
|
SDKPATH: "${BaseDir}\\StaticSDKs",
|
||
|
CL: [
|
||
|
Internal: "/DBUILD_TYPE=BUILD_TYPE_DEV /DNET_LOGGING=1 /DMINKATA_BUILD_NUMBER=${BUILD_NUMBER}",
|
||
|
External: "/DPLASMA_EXTERNAL_RELEASE /DBUILD_TYPE=BUILD_TYPE_LIVE /DMINKATA_BUILD_NUMBER=${BUILD_NUMBER}"
|
||
|
],
|
||
|
CONF: [
|
||
|
Internal: "Release",
|
||
|
External: "Release"
|
||
|
]
|
||
|
],
|
||
|
VS2010: [
|
||
|
INIT: "C:\\Program Files\\Microsoft Visual Studio 10.0\\vc\\vcvarsall.bat",
|
||
|
SLN: "${PlasmaDir}\\MSVC10Projects\\Plasma\\Apps\\AllClient\\AllClient.sln",
|
||
|
ARTIFACTDIR: "MSVC10Projects",
|
||
|
ARTIFACTPATH: "${PlasmaDir}\\MSVC10Projects",
|
||
|
SDKPATH: "${BaseDir}\\StaticSDKs",
|
||
|
CL: [
|
||
|
Internal: "/DBUILD_TYPE=BUILD_TYPE_DEV /DNET_LOGGING=1 /DMINKATA_BUILD_NUMBER=${BUILD_NUMBER}",
|
||
|
External: "/DPLASMA_EXTERNAL_RELEASE /DBUILD_TYPE=BUILD_TYPE_LIVE /DMINKATA_BUILD_NUMBER=${BUILD_NUMBER}"
|
||
|
],
|
||
|
CONF: [
|
||
|
Internal: "Release_Internal",
|
||
|
External: "Release"
|
||
|
]
|
||
|
]
|
||
|
]
|
||
|
|
||
|
pipeline {
|
||
|
options {
|
||
|
timestamps()
|
||
|
}
|
||
|
|
||
|
agent { node { label 'master' } }
|
||
|
|
||
|
stages {
|
||
|
|
||
|
// Assemble workspace on master node
|
||
|
stage('SCM') {
|
||
|
steps {
|
||
|
|
||
|
// Main checkout
|
||
|
checkout scm: [$class: 'GitSCM', branches: [[name: SCMBranches['CWE']]],
|
||
|
extensions: [[$class: 'WipeWorkspace']],
|
||
|
userRemoteConfigs: [[credentialsId: '505fdcbf-cd4c-488b-95d9-2bf2cc346ced',
|
||
|
url: 'https://foundry.openuru.org/gitblit/r/CWE-ou-minkata']]]
|
||
|
|
||
|
// Localdata checkout
|
||
|
checkout changelog: false,
|
||
|
poll: false,
|
||
|
scm: [$class: 'GitSCM', branches: [[name: SCMBranches['LOCALDATA']]],
|
||
|
extensions: [[$class: 'WipeWorkspace'],
|
||
|
[$class: 'RelativeTargetDirectory', relativeTargetDir: 'LocalData'],
|
||
|
[$class: 'CleanBeforeCheckout', deleteUntrackedNestedRepositories: true],
|
||
|
[$class: 'IgnoreNotifyCommit']],
|
||
|
userRemoteConfigs: [[credentialsId: '505fdcbf-cd4c-488b-95d9-2bf2cc346ced',
|
||
|
url: 'https://foundry.openuru.org/gitblit/r/Foundry/LocalData-CWE-ou']]]
|
||
|
|
||
|
// Merge Localdata to correct place in main tree
|
||
|
sh label: 'Copy Repository StaticSDKs to VS2003 specific SDK directory for merge',
|
||
|
script: "cd ${BaseDir}; /opt/gnu/bin/cp -rp StaticSDKs StaticSDKs-VS2003"
|
||
|
sh label: 'Copy Repository StaticSDKs to VS2010 specific SDK directory for merge',
|
||
|
script: "cd ${BaseDir}; /opt/gnu/bin/mv StaticSDKs StaticSDKs-VS2010"
|
||
|
sh label: 'Merge LocalData',
|
||
|
script: "/opt/gnu/bin/cp -rlf LocalData/* ${BaseDir}/."
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Patch for Minkata
|
||
|
stage ('Patch') {
|
||
|
steps {
|
||
|
sh script: '/opt/gnu/bin/patch -p1 --ignore-whitespace --remove-empty-files --verbose < LocalData/Minkata/minkata-local-000.patch.dos'
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Stash workspace for copy to slave node(s)
|
||
|
stage ('Stash Initialized Workspace') {
|
||
|
steps {
|
||
|
stash name: 'CWE-ou Sources',
|
||
|
includes: "LICENSE.txt,*.bat,${BaseDir}/**",
|
||
|
excludes: '**/DX9.0c*/Developer*/**,**/DX9.0c*/Documentation/**,**/DX9.0c*/Samples/**,**/DX9.0c*/Utilities/**'
|
||
|
}
|
||
|
}
|
||
|
|
||
|
// Compile on Windows node
|
||
|
stage ('Compile') {
|
||
|
matrix {
|
||
|
agent { node { label 'win2k3' } }
|
||
|
axes {
|
||
|
axis {
|
||
|
name 'ToolSet'
|
||
|
values 'VS2003', 'VS2010'
|
||
|
}
|
||
|
axis {
|
||
|
name 'BuildType'
|
||
|
values 'Internal', 'External'
|
||
|
}
|
||
|
}
|
||
|
|
||
|
stages {
|
||
|
// set up workspace on slave
|
||
|
stage ('Unstash Workspace') {
|
||
|
steps {
|
||
|
withEnv([
|
||
|
"ARTIFACTPATH=${ToolSetParams[ToolSet]['ARTIFACTPATH']}",
|
||
|
"BUILDSDKPATH=${BaseDir}\\StaticSDKs"
|
||
|
]) {
|
||
|
bat script: "if exist %ARTIFACTPATH% rd /s/q %ARTIFACTPATH%"
|
||
|
unstash name: 'CWE-ou Sources'
|
||
|
bat script: "if exist %BUILDSDKPATH% rd /s/q %BUILDSDKPATH%"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
stage ('Customize for ToolSet') {
|
||
|
steps {
|
||
|
withEnv([
|
||
|
"PATCHFILE_VS2010=${BaseDir}\\Minkata\\minkata-local-001.patch"
|
||
|
]) {
|
||
|
bat script: "ren ${BaseDir}\\StaticSDKs-${ToolSet} StaticSDKs"
|
||
|
bat script: 'if %ToolSet%==VS2010 if exist "%PATCHFILE_VS2010%" "%PATCH_EXE%" -p1 --ignore-whitespace --binary --verbose < "%PATCHFILE_VS2010%"'
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
stage ('Compile {ToolSet}x{BuildType}') {
|
||
|
steps {
|
||
|
logParser useProjectRule: false,
|
||
|
projectRulePath: 'cwe-log.rules',
|
||
|
parsingRulesPath: 'cwe-log.rules',
|
||
|
showGraphs: true
|
||
|
withEnv([
|
||
|
"CL=${ToolSetParams[ToolSet]['CL'][BuildType]}",
|
||
|
"CONF=${ToolSetParams[ToolSet]['CONF'][BuildType]}",
|
||
|
"INIT=${ToolSetParams[ToolSet]['INIT']}",
|
||
|
"SLN=${ToolSetParams[ToolSet]['SLN']}",
|
||
|
]) {
|
||
|
|
||
|
bat script: '''
|
||
|
call "%INIT%"
|
||
|
REM Prevent runaway VS2010 builds
|
||
|
set NUMBER_OF_PROCESSORS=2
|
||
|
set
|
||
|
REM SET CL=%CL% /d1reportallclasslayout
|
||
|
devenv.com %SLN% /build %CONF%
|
||
|
'''
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
// Stash cell-specific artifacts to merge for archival
|
||
|
stage ('Stash Artifacts') {
|
||
|
steps {
|
||
|
withEnv([
|
||
|
"ARTIFACTPATH=${ToolSetParams[ToolSet]['ARTIFACTPATH']}",
|
||
|
"SDKPATH=${ToolSetParams[ToolSet]['SDKPATH']}"
|
||
|
]) {
|
||
|
bat script: "if exist %ARTIFACTPATH%-${ToolSet}-${BuildType} rd /s/q %ARTIFACTPATH%-${ToolSet}-${BuildType}"
|
||
|
bat script: "move %ARTIFACTPATH% %ARTIFACTPATH%-${ToolSet}-${BuildType}"
|
||
|
stash name: "CWE-ou Artifacts ${ToolSet}-${BuildType}",
|
||
|
includes: "${ARTIFACTPATH}-${ToolSet}-${BuildType}/Plasma/**,${SDKPATH}/StaticSDKs/**"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
stage('Unstash Build Artifacts') {
|
||
|
steps {
|
||
|
script {
|
||
|
for (buildtype in Targets) {
|
||
|
for (toolset in ToolSets) {
|
||
|
unstash name: "CWE-ou Artifacts ${toolset}-${buildtype}"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
stage('Archive Artifacts') {
|
||
|
steps {
|
||
|
dir (BaseDir) {
|
||
|
archiveArtifacts artifacts: "Plasma20/MsDevProjects*/**/Release*/*,"+
|
||
|
"Plasma20/MSVC10Projects*/**/Release*/*,"+
|
||
|
"StaticSDKs*/**/*.dll",
|
||
|
fingerprint: true,
|
||
|
followSymlinks: false
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
|