diff --git a/.ci/dev/compatibility/DockerfileJDK11Compile b/.ci/dev/compatibility/DockerfileJDK11 similarity index 100% rename from .ci/dev/compatibility/DockerfileJDK11Compile rename to .ci/dev/compatibility/DockerfileJDK11 diff --git a/.ci/dev/compatibility/JenkinsfileJDK11Azul b/.ci/dev/compatibility/JenkinsfileJDK11Azul index 96396ca2c0..a61b5dc228 100644 --- a/.ci/dev/compatibility/JenkinsfileJDK11Azul +++ b/.ci/dev/compatibility/JenkinsfileJDK11Azul @@ -3,8 +3,19 @@ import static com.r3.build.BuildControl.killAllExistingBuildsForJob killAllExistingBuildsForJob(env.JOB_NAME, env.BUILD_NUMBER.toInteger()) +/** + * Sense environment + */ +boolean isReleaseTag = (env.TAG_NAME =~ /^release.*JDK11$/) + pipeline { - agent { label 'k8s' } + agent { + dockerfile { + label 'k8s' + additionalBuildArgs "--build-arg USER=stresstester" + filename '.ci/dev/compatibility/DockerfileJDK11' + } + } options { timestamps() buildDiscarder(logRotator(daysToKeepStr: '7', artifactDaysToKeepStr: '7')) @@ -16,10 +27,11 @@ pipeline { EXECUTOR_NUMBER = "${env.EXECUTOR_NUMBER}" BUILD_ID = "${env.BUILD_ID}-${env.JOB_NAME}" ARTIFACTORY_CREDENTIALS = credentials('artifactory-credentials') + ARTIFACTORY_BUILD_NAME = "Corda / Publish / Publish JDK 11 Release to Artifactory".replaceAll("/", "::") } stages { - stage('Corda Pull Request - Generate Build Image') { + stage('Generate Build Image') { steps { withCredentials([string(credentialsId: 'container_reg_passwd', variable: 'DOCKER_PUSH_PWD')]) { sh "./gradlew " + @@ -29,7 +41,7 @@ pipeline { "-Ddocker.build.tag=\"\${DOCKER_TAG_TO_USE}\" " + "-Ddocker.buildbase.tag=11latest " + "-Ddocker.dockerfile=DockerfileJDK11Azul" + - " clean pushBuildImage --stacktrace" + " clean pushBuildImage preAllocateForParallelRegressionTest preAllocateForAllParallelSlowIntegrationTest --stacktrace" } sh "kubectl auth can-i get pods" } @@ -65,6 +77,36 @@ pipeline { } } } + + stage('Publish to Artifactory') { + when { + expression { isReleaseTag } + } + steps { + rtServer( + id: 'R3-Artifactory', + url: 'https://software.r3.com/artifactory', + credentialsId: 'artifactory-credentials' + ) + rtGradleDeployer( + id: 'deployer', + serverId: 'R3-Artifactory', + repo: 'r3-corda-releases' + ) + rtGradleRun( + usesPlugin: true, + useWrapper: true, + switches: '-s --info', + tasks: 'artifactoryPublish', + deployerId: 'deployer', + buildName: env.ARTIFACTORY_BUILD_NAME + ) + rtPublishBuildInfo( + serverId: 'R3-Artifactory', + buildName: env.ARTIFACTORY_BUILD_NAME + ) + } + } } post { diff --git a/.ci/dev/compatibility/JenkinsfileJDK11Compile b/.ci/dev/compatibility/JenkinsfileJDK11Compile index 670717da68..d2251fad15 100644 --- a/.ci/dev/compatibility/JenkinsfileJDK11Compile +++ b/.ci/dev/compatibility/JenkinsfileJDK11Compile @@ -8,7 +8,7 @@ pipeline { dockerfile { label 'k8s' additionalBuildArgs "--build-arg USER=stresstester" - filename '.ci/dev/compatibility/DockerfileJDK11Compile' + filename '.ci/dev/compatibility/DockerfileJDK11' } } options { diff --git a/.ci/dev/smoke/Jenkinsfile b/.ci/dev/smoke/Jenkinsfile deleted file mode 100644 index aeb6638e95..0000000000 --- a/.ci/dev/smoke/Jenkinsfile +++ /dev/null @@ -1,101 +0,0 @@ -@Library('corda-shared-build-pipeline-steps') -import static com.r3.build.BuildControl.killAllExistingBuildsForJob - -killAllExistingBuildsForJob(env.JOB_NAME, env.BUILD_NUMBER.toInteger()) - -pipeline { - agent { label 'k8s' } - options { - timestamps() - overrideIndexTriggers(false) - timeout(time: 3, unit: 'HOURS') - } - - triggers { - issueCommentTrigger('.*smoke tests.*') - } - - environment { - EXECUTOR_NUMBER = "${env.EXECUTOR_NUMBER}" - } - - stages { - stage('Corda Smoke Tests') { - steps { - script { - if (currentBuildTriggeredByComment()) { - stage('Run Smoke Tests') { - script { - pullRequest.createStatus(status: 'pending', - context: 'continuous-integration/jenkins/pr-merge/smokeTest', - description: 'Smoke Tests Running', - targetUrl: "${env.JOB_URL}") - } - - withCredentials([string(credentialsId: 'container_reg_passwd', variable: 'DOCKER_PUSH_PWD')]) { - sh "./gradlew " + - "-Dkubenetize=true " + - "-Ddocker.push.password=\"\${DOCKER_PUSH_PWD}\" " + - "-Ddocker.work.dir=\"/tmp/\${EXECUTOR_NUMBER}\" " + - " clean allParallelSmokeTest --stacktrace" - } - } - - } - } - } - } - } - - post { - always { - script { - if (currentBuildTriggeredByComment()) { - archiveArtifacts artifacts: '**/pod-logs/**/*.log', fingerprint: false - junit testResults: '**/build/test-results-xml/**/*.xml', keepLongStdio: true - } - } - } - - - success { - script { - if (currentBuildTriggeredByComment()) { - pullRequest.createStatus(status: 'success', - context: 'continuous-integration/jenkins/pr-merge/smokeTest', - description: 'Smoke Tests Passed', - targetUrl: "${env.BUILD_URL}testResults") - } - } - } - - failure { - script { - if (currentBuildTriggeredByComment()) { - pullRequest.createStatus(status: 'failure', - context: 'continuous-integration/jenkins/pr-merge/smokeTest', - description: 'Smoke Tests Failed', - targetUrl: "${env.BUILD_URL}testResults") - } - } - } - - cleanup { - deleteDir() /* clean up our workspace */ - } - } -} - -@NonCPS -def currentBuildTriggeredByComment() { - def triggerCause = currentBuild.rawBuild.getCause(org.jenkinsci.plugins.pipeline.github.trigger.IssueCommentCause) - if (triggerCause) { - echo("Build was started by ${triggerCause.userLogin}, who wrote: " + - "\"${triggerCause.comment}\", which matches the " + - "\"${triggerCause.triggerPattern}\" trigger pattern.") - } else { - echo('Build was not started by a trigger') - } - - return triggerCause != null -} diff --git a/testing/DockerfileJDK11Azul b/testing/DockerfileJDK11Azul index 9c8042346f..655e49406d 100644 --- a/testing/DockerfileJDK11Azul +++ b/testing/DockerfileJDK11Azul @@ -1,4 +1,3 @@ FROM stefanotestingcr.azurecr.io/buildbase:11latest COPY . /tmp/source CMD cd /tmp/source && GRADLE_USER_HOME=/tmp/gradle ./gradlew clean testClasses integrationTestClasses --parallel --info -