Merge pull request #86 from Sridhar-MS/xplat-ci

Xplat CI for CLI repo
This commit is contained in:
Sridhar Periyasamy 2015-10-21 14:06:16 -07:00
commit b6761894cc
3 changed files with 82 additions and 24 deletions

View file

@ -4,34 +4,78 @@ import jobs.generation.Utilities;
import jobs.generation.InternalUtilities; import jobs.generation.InternalUtilities;
def project = 'dotnet/cli' def project = 'dotnet/cli'
// Define build strings
def debugBuildString = '''./build.sh'''
// Generate the builds for debug def osList = ['Ubuntu', 'OSX', 'Windows_NT']
def linuxDebugJob = job(InternalUtilities.getFullJobName(project, 'linux_debug', false)) { def machineLabelMap = ['Ubuntu':'ubuntu',
label('ubuntu') 'OSX':'mac',
steps { 'Windows_NT':'windows']
shell(debugBuildString)
} def static getBuildJobName(def configuration, def os) {
return configuration.toLowerCase() + '_' + os.toLowerCase()
} }
InternalUtilities.addPrivatePermissions(linuxDebugJob)
InternalUtilities.addPrivateScm(linuxDebugJob, project) ['Debug', 'Release'].each { configuration ->
Utilities.addStandardOptions(linuxDebugJob) osList.each { os ->
Utilities.addStandardNonPRParameters(linuxDebugJob) // Calculate names
Utilities.addGithubPushTrigger(linuxDebugJob) def lowerConfiguration = configuration.toLowerCase()
// Calculate job name
def jobName = getBuildJobName(configuration, os)
def buildCommand = '';
// Calculate the build command
if (os == 'Windows_NT') {
buildCommand = ".\\scripts\\ci_build.cmd ${lowerConfiguration}"
}
else {
buildCommand = "./scripts/ci_build.sh ${lowerConfiguration}"
}
// Create the new job
def newCommitJob = job(InternalUtilities.getFullJobName(project, jobName, false)) {
// Set the label.
label(machineLabelMap[os])
steps {
if (os == 'Windows_NT') {
// Batch
batchFile(buildCommand)
}
else {
// Shell
shell(buildCommand)
}
}
}
InternalUtilities.addPrivatePermissions(newCommitJob)
InternalUtilities.addPrivateScm(newCommitJob, project)
Utilities.addStandardOptions(newCommitJob)
Utilities.addStandardNonPRParameters(newCommitJob)
Utilities.addGithubPushTrigger(newCommitJob)
def linuxDebugPRJob = job(InternalUtilities.getFullJobName(project, 'linux_debug', true)) { def newPRJob = job(InternalUtilities.getFullJobName(project, jobName, true)) {
label('ubuntu') // Set the label.
steps { label(machineLabelMap[os])
shell(debugBuildString) steps {
} if (os == 'Windows_NT') {
// Batch
batchFile(buildCommand)
}
else {
// Shell
shell(buildCommand)
}
}
}
InternalUtilities.addPrivatePermissions(newPRJob)
InternalUtilities.addPrivatePRTestSCM(newPRJob, project)
Utilities.addStandardOptions(newPRJob)
Utilities.addStandardPRParameters(newPRJob, project)
Utilities.addGithubPRTrigger(newPRJob, "${os} ${configuration} Build")
}
} }
InternalUtilities.addPrivatePermissions(linuxDebugPRJob)
InternalUtilities.addPrivatePRTestSCM(linuxDebugPRJob, project)
Utilities.addStandardOptions(linuxDebugPRJob)
Utilities.addStandardPRParameters(linuxDebugPRJob, project)
Utilities.addGithubPRTrigger(linuxDebugPRJob, 'Linux Debug Build')

5
scripts/ci_build.cmd Normal file
View file

@ -0,0 +1,5 @@
@echo off
CALL %~dp0..\build.cmd %*
exit /b %errorlevel%

9
scripts/ci_build.sh Executable file
View file

@ -0,0 +1,9 @@
#!/usr/bin/env bash
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
$SCRIPT_DIR/../build.sh $@
ret_code=$?
exit $ret_code