diff --git a/README.md b/README.md index 5ace6e6ee..c0aab2a2a 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,15 @@ # .NET Command Line Interface +Build Status +------------ + +| |Ubuntu 14.04 |Windows |Mac OS X | +|---------|:------:|:------:|:------:|:------:|:-------:|:-------:| +|**Debug**|[![Build Status](http://dotnet-ci.cloudapp.net/job/Private/job/dotnet_cli_debug_ubuntu/badge/icon)](http://dotnet-ci.cloudapp.net/job/Private/job/dotnet_cli_debug_ubuntu/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/Private/job/dotnet_cli_debug_windows_nt/badge/icon)](http://dotnet-ci.cloudapp.net/job/Private/job/dotnet_cli_debug_windows_nt/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/Private/job/dotnet_cli_debug_osx/badge/icon)](http://dotnet-ci.cloudapp.net/job/Private/job/dotnet_cli_debug_osx/) | +|**Release**|[![Build Status](http://dotnet-ci.cloudapp.net/job/Private/job/dotnet_cli_release_ubuntu/badge/icon)](http://dotnet-ci.cloudapp.net/job/Private/job/dotnet_cli_release_ubuntu/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/Private/job/dotnet_cli_release_windows_nt/badge/icon)](http://dotnet-ci.cloudapp.net/job/Private/job/dotnet_cli_release_windows_nt/)|[![Build Status](http://dotnet-ci.cloudapp.net/job/Private/job/dotnet_cli_release_osx/badge/icon)](http://dotnet-ci.cloudapp.net/job/Private/job/dotnet_cli_release_osx/) | + + + ## Building/Running 1. Run `build.cmd` or `build.sh` from the root diff --git a/netci.groovy b/netci.groovy index 5df1b3b7a..aaaac5d63 100644 --- a/netci.groovy +++ b/netci.groovy @@ -4,34 +4,78 @@ import jobs.generation.Utilities; import jobs.generation.InternalUtilities; 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)) { - label('ubuntu') - steps { - shell(debugBuildString) - } +def machineLabelMap = ['Ubuntu':'ubuntu', + 'OSX':'mac', + 'Windows_NT':'windows'] + +def static getBuildJobName(def configuration, def os) { + return configuration.toLowerCase() + '_' + os.toLowerCase() } -InternalUtilities.addPrivatePermissions(linuxDebugJob) -InternalUtilities.addPrivateScm(linuxDebugJob, project) -Utilities.addStandardOptions(linuxDebugJob) -Utilities.addStandardNonPRParameters(linuxDebugJob) -Utilities.addGithubPushTrigger(linuxDebugJob) + +['Debug', 'Release'].each { configuration -> + osList.each { os -> + // Calculate names + 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)) { - label('ubuntu') - steps { - shell(debugBuildString) - } + def newPRJob = job(InternalUtilities.getFullJobName(project, jobName, true)) { + // Set the label. + label(machineLabelMap[os]) + 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') diff --git a/scripts/ci_build.cmd b/scripts/ci_build.cmd new file mode 100644 index 000000000..091b21ad6 --- /dev/null +++ b/scripts/ci_build.cmd @@ -0,0 +1,5 @@ +@echo off + +CALL %~dp0..\build.cmd %* + +exit /b %errorlevel% diff --git a/scripts/ci_build.sh b/scripts/ci_build.sh new file mode 100755 index 000000000..7a378a6b7 --- /dev/null +++ b/scripts/ci_build.sh @@ -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 + diff --git a/src/Microsoft.DotNet.Cli.Utils/project.json b/src/Microsoft.DotNet.Cli.Utils/project.json index f99a91d85..b6ff1d85e 100644 --- a/src/Microsoft.DotNet.Cli.Utils/project.json +++ b/src/Microsoft.DotNet.Cli.Utils/project.json @@ -4,10 +4,10 @@ "shared": "**/*.cs", "dependencies": { - "System.Console": "4.0.0-*", - "System.IO.FileSystem": "4.0.1-*", - "System.Diagnostics.Process": "4.1.0-*", - "System.Runtime.InteropServices.RuntimeInformation": "4.0.0-beta-*" + "System.Console": "4.0.0-beta-23419", + "System.IO.FileSystem": "4.0.1-beta-23419", + "System.Diagnostics.Process": "4.1.0-beta-23419", + "System.Runtime.InteropServices.RuntimeInformation": "4.0.0-beta-23419" }, "frameworks": { "dnxcore50": { } diff --git a/src/Microsoft.DotNet.Cli/project.json b/src/Microsoft.DotNet.Cli/project.json index a3b316451..7e36f3044 100644 --- a/src/Microsoft.DotNet.Cli/project.json +++ b/src/Microsoft.DotNet.Cli/project.json @@ -8,12 +8,12 @@ "dotnet": "Microsoft.DotNet.Cli" }, "dependencies": { - "Microsoft.NETCore.Runtime": "1.0.1-beta-23413", + "Microsoft.NETCore.Runtime": "1.0.1-beta-23419", - "System.Console": "4.0.0-*", - "System.Collections": "4.0.11-*", - "System.Linq": "4.0.1-*", - "System.Diagnostics.Process": "4.1.0-*", + "System.Console": "4.0.0-beta-23419", + "System.Collections": "4.0.11-beta-23419", + "System.Linq": "4.0.1-beta-23419", + "System.Diagnostics.Process": "4.1.0-beta-23419", "Microsoft.DotNet.Cli.Utils": { "type": "build", "version": "1.0.0-*" diff --git a/src/Microsoft.DotNet.Tools.Compiler.Csc/project.json b/src/Microsoft.DotNet.Tools.Compiler.Csc/project.json index dd1d6e7c0..3b405a92a 100644 --- a/src/Microsoft.DotNet.Tools.Compiler.Csc/project.json +++ b/src/Microsoft.DotNet.Tools.Compiler.Csc/project.json @@ -8,14 +8,14 @@ "dotnet-compile-csc": "Microsoft.DotNet.Tools.Compiler.Csc" }, "dependencies": { - "Microsoft.NETCore.TestHost": "1.0.0-*", - "Microsoft.NETCore.Runtime": "1.0.1-beta-23413", + "Microsoft.NETCore.TestHost": "1.0.0-beta-23419", + "Microsoft.NETCore.Runtime": "1.0.1-beta-23419", - "System.Console": "4.0.0-*", - "System.Collections": "4.0.11-*", - "System.Linq": "4.0.1-*", - "System.Diagnostics.Process": "4.1.0-*", - "System.IO.FileSystem": "4.0.1-*", + "System.Console": "4.0.0-beta-23419", + "System.Collections": "4.0.11-beta-23419", + "System.Linq": "4.0.1-beta-23419", + "System.Diagnostics.Process": "4.1.0-beta-23419", + "System.IO.FileSystem": "4.0.1-beta-23419", "Microsoft.Extensions.ProjectModel": "1.0.0-*", "Microsoft.DotNet.Cli.Utils": { "type": "build", diff --git a/src/Microsoft.DotNet.Tools.Compiler/project.json b/src/Microsoft.DotNet.Tools.Compiler/project.json index 9680c409b..890337c63 100644 --- a/src/Microsoft.DotNet.Tools.Compiler/project.json +++ b/src/Microsoft.DotNet.Tools.Compiler/project.json @@ -11,11 +11,11 @@ "Microsoft.NETCore.TestHost": "1.0.0-*", "Microsoft.NETCore.Runtime": "1.0.1-beta-23413", - "System.Console": "4.0.0-*", - "System.Collections": "4.0.11-*", - "System.Linq": "4.0.1-*", - "System.Diagnostics.Process": "4.1.0-*", - "System.IO.FileSystem": "4.0.1-*", + "System.Console": "4.0.0-beta-23419", + "System.Collections": "4.0.11-beta-23419", + "System.Linq": "4.0.1-beta-23419", + "System.Diagnostics.Process": "4.1.0-beta-23419", + "System.IO.FileSystem": "4.0.1-beta-23419", "Microsoft.Extensions.ProjectModel": "1.0.0-*", "Microsoft.DotNet.Cli.Utils": { "type": "build", diff --git a/src/Microsoft.DotNet.Tools.Publish/project.json b/src/Microsoft.DotNet.Tools.Publish/project.json index c1464c637..0fc9c1cb4 100644 --- a/src/Microsoft.DotNet.Tools.Publish/project.json +++ b/src/Microsoft.DotNet.Tools.Publish/project.json @@ -8,12 +8,12 @@ "dotnet-publish": "Microsoft.DotNet.Tools.Publish" }, "dependencies": { - "Microsoft.NETCore.Runtime": "1.0.1-beta-23413", - "System.Console": "4.0.0-*", - "System.Collections": "4.0.11-*", - "System.Linq": "4.0.1-*", - "System.Diagnostics.Process": "4.1.0-*", - "System.IO.FileSystem": "4.0.1-*", + "Microsoft.NETCore.Runtime": "1.0.1-beta-23419", + "System.Console": "4.0.0-beta-23419", + "System.Collections": "4.0.11-beta-23419", + "System.Linq": "4.0.1-beta-23419", + "System.Diagnostics.Process": "4.1.0-beta-23419", + "System.IO.FileSystem": "4.0.1-beta-23419", "Microsoft.Extensions.ProjectModel": "1.0.0-*", "Microsoft.DotNet.Cli.Utils": { "type": "build", @@ -23,7 +23,7 @@ "type": "build", "version": "1.0.0-*" }, - "System.AppContext": "4.0.1-*" + "System.AppContext": "4.0.1-beta-23419" }, "frameworks": { "dnxcore50": { } diff --git a/src/Microsoft.DotNet.Tools.Resgen/project.json b/src/Microsoft.DotNet.Tools.Resgen/project.json index e7c5af064..671fb1215 100644 --- a/src/Microsoft.DotNet.Tools.Resgen/project.json +++ b/src/Microsoft.DotNet.Tools.Resgen/project.json @@ -8,13 +8,13 @@ "resgen": "Microsoft.DotNet.Tools.Resgen" }, "dependencies": { - "Microsoft.NETCore.TestHost": "1.0.0-*", - "Microsoft.NETCore.Runtime": "1.0.1-beta-23413", - "System.Console": "4.0.0-*", - "System.Collections": "4.0.11-*", - "System.Linq": "4.0.1-*", - "System.Diagnostics.Process": "4.1.0-*", - "System.IO.FileSystem": "4.0.1-*", + "Microsoft.NETCore.TestHost": "1.0.0-beta-23419", + "Microsoft.NETCore.Runtime": "1.0.1-beta-23419", + "System.Console": "4.0.0-beta-23419", + "System.Collections": "4.0.11-beta-23419", + "System.Linq": "4.0.1-beta-23419", + "System.Diagnostics.Process": "4.1.0-beta-23419", + "System.IO.FileSystem": "4.0.1-beta-23419", "Microsoft.DotNet.Cli.Utils": { "type": "build", "version": "1.0.0-*" @@ -23,8 +23,8 @@ "type": "build", "version": "1.0.0-*" }, - "System.Xml.XDocument": "4.0.11-*", - "System.Resources.ReaderWriter": "4.0.0-*" + "System.Xml.XDocument": "4.0.11-beta-23419", + "System.Resources.ReaderWriter": "4.0.0-beta-23419" }, "frameworks": { "dnxcore50": { } diff --git a/src/Microsoft.Extensions.ProjectModel/project.json b/src/Microsoft.Extensions.ProjectModel/project.json index 8feeba45e..36f4f8149 100644 --- a/src/Microsoft.Extensions.ProjectModel/project.json +++ b/src/Microsoft.Extensions.ProjectModel/project.json @@ -3,18 +3,18 @@ "description": "Types to model a .NET Project", "dependencies": { - "Microsoft.CSharp": "4.0.1-*", - "System.Collections": "4.0.11-*", - "System.Linq": "4.0.1-*", - "System.Threading.Thread": "4.0.0-*", - "System.Runtime.Loader": "4.0.0-*", - "System.Dynamic.Runtime": "4.0.11-*", - "System.Runtime.InteropServices.RuntimeInformation": "4.0.0-*", + "Microsoft.CSharp": "4.0.1-beta-23419", + "System.Collections": "4.0.11-beta-23419", + "System.Linq": "4.0.1-beta-23419", + "System.Threading.Thread": "4.0.0-beta-23419", + "System.Runtime.Loader": "4.0.0-beta-23419", + "System.Dynamic.Runtime": "4.0.11-beta-23419", + "System.Runtime.InteropServices.RuntimeInformation": "4.0.0-beta-23419", "NuGet.Packaging": "3.2.0", "System.Security.Cryptography.Algorithms": "4.0.0-beta-23401", - "Microsoft.Extensions.FileSystemGlobbing": "1.0.0-*", + "Microsoft.Extensions.FileSystemGlobbing": "1.0.0-beta-23419", "Microsoft.Extensions.JsonParser.Sources": { "type": "build", "version": "1.0.0-*"