diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 527d60a371..b0afa9aa39 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -140,8 +140,15 @@ jobs: vmImage: $[ variables['vmImage'] ] variables: buildConfiguration: 'Release' + VSTestRTMBuild: 'false' steps: - - script: ./build.sh -c $(buildConfiguration) + - script: chmod +x ./scripts/vsts-prebuild.sh + displayName: 'Preparing for set version' + + - script: ./scripts/vsts-prebuild.sh -build "preview-$(Build.BuildNumber)" -rtm "$(VSTestRTMBuild)" -branch "$(Build.SourceBranch)" + displayName: 'Set Version' + + - script: ./build.sh -c $(buildConfiguration) -v "$(BuildVersionPrefix)" -vs "$(BuildVersionSuffix)" -ci true -verbose displayName: 'Build' - script: ./test.sh -c $(buildConfiguration) -p Unit diff --git a/eng/SourceBuild.props b/eng/SourceBuild.props index 7c23bbf8e4..b365645c34 100644 --- a/eng/SourceBuild.props +++ b/eng/SourceBuild.props @@ -9,6 +9,8 @@ ./build.sh -DotNetBuildFromSource + $(InnerBuildArgs) -v "$(BuildVersionPrefix)" + $(InnerBuildArgs) -vs "$(BuildVersionSuffix)" $(InnerBuildArgs) -DotNetCoreSdkDir $(DotNetRoot) $(InnerBuildArgs) -c $(Configuration) diff --git a/scripts/build.ps1 b/scripts/build.ps1 index faa3cc5d92..d69c552b71 100644 --- a/scripts/build.ps1 +++ b/scripts/build.ps1 @@ -95,6 +95,7 @@ $TPB_CIBuild = $CIBuild $TPB_PublishTests = $PublishTestArtifacts $TPB_LocalizedBuild = !$DisableLocalizedBuild $TPB_PackageOutDir = Join-Path $env:TP_OUT_DIR $TPB_Configuration\packages +$TPB_SourceBuildPackageOutDir = Join-Path $TPB_PackageOutDir "source-build" $language = @("cs", "de", "es", "fr", "it", "ja", "ko", "pl", "pt-BR", "ru", "tr", "zh-Hans", "zh-Hant") @@ -970,15 +971,21 @@ function Update-VsixVersion($vsixProjectDir) Write-Log "Update-VsixVersion: Completed." } -function Generate-Manifest +function Generate-Manifest ($PackageFolder) { - Write-Log "Generate-Manifest: Started." + $packagesFolderName = [System.IO.Path]::GetFileName($PackageFolder) + Write-Log "Generate-Manifest ($packagesFolderName): Started." $generateManifestPath = Join-Path $env:TP_ROOT_DIR "scripts\build\GenerateManifest.proj" $msbuildPath = Locate-MSBuildPath - & $msbuildPath $generateManifestPath /t:PublishToBuildAssetRegistry /p:PackagesToPublishPattern=$TPB_PackageOutDir\*.nupkg /p:BUILD_BUILDNUMBER=$BuildNumber /p:Configuration=$TPB_Configuration /bl:"$env:TP_OUT_DIR\log\$Configuration\manifest-generation.binlog" - Write-Log "Generate-Manifest: Completed." + & $msbuildPath $generateManifestPath /t:PublishToBuildAssetRegistry /p:PackagesToPublishPattern=$PackageFolder\*.nupkg ` + /p:BUILD_BUILDNUMBER=$BuildNumber ` + /p:PackagesPath="$PackageFolder\" ` + /p:Configuration=$TPB_Configuration ` + /bl:"$env:TP_OUT_DIR\log\$Configuration\manifest-generation-$packagesFolderName.binlog" + + Write-Log "Generate-Manifest ($packagesFolderName): Completed." } function Build-SpecificProjects @@ -1078,7 +1085,12 @@ if ($Force -or $Steps -contains "Publish") { } if ($Force -or $Steps -contains "Publish" -or $Steps -contains "Manifest") { - Generate-Manifest + Generate-Manifest -PackageFolder $TPB_PackageOutDir + if (Test-Path $TPB_SourceBuildPackageOutDir) + { + Generate-Manifest -PackageFolder $TPB_SourceBuildPackageOutDir + } + Copy-PackageIntoStaticDirectory } diff --git a/scripts/build/TestPlatform.Dependencies.props b/scripts/build/TestPlatform.Dependencies.props index cffa3e3157..2597030e39 100644 --- a/scripts/build/TestPlatform.Dependencies.props +++ b/scripts/build/TestPlatform.Dependencies.props @@ -1,4 +1,4 @@ - + 15.8.3247 diff --git a/scripts/vsts-prebuild.sh b/scripts/vsts-prebuild.sh new file mode 100644 index 0000000000..fd80684ad5 --- /dev/null +++ b/scripts/vsts-prebuild.sh @@ -0,0 +1,52 @@ +#!/usr/bin/env bash +# Copyright (c) Microsoft. All rights reserved. + +set -o nounset # Fail on uninitialized variables. +set -e # Fail on non-zero exit code. + +# Parameter +TP_BUILD_SUFFIX="dev" +BRANCH= +IS_RTM=false + +while [ $# -gt 0 ]; do + lowerI="$(echo ${1:-} | awk '{print tolower($0)}')" + case $lowerI in + -build) + TP_BUILD_SUFFIX=$2 + shift + ;; + -branch) + BRANCH=$2 + shift + ;; + -rtm) + IS_RTM=$2 + shift + ;; + *) + break + ;; + esac + shift +done + +TP_ROOT_DIR=$(cd "$(dirname "$0")/.."; pwd -P) +TP_BUILD_PREFIX=$(grep TPVersionPrefix $TP_ROOT_DIR/scripts/build/TestPlatform.Settings.targets | head -1 | cut -d'>' -f2 | cut -d'<' -f1 || echo $TP_BUILD_PREFIX) +PACKAGE_VERSION="$TP_BUILD_PREFIX-$TP_BUILD_SUFFIX" + +# Script +if [ $IS_RTM == true ]; then + PACKAGE_VERSION="$TP_BUILD_PREFIX" + TP_BUILD_SUFFIX= +else + if [ ! -z "$BRANCH" ] && [[ $BRANCH =~ ^refs\/heads\/rel\/.*$ ]]; then + TP_BUILD_SUFFIX="${TP_BUILD_SUFFIX/preview/release}" + fi + + PACKAGE_VERSION="$TP_BUILD_PREFIX-$TP_BUILD_SUFFIX" +fi + +echo "##vso[task.setvariable variable=BuildVersionPrefix;]$TP_BUILD_PREFIX" +echo "##vso[task.setvariable variable=BuildVersionSuffix;]$TP_BUILD_SUFFIX" +echo "##vso[task.setvariable variable=PackageVersion;]$PACKAGE_VERSION" \ No newline at end of file