diff options
author | Matt Mitchell <mmitche@microsoft.com> | 2017-05-25 00:57:42 +0300 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-05-25 00:57:42 +0300 |
commit | e9b0db7b9f067df86a8494e26f557fe621ec268a (patch) | |
tree | 122a2cc73d6677ec825420cfd552232d70c5a00d /buildpipeline | |
parent | 62bfba654acf00e4b0fc0811be057c637b135bba (diff) |
Enable portable pipelines by default in CI (#20250)
* Enable portable pipelines by default in CI
* Enable the portable innerloop pipelines by default
* Modify the pipelines so that they access incoming parameters with "param.". This typically has no effect, but without "param.", you're implictly accessing the environment. If the incoming parameter is boolean, then it would be converted to a string, meaning that boolean checks like if (foo) would return true.
* IsNotWindowsImplementation should exclude Nano. This is a temporary fix.
Diffstat (limited to 'buildpipeline')
-rw-r--r-- | buildpipeline/pipelinejobs.groovy | 4 | ||||
-rw-r--r-- | buildpipeline/portable-linux.groovy | 18 | ||||
-rw-r--r-- | buildpipeline/portable-windows.groovy | 18 |
3 files changed, 20 insertions, 20 deletions
diff --git a/buildpipeline/pipelinejobs.groovy b/buildpipeline/pipelinejobs.groovy index 11653465b5..bbe401f4ee 100644 --- a/buildpipeline/pipelinejobs.groovy +++ b/buildpipeline/pipelinejobs.groovy @@ -22,7 +22,7 @@ def linuxPipeline = Pipeline.createPipelineForGithub(this, project, branch, 'bui // CentOS 7.3, RedHat 7.3, Debian 8.7, Ubuntu 14.04, Ubuntu 16.04, Ubuntu 16.10, openSuSE 42.2 and Fedora 25 // One for just innerloop. - linuxPipeline.triggerPipelineOnGithubPRComment("Portable ${osName} ${configurationGroup} Build", "(?i).*test\\W+portable\\W+linux\\W+${configurationGroup}\\W+pipeline.*", + linuxPipeline.triggerPipelineOnEveryGithubPR("Portable ${osName} ${configurationGroup} Build", "(?i).*test\\W+portable\\W+linux\\W+${configurationGroup}\\W+pipeline.*", ['Config':configurationGroup, 'OuterLoop':false]) // Add one for outerloop linuxPipeline.triggerPipelineOnGithubPRComment("Portable Outerloop ${osName} ${configurationGroup} Build", "(?i).*test\\W+outerloop\\W+portable\\W+linux\\W+${configurationGroup}\\W+pipeline.*", @@ -40,7 +40,7 @@ def windowsPipeline = Pipeline.createPipelineForGithub(this, project, branch, 'b // Windows 10, Windows 7, Windows 8.1 and Windows Nano // One for just innerloop - windowsPipeline.triggerPipelineOnGithubPRComment("Portable ${osName} ${configurationGroup} Build", "(?i).*test\\W+portable\\W+windows\\W+${configurationGroup}\\W+pipeline.*", + windowsPipeline.triggerPipelineOnEveryGithubPR("Portable ${osName} ${configurationGroup} Build", "(?i).*test\\W+portable\\W+windows\\W+${configurationGroup}\\W+pipeline.*", ['Config':configurationGroup, 'OuterLoop':false]) // Add one for outerloop windowsPipeline.triggerPipelineOnGithubPRComment("Portable Outerloop ${osName} ${configurationGroup} Build", "(?i).*test\\W+outerloop\\W+portable\\W+windows\\W+${configurationGroup}\\W+pipeline.*", diff --git a/buildpipeline/portable-linux.groovy b/buildpipeline/portable-linux.groovy index dd677c0826..57274c1a31 100644 --- a/buildpipeline/portable-linux.groovy +++ b/buildpipeline/portable-linux.groovy @@ -1,9 +1,9 @@ @Library('dotnet-ci') _ -// Incoming parameters +// Incoming parameters. Access with "params.<param name>". // Config - Build configuration. Note that we don't using 'Configuration' since it's used // in the build scripts and this can cause problems. -// Outerloop - If true, runs outerloop, if false runs just innerloop +// OuterLoop - If true, runs outerloop, if false runs just innerloop def submittedHelixJson = null @@ -35,14 +35,14 @@ simpleDockerNode('microsoft/dotnet-buildtools-prereqs:rhel7_prereqs_2') { sh "./sync.sh -p -portable -- /p:ArchGroup=x64" } stage ('Build Product') { - sh "./build.sh -buildArch=x64 -${Config} -portable" + sh "./build.sh -buildArch=x64 -${params.Config} -portable" } stage ('Build Tests') { def additionalArgs = '' - if (OuterLoop == true) { + if (params.OuterLoop) { additionalArgs = '-Outerloop' } - sh "./build-tests.sh -buildArch=x64 -${Config} -SkipTests ${additionalArgs} -- /p:ArchiveTests=true /p:EnableDumpling=true" + sh "./build-tests.sh -buildArch=x64 -${params.Config} -SkipTests ${additionalArgs} -- /p:ArchiveTests=true /p:EnableDumpling=true" } stage ('Submit To Helix For Testing') { // Bind the credentials @@ -66,7 +66,7 @@ simpleDockerNode('microsoft/dotnet-buildtools-prereqs:rhel7_prereqs_2') { 'fedora.25.amd64.Open'] - sh "./Tools/msbuild.sh src/upload-tests.proj /p:ArchGroup=x64 /p:ConfigurationGroup=${Config} /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Linux /p:HelixJobType=test/functional/portable/cli/ /p:HelixSource=${helixSource} /p:BuildMoniker=${helixBuild} /p:HelixCreator=${helixCreator} /p:CloudDropAccountName=dotnetbuilddrops /p:CloudResultsAccountName=dotnetjobresults /p:CloudDropAccessToken=\$CloudDropAccessToken /p:CloudResultsAccessToken=\$OutputCloudResultsAccessToken /p:HelixApiEndpoint=https://helix.dot.net/api/2017-04-14/jobs /p:TargetQueues=${targetHelixQueues.join('+')} /p:HelixLogFolder=${WORKSPACE}/${logFolder}/ /p:HelixCorrelationInfoFileName=SubmittedHelixRuns.txt" + sh "./Tools/msbuild.sh src/upload-tests.proj /p:ArchGroup=x64 /p:ConfigurationGroup=${params.Config} /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Linux /p:HelixJobType=test/functional/portable/cli/ /p:HelixSource=${helixSource} /p:BuildMoniker=${helixBuild} /p:HelixCreator=${helixCreator} /p:CloudDropAccountName=dotnetbuilddrops /p:CloudResultsAccountName=dotnetjobresults /p:CloudDropAccessToken=\$CloudDropAccessToken /p:CloudResultsAccessToken=\$OutputCloudResultsAccessToken /p:HelixApiEndpoint=https://helix.dot.net/api/2017-04-14/jobs /p:TargetQueues=${targetHelixQueues.join('+')} /p:HelixLogFolder=${WORKSPACE}/${logFolder}/ /p:HelixCorrelationInfoFileName=SubmittedHelixRuns.txt" submittedHelixJson = readJSON file: "${logFolder}/SubmittedHelixRuns.txt" } @@ -75,11 +75,11 @@ simpleDockerNode('microsoft/dotnet-buildtools-prereqs:rhel7_prereqs_2') { stage ('Execute Tests') { def contextBase - if (OuterLoop == true) { - contextBase = "Linux x64 Tests w/outer - ${Config}" + if (params.OuterLoop) { + contextBase = "Linux x64 Tests w/outer - ${params.Config}" } else { - contextBase = "Linux x64 Tests - ${Config}" + contextBase = "Linux x64 Tests - ${params.Config}" } waitForHelixRuns(submittedHelixJson, contextBase) }
\ No newline at end of file diff --git a/buildpipeline/portable-windows.groovy b/buildpipeline/portable-windows.groovy index 8f977ac172..0651df8a86 100644 --- a/buildpipeline/portable-windows.groovy +++ b/buildpipeline/portable-windows.groovy @@ -1,9 +1,9 @@ @Library('dotnet-ci') _ -// Incoming parameters +// Incoming parameters. Access with "params.<param name>". // Config - Build configuration. Note that we don't using 'Configuration' since it's used // in the build scripts and this can cause problems. -// Outerloop - If true, runs outerloop, if false runs just innerloop +// OuterLoop - If true, runs outerloop, if false runs just innerloop def submittedHelixJson = null @@ -24,14 +24,14 @@ simpleNode('Windows_NT','latest') { bat '.\\build-managed.cmd -GenerateVersion' } stage ('Build Product') { - bat ".\\build.cmd -buildArch=x64 -${Config} -portable -- /p:SignType=real /p:RuntimeOS=win10" + bat ".\\build.cmd -buildArch=x64 -${params.Config} -portable -- /p:SignType=real /p:RuntimeOS=win10" } stage ('Build Tests') { def additionalArgs = '' - if (OuterLoop == true) { + if (params.OuterLoop) { additionalArgs = '-Outerloop' } - bat ".\\build-tests.cmd -buildArch=x64 -${Config} -SkipTests -portable ${additionalArgs} -- /p:RuntimeOS=win10 /p:ArchiveTests=true" + bat ".\\build-tests.cmd -buildArch=x64 -${params.Config} -SkipTests -portable ${additionalArgs} -- /p:RuntimeOS=win10 /p:ArchiveTests=true" } stage ('Submit To Helix For Testing') { // Bind the credentials @@ -50,7 +50,7 @@ simpleNode('Windows_NT','latest') { 'Windows.7.Amd64.Open', 'Windows.81.Amd64.Open'] - bat "\"%VS140COMNTOOLS%\\VsDevCmd.bat\" && msbuild src\\upload-tests.proj /p:ArchGroup=x64 /p:ConfigurationGroup=${Config} /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:HelixJobType=test/functional/portable/cli/ /p:HelixSource=${helixSource} /p:BuildMoniker=${helixBuild} /p:HelixCreator=${helixCreator} /p:CloudDropAccountName=dotnetbuilddrops /p:CloudResultsAccountName=dotnetjobresults /p:CloudDropAccessToken=%CloudDropAccessToken% /p:CloudResultsAccessToken=%OutputCloudResultsAccessToken% /p:HelixApiEndpoint=https://helix.dot.net/api/2017-04-14/jobs /p:TargetQueues=\"${targetHelixQueues.join(',')}\" /p:HelixLogFolder= /p:HelixLogFolder=${WORKSPACE}\\${logFolder}\\ /p:HelixCorrelationInfoFileName=SubmittedHelixRuns.txt" + bat "\"%VS140COMNTOOLS%\\VsDevCmd.bat\" && msbuild src\\upload-tests.proj /p:ArchGroup=x64 /p:ConfigurationGroup=${params.Config} /p:TestProduct=corefx /p:TimeoutInSeconds=1200 /p:TargetOS=Windows_NT /p:HelixJobType=test/functional/portable/cli/ /p:HelixSource=${helixSource} /p:BuildMoniker=${helixBuild} /p:HelixCreator=${helixCreator} /p:CloudDropAccountName=dotnetbuilddrops /p:CloudResultsAccountName=dotnetjobresults /p:CloudDropAccessToken=%CloudDropAccessToken% /p:CloudResultsAccessToken=%OutputCloudResultsAccessToken% /p:HelixApiEndpoint=https://helix.dot.net/api/2017-04-14/jobs /p:TargetQueues=\"${targetHelixQueues.join(',')}\" /p:HelixLogFolder= /p:HelixLogFolder=${WORKSPACE}\\${logFolder}\\ /p:HelixCorrelationInfoFileName=SubmittedHelixRuns.txt" submittedHelixJson = readJSON file: "${logFolder}\\SubmittedHelixRuns.txt" } @@ -59,11 +59,11 @@ simpleNode('Windows_NT','latest') { stage ('Execute Tests') { def contextBase - if (OuterLoop == true) { - contextBase = "Win x64 tests w/outer - ${Config}" + if (params.OuterLoop) { + contextBase = "Win x64 tests w/outer - ${params.Config}" } else { - contextBase = "Win x64 tests - ${Config}" + contextBase = "Win x64 tests - ${params.Config}" } waitForHelixRuns(submittedHelixJson, contextBase) }
\ No newline at end of file |