From 85b12e9fa18193c81c930032dc14755805b71c8e Mon Sep 17 00:00:00 2001 From: Pranav K Date: Mon, 19 Mar 2018 12:27:38 -0700 Subject: [PATCH] Enable dotnet-build bot --- .appveyor.yml | 4 +--- .travis.yml | 4 +--- build/buildpipeline/linux.groovy | 11 +++++++++++ build/buildpipeline/osx.groovy | 11 +++++++++++ build/buildpipeline/pipeline.groovy | 18 ++++++++++++++++++ build/buildpipeline/windows.groovy | 12 ++++++++++++ client-ts/FunctionalTests/package-lock.json | 2 +- korebuild-lock.txt | 4 ++-- run.ps1 | 16 ++++++++++++++-- run.sh | 16 +++++++++++++++- 10 files changed, 86 insertions(+), 12 deletions(-) create mode 100644 build/buildpipeline/linux.groovy create mode 100644 build/buildpipeline/osx.groovy create mode 100644 build/buildpipeline/pipeline.groovy create mode 100644 build/buildpipeline/windows.groovy diff --git a/.appveyor.yml b/.appveyor.yml index f8d65af7e4..35b1131ac9 100644 --- a/.appveyor.yml +++ b/.appveyor.yml @@ -7,7 +7,7 @@ branches: - /^release\/.*$/ - /^(.*\/)?ci-.*$/ build_script: -- ps: .\run.ps1 default-build +- ps: .\run.ps1 -ci default-build on_finish: - ps: 7z a testlogs.zip testlogs - ps: Push-AppveyorArtifact testlogs.zip @@ -16,8 +16,6 @@ install: clone_depth: 1 environment: global: - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true - DOTNET_CLI_TELEMETRY_OPTOUT: 1 ASPNETCORE_TEST_LOG_DIR: $(APPVEYOR_BUILD_FOLDER)\testlogs test: 'off' deploy: 'off' diff --git a/.travis.yml b/.travis.yml index e84ae1c10d..06281bb0ef 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,8 +5,6 @@ services: - docker env: global: - - DOTNET_SKIP_FIRST_TIME_EXPERIENCE: true - - DOTNET_CLI_TELEMETRY_OPTOUT: 1 - SIGNALR_TESTS_VERBOSE: 1 - TRAVIS_NODE_VERSION: 8.9.3 mono: none @@ -28,4 +26,4 @@ before_install: - nvm install $TRAVIS_NODE_VERSION - if test "$TRAVIS_OS_NAME" == "linux"; then docker pull redis; fi script: -- ./build.sh +- ./build.sh --ci diff --git a/build/buildpipeline/linux.groovy b/build/buildpipeline/linux.groovy new file mode 100644 index 0000000000..6bf3a44368 --- /dev/null +++ b/build/buildpipeline/linux.groovy @@ -0,0 +1,11 @@ +@Library('dotnet-ci') _ + +simpleNode('Ubuntu16.04', 'latest-or-auto-docker') { + stage ('Checking out source') { + checkout scm + } + stage ('Build') { + def environment = 'export SIGNALR_TESTS_VERBOSE=1' + sh "${environment} && ./build.sh --ci" + } +} diff --git a/build/buildpipeline/osx.groovy b/build/buildpipeline/osx.groovy new file mode 100644 index 0000000000..c5d4c7d03a --- /dev/null +++ b/build/buildpipeline/osx.groovy @@ -0,0 +1,11 @@ +@Library('dotnet-ci') _ + +simpleNode('OSX10.12','latest') { + stage ('Checking out source') { + checkout scm + } + stage ('Build') { + def environment = 'export SIGNALR_TESTS_VERBOSE=1' + sh "${environment} && ./build.sh --ci" + } +} diff --git a/build/buildpipeline/pipeline.groovy b/build/buildpipeline/pipeline.groovy new file mode 100644 index 0000000000..e915cadae1 --- /dev/null +++ b/build/buildpipeline/pipeline.groovy @@ -0,0 +1,18 @@ +import org.dotnet.ci.pipelines.Pipeline + +def windowsPipeline = Pipeline.createPipeline(this, 'build/buildpipeline/windows.groovy') +def linuxPipeline = Pipeline.createPipeline(this, 'build/buildpipeline/linux.groovy') +def osxPipeline = Pipeline.createPipeline(this, 'build/buildpipeline/osx.groovy') +String configuration = 'Release' +def parameters = [ + 'Configuration': configuration +] + +windowsPipeline.triggerPipelineOnEveryGithubPR("Windows ${configuration} x64 Build", parameters) +windowsPipeline.triggerPipelineOnGithubPush(parameters) + +linuxPipeline.triggerPipelineOnEveryGithubPR("Ubuntu 16.04 ${configuration} Build", parameters) +linuxPipeline.triggerPipelineOnGithubPush(parameters) + +osxPipeline.triggerPipelineOnEveryGithubPR("OSX 10.12 ${configuration} Build", parameters) +osxPipeline.triggerPipelineOnGithubPush(parameters) diff --git a/build/buildpipeline/windows.groovy b/build/buildpipeline/windows.groovy new file mode 100644 index 0000000000..8d26f313d4 --- /dev/null +++ b/build/buildpipeline/windows.groovy @@ -0,0 +1,12 @@ +@Library('dotnet-ci') _ + +// 'node' indicates to Jenkins that the enclosed block runs on a node that matches +// the label 'windows-with-vs' +simpleNode('Windows_NT','latest') { + stage ('Checking out source') { + checkout scm + } + stage ('Build') { + bat '.\\run.cmd -CI default-build' + } +} diff --git a/client-ts/FunctionalTests/package-lock.json b/client-ts/FunctionalTests/package-lock.json index 86487f2999..ed6372b193 100644 --- a/client-ts/FunctionalTests/package-lock.json +++ b/client-ts/FunctionalTests/package-lock.json @@ -658,4 +658,4 @@ "dev": true } } -} \ No newline at end of file +} diff --git a/korebuild-lock.txt b/korebuild-lock.txt index e40ef6651b..f531e7b0f7 100644 --- a/korebuild-lock.txt +++ b/korebuild-lock.txt @@ -1,2 +1,2 @@ -version:2.1.0-preview2-15742 -commithash:21fbb0f2c3fe4a9216e2d59632b98cfd7d685962 +version:2.1.0-preview2-15744 +commithash:9e15cb6062ab5b9790d3fa699e018543a6950713 diff --git a/run.ps1 b/run.ps1 index 27dcf848f8..96c6c54c69 100644 --- a/run.ps1 +++ b/run.ps1 @@ -26,12 +26,18 @@ The base url where build tools can be downloaded. Overrides the value from the c .PARAMETER Update Updates KoreBuild to the latest version even if a lock file is present. +.PARAMETER Reinstall +Re-installs KoreBuild + .PARAMETER ConfigFile The path to the configuration file that stores values. Defaults to korebuild.json. .PARAMETER ToolsSourceSuffix The Suffix to append to the end of the ToolsSource. Useful for query strings in blob stores. +.PARAMETER CI +Sets up CI specific settings and variables. + .PARAMETER Arguments Arguments to be passed to the command @@ -65,8 +71,10 @@ param( [string]$ToolsSource, [Alias('u')] [switch]$Update, - [string]$ConfigFile, + [switch]$Reinstall, [string]$ToolsSourceSuffix, + [string]$ConfigFile = $null, + [switch]$CI, [Parameter(ValueFromRemainingArguments = $true)] [string[]]$Arguments ) @@ -93,6 +101,10 @@ function Get-KoreBuild { $version = $version.TrimStart('version:').Trim() $korebuildPath = Join-Paths $DotNetHome ('buildtools', 'korebuild', $version) + if ($Reinstall -and (Test-Path $korebuildPath)) { + Remove-Item -Force -Recurse $korebuildPath + } + if (!(Test-Path $korebuildPath)) { Write-Host -ForegroundColor Magenta "Downloading KoreBuild $version" New-Item -ItemType Directory -Path $korebuildPath | Out-Null @@ -188,7 +200,7 @@ $korebuildPath = Get-KoreBuild Import-Module -Force -Scope Local (Join-Path $korebuildPath 'KoreBuild.psd1') try { - Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $Path -ConfigFile $ConfigFile + Set-KoreBuildSettings -ToolsSource $ToolsSource -DotNetHome $DotNetHome -RepoPath $Path -ConfigFile $ConfigFile -CI:$CI Invoke-KoreBuildCommand $Command @Arguments } finally { diff --git a/run.sh b/run.sh index 834961fc3a..4606a42e78 100755 --- a/run.sh +++ b/run.sh @@ -14,10 +14,12 @@ DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" [ -z "${DOTNET_HOME:-}" ] && DOTNET_HOME="$HOME/.dotnet" verbose=false update=false +reinstall=false repo_path="$DIR" channel='' tools_source='' tools_source_suffix='' +ci=false # # Functions @@ -38,6 +40,8 @@ __usage() { echo " -s|--tools-source|-ToolsSource The base url where build tools can be downloaded. Overrides the value from the config file." echo " --tools-source-suffix|-ToolsSourceSuffix The suffix to append to tools-source. Useful for query strings." echo " -u|--update Update to the latest KoreBuild even if the lock file is present." + echo " --reinstall Reinstall KoreBuild." + echo " --ci Apply CI specific settings and environment variables." echo "" echo "Description:" echo " This function will create a file \$DIR/korebuild-lock.txt. This lock file can be committed to source, but does not have to be." @@ -62,6 +66,10 @@ get_korebuild() { version="$(echo "${version#version:}" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//')" local korebuild_path="$DOTNET_HOME/buildtools/korebuild/$version" + if [ "$reinstall" = true ] && [ -d "$korebuild_path" ]; then + rm -rf "$korebuild_path" + fi + { if [ ! -d "$korebuild_path" ]; then mkdir -p "$korebuild_path" @@ -175,6 +183,12 @@ while [[ $# -gt 0 ]]; do -u|--update|-Update) update=true ;; + --reinstall|-[Rr]einstall) + reinstall=true + ;; + --ci) + ci=true + ;; --verbose|-Verbose) verbose=true ;; @@ -227,5 +241,5 @@ fi [ -z "$tools_source" ] && tools_source='https://aspnetcore.blob.core.windows.net/buildtools' get_korebuild -set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file" +set_korebuildsettings "$tools_source" "$DOTNET_HOME" "$repo_path" "$config_file" "$ci" invoke_korebuild_command "$command" "$@"