mirror of
https://github.com/corda/corda.git
synced 2025-04-07 19:34:41 +00:00
INFRA-347: Corda builds for Windows Servers (#6356)
This commit is contained in:
parent
813e9dd242
commit
494073590b
93
.ci/dev/mswin/Jenkinsfile
vendored
Normal file
93
.ci/dev/mswin/Jenkinsfile
vendored
Normal file
@ -0,0 +1,93 @@
|
||||
#!groovy
|
||||
/**
|
||||
* Jenkins pipeline to build Corda on MS Windows server.
|
||||
* Because it takes a long time to run tests sequentially, unit tests and
|
||||
* integration tests are started in parallel on separate agents.
|
||||
*
|
||||
* Additionally, pull requests by default run only unit tests.
|
||||
*/
|
||||
|
||||
/**
|
||||
* Kill already started job.
|
||||
* Assume new commit takes precendence and results from previous
|
||||
* unfinished builds are not required.
|
||||
* This feature doesn't play well with disableConcurrentBuilds() option
|
||||
*/
|
||||
@Library('corda-shared-build-pipeline-steps')
|
||||
import static com.r3.build.BuildControl.killAllExistingBuildsForJob
|
||||
killAllExistingBuildsForJob(env.JOB_NAME, env.BUILD_NUMBER.toInteger())
|
||||
|
||||
/**
|
||||
* Sense environment
|
||||
*/
|
||||
boolean isReleaseBranch = (env.BRANCH_NAME =~ /^release\/os\/.*/)
|
||||
|
||||
pipeline {
|
||||
agent none
|
||||
options {
|
||||
ansiColor('xterm')
|
||||
timestamps()
|
||||
timeout(time: 3, unit: 'HOURS')
|
||||
}
|
||||
|
||||
parameters {
|
||||
booleanParam defaultValue: (isReleaseBranch), description: 'Run integration tests?', name: 'DO_INTEGRATION_TESTS'
|
||||
}
|
||||
|
||||
/*
|
||||
* Do no receive Github's push events for release branches -> suitable for nightly builds
|
||||
* but projects for pull requests will receive them as normal, and PR builds are started ASAP
|
||||
*/
|
||||
triggers {
|
||||
pollSCM ignorePostCommitHooks: isReleaseBranch, scmpoll_spec: '@midnight'
|
||||
}
|
||||
|
||||
stages {
|
||||
stage('Tests') {
|
||||
parallel {
|
||||
stage('Unit Tests') {
|
||||
agent { label 'mswin' }
|
||||
steps {
|
||||
sh "./gradlew --no-daemon " +
|
||||
"--stacktrace " +
|
||||
"-Pcompilation.warningsAsErrors=false " +
|
||||
"-Ptests.failFast=true " +
|
||||
"clean test"
|
||||
}
|
||||
post {
|
||||
always {
|
||||
archiveArtifacts allowEmptyArchive: true, artifacts: '**/logs/**/*.log'
|
||||
junit testResults: '**/build/test-results/**/*.xml', keepLongStdio: true, allowEmptyResults: true
|
||||
bat '.ci/kill_corda_procs.cmd'
|
||||
}
|
||||
cleanup {
|
||||
deleteDir() /* clean up our workspace */
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
stage('Integration Tests') {
|
||||
when {
|
||||
expression { params.DO_INTEGRATION_TESTS }
|
||||
beforeAgent true
|
||||
}
|
||||
agent { label 'mswin' }
|
||||
steps {
|
||||
sh "./gradlew --no-daemon " +
|
||||
"clean integrationTest"
|
||||
}
|
||||
post {
|
||||
always {
|
||||
archiveArtifacts allowEmptyArchive: true, artifacts: '**/logs/**/*.log'
|
||||
junit testResults: '**/build/test-results/**/*.xml', keepLongStdio: true, allowEmptyResults: true
|
||||
bat '.ci/kill_corda_procs.cmd'
|
||||
}
|
||||
cleanup {
|
||||
deleteDir() /* clean up our workspace */
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user