summaryrefslogtreecommitdiff
path: root/buildpipeline
diff options
context:
space:
mode:
authorJan Vorlicek <janvorli@microsoft.com>2017-12-13 23:05:45 +0100
committerGitHub <noreply@github.com>2017-12-13 23:05:45 +0100
commit6cc8720c08883ed39baaed966ecceb84d0703725 (patch)
tree771b728452ab7fe0ff07e3d841a3ed770c66e203 /buildpipeline
parent89e85cfff719bc743ad53fdc702b0379c5286087 (diff)
downloadcoreclr-6cc8720c08883ed39baaed966ecceb84d0703725.tar.gz
coreclr-6cc8720c08883ed39baaed966ecceb84d0703725.tar.bz2
coreclr-6cc8720c08883ed39baaed966ecceb84d0703725.zip
Enable Alpine CI (#15502)
* Enable Alpine CI This enables Alpine CI leg on every PR using the pipelines.
Diffstat (limited to 'buildpipeline')
-rw-r--r--buildpipeline/alpine.3.6.groovy24
-rw-r--r--buildpipeline/pipelinejobs.groovy55
2 files changed, 79 insertions, 0 deletions
diff --git a/buildpipeline/alpine.3.6.groovy b/buildpipeline/alpine.3.6.groovy
new file mode 100644
index 0000000000..d82ae726c0
--- /dev/null
+++ b/buildpipeline/alpine.3.6.groovy
@@ -0,0 +1,24 @@
+@Library('dotnet-ci') _
+
+// Incoming parameters. Access with "params.<param name>".
+// Note that the parameters will be set as env variables so we cannot use names that conflict
+// with the engineering system parameter names.
+// CGroup - Build configuration.
+// TestOuter - If true, runs outerloop, if false runs just innerloop
+
+simpleDockerNode('microsoft/dotnet-buildtools-prereqs:alpine-3.6-3148f11-20171119021156') {
+ stage ('Checkout source') {
+ checkoutRepo()
+ }
+
+ stage ('Initialize tools') {
+ // Init tools
+ sh './init-tools.sh'
+ }
+ stage ('Sync') {
+ sh "./sync.sh"
+ }
+ stage ('Build Product') {
+ sh "./build.sh -x64 -${params.CGroup} -skiprestore -stripSymbols -portablebuild=false"
+ }
+}
diff --git a/buildpipeline/pipelinejobs.groovy b/buildpipeline/pipelinejobs.groovy
new file mode 100644
index 0000000000..af85f51fe8
--- /dev/null
+++ b/buildpipeline/pipelinejobs.groovy
@@ -0,0 +1,55 @@
+// Import the utility functionality.
+
+import jobs.generation.JobReport;
+import jobs.generation.Utilities;
+import org.dotnet.ci.pipelines.Pipeline
+
+// The input project name (e.g. dotnet/coreclr)
+def project = GithubProject
+// The input branch name (e.g. master)
+def branch = GithubBranchName
+
+// **************************
+// Define innerloop testing. Any configuration in ForPR will run for every PR but all other configurations
+// will have a trigger that can be
+// **************************
+
+def alpine36Pipeline = Pipeline.createPipelineForGithub(this, project, branch, 'buildpipeline/alpine.3.6.groovy')
+
+def configurations = [
+ ['TGroup':"netcoreapp", 'Pipeline':alpine36Pipeline, 'Name':'Alpine.3.6' ,'ForPR':"Debug-x64", 'Arch':['x64']],
+]
+
+configurations.each { config ->
+ ['Debug', 'Release'].each { configurationGroup ->
+ (config.Arch ?: ['x64', 'x86']).each { archGroup ->
+ def triggerName = "${config.Name} ${archGroup} ${configurationGroup} Build"
+
+ def pipeline = config.Pipeline
+ def params = ['TGroup':config.TGroup,
+ 'CGroup':configurationGroup,
+ 'AGroup':archGroup,
+ 'TestOuter': false]
+
+ // Add default PR triggers for particular configurations but manual triggers for all
+ if (config.ForPR.contains("${configurationGroup}-${archGroup}")) {
+ pipeline.triggerPipelineOnEveryGithubPR(triggerName, params)
+ }
+ else {
+ pipeline.triggerPipelineOnGithubPRComment(triggerName, params)
+ }
+
+ // Add trigger for all configurations to run on merge
+ pipeline.triggerPipelineOnGithubPush(params)
+
+ // Add optional PR trigger for Outerloop test runs
+ params.TestOuter = true
+ pipeline.triggerPipelineOnGithubPRComment("Outerloop ${triggerName}", params)
+}}}
+
+JobReport.Report.generateJobReport(out)
+
+// Make the call to generate the help job
+Utilities.createHelperJob(this, project, branch,
+ "Welcome to the ${project} Repository", // This is prepended to the help message
+ "Have a nice day!") // This is appended to the help message. You might put known issues here.