adopt official arcade source build (#10243)
This commit is contained in:
Родитель
4601643ef8
Коммит
088d581d33
|
@ -1,2 +1,2 @@
|
||||||
@echo off
|
@echo off
|
||||||
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\build.ps1""" -build -restore %*"
|
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\build.ps1""" -build -restore -binaryLog %*"
|
||||||
|
|
|
@ -54,20 +54,9 @@
|
||||||
<UpdateXlfOnBuild Condition="'$(CI)' != '1'">true</UpdateXlfOnBuild>
|
<UpdateXlfOnBuild Condition="'$(CI)' != '1'">true</UpdateXlfOnBuild>
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<!-- source-build workarounds -->
|
<!-- source build -->
|
||||||
<PropertyGroup Condition="'$(FSharpSourceBuild)' == 'true'">
|
<PropertyGroup Condition="'$(DotNetBuildFromSource)' == 'true' OR '$(ArcadeBuildFromSource)' == 'true'">
|
||||||
<DeterministicSourcePaths>false</DeterministicSourcePaths>
|
|
||||||
<PublishWindowsPdb>false</PublishWindowsPdb>
|
<PublishWindowsPdb>false</PublishWindowsPdb>
|
||||||
<RepositoryUrl Condition="'$(RepositoryUrl)' == ''">https://github.com/Microsoft/visualfsharp</RepositoryUrl>
|
|
||||||
<RepositoryType Condition="'$(RepositoryType)' == ''">git</RepositoryType>
|
|
||||||
</PropertyGroup>
|
|
||||||
|
|
||||||
<PropertyGroup Condition="'$(FSharpSourceBuild)' == 'true' AND '$(RepositoryCommit)' == ''">
|
|
||||||
<_DotGitDir>$(RepoRoot).git</_DotGitDir>
|
|
||||||
<_HeadFileContent Condition="Exists('$(_DotGitDir)/HEAD')">$([System.IO.File]::ReadAllText('$(_DotGitDir)/HEAD').Trim())</_HeadFileContent>
|
|
||||||
<_RefPath Condition="$(_HeadFileContent.StartsWith('ref: '))">$(_DotGitDir)/$(_HeadFileContent.Substring(5))</_RefPath>
|
|
||||||
<RepositoryCommit>$(BUILD_SOURCEVERSION)</RepositoryCommit>
|
|
||||||
<RepositoryCommit Condition="'$(RepositoryCommit)' == '' AND '$(_RefPath)' != '' and Exists('$(_RefPath)')">$([System.IO.File]::ReadAllText('$(_RefPath)').Trim())</RepositoryCommit>
|
|
||||||
</PropertyGroup>
|
</PropertyGroup>
|
||||||
|
|
||||||
<!-- other -->
|
<!-- other -->
|
||||||
|
|
|
@ -314,28 +314,6 @@ stages:
|
||||||
- script: .\tests\EndToEndBuildTests\EndToEndBuildTests -c Release
|
- script: .\tests\EndToEndBuildTests\EndToEndBuildTests -c Release
|
||||||
displayName: End to end build tests
|
displayName: End to end build tests
|
||||||
|
|
||||||
# Source Build Linux - disabled until MSBuild/NuGet issues are resolved
|
|
||||||
# - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
|
||||||
# - job: SourceBuild_Linux
|
|
||||||
# pool:
|
|
||||||
# vmImage: ubuntu-latest
|
|
||||||
# steps:
|
|
||||||
# - checkout: self
|
|
||||||
# clean: true
|
|
||||||
# - script: ./eng/cibuild.sh --configuration Release /p:DotNetBuildFromSource=true /p:FSharpSourceBuild=true
|
|
||||||
# displayName: Build
|
|
||||||
# - script: dotnet build $(Build.SourcesDirectory)/eng/DumpPackageRoot/DumpPackageRoot.csproj
|
|
||||||
# displayName: Dump NuGet cache contents
|
|
||||||
# condition: failed()
|
|
||||||
# - task: PublishBuildArtifacts@1
|
|
||||||
# displayName: Publish NuGet cache contents
|
|
||||||
# inputs:
|
|
||||||
# PathtoPublish: '$(Build.SourcesDirectory)/artifacts/NugetPackageRootContents'
|
|
||||||
# ArtifactName: 'NuGetPackageContents SourceBuild_Linux'
|
|
||||||
# publishLocation: Container
|
|
||||||
# continueOnError: true
|
|
||||||
# condition: failed()
|
|
||||||
|
|
||||||
# Source Build Windows
|
# Source Build Windows
|
||||||
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
||||||
- job: SourceBuild_Windows
|
- job: SourceBuild_Windows
|
||||||
|
@ -344,19 +322,23 @@ stages:
|
||||||
steps:
|
steps:
|
||||||
- checkout: self
|
- checkout: self
|
||||||
clean: true
|
clean: true
|
||||||
- script: eng\CIBuild.cmd -configuration Release -noSign /p:DotNetBuildFromSource=true /p:FSharpSourceBuild=true
|
- script: eng\CIBuild.cmd -configuration Release -noSign -prepareMachine -sourceBuild
|
||||||
displayName: Build
|
displayName: Build
|
||||||
- script: dotnet build $(Build.SourcesDirectory)/eng/DumpPackageRoot/DumpPackageRoot.csproj
|
- task: PublishPipelineArtifact@1
|
||||||
displayName: Dump NuGet cache contents
|
displayName: Publish Logs
|
||||||
condition: failed()
|
|
||||||
- task: PublishBuildArtifacts@1
|
|
||||||
displayName: Publish NuGet cache contents
|
|
||||||
inputs:
|
inputs:
|
||||||
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\NugetPackageRootContents'
|
targetPath: '$(Build.SourcesDirectory)/artifacts/log/Release'
|
||||||
ArtifactName: 'NuGetPackageContents SourceBuild_Windows'
|
artifactName: 'SourceBuild_Windows Logs'
|
||||||
|
continueOnError: true
|
||||||
|
condition: not(succeeded())
|
||||||
|
- task: PublishBuildArtifacts@1
|
||||||
|
displayName: Publish Logs
|
||||||
|
inputs:
|
||||||
|
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/Release'
|
||||||
|
ArtifactName: 'SourceBuild_Windows_Test'
|
||||||
publishLocation: Container
|
publishLocation: Container
|
||||||
continueOnError: true
|
continueOnError: true
|
||||||
condition: failed()
|
condition: not(succeeded())
|
||||||
|
|
||||||
# Up-to-date - disabled due to it being flaky
|
# Up-to-date - disabled due to it being flaky
|
||||||
#- job: UpToDate_Windows
|
#- job: UpToDate_Windows
|
||||||
|
@ -371,6 +353,49 @@ stages:
|
||||||
# filePath: eng\tests\UpToDate.ps1
|
# filePath: eng\tests\UpToDate.ps1
|
||||||
# arguments: -configuration $(_BuildConfig) -ci -binaryLog
|
# arguments: -configuration $(_BuildConfig) -ci -binaryLog
|
||||||
|
|
||||||
|
# Source Build Semi-Official
|
||||||
|
# used until https://github.com/dotnet/source-build/issues/1795 is fixed
|
||||||
|
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
|
||||||
|
- job: SourceBuild_Official
|
||||||
|
pool:
|
||||||
|
name: NetCorePublic-Pool
|
||||||
|
queue: BuildPool.Ubuntu.1604.amd64.Open
|
||||||
|
timeoutInMinutes: 90
|
||||||
|
steps:
|
||||||
|
- checkout: self
|
||||||
|
clean: true
|
||||||
|
- script: ./eng/cibuild.sh --configuration Release --prepareMachine --docker --sourceBuild
|
||||||
|
displayName: Build
|
||||||
|
- task: PublishPipelineArtifact@1
|
||||||
|
displayName: Publish Logs
|
||||||
|
inputs:
|
||||||
|
targetPath: '$(Build.SourcesDirectory)/artifacts/log/Release'
|
||||||
|
artifactName: 'SourceBuild_Official Logs'
|
||||||
|
continueOnError: true
|
||||||
|
condition: not(succeeded())
|
||||||
|
- task: PublishBuildArtifacts@1
|
||||||
|
displayName: Publish Logs
|
||||||
|
inputs:
|
||||||
|
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/Release'
|
||||||
|
ArtifactName: 'SourceBuild_Official_Test'
|
||||||
|
publishLocation: Container
|
||||||
|
continueOnError: true
|
||||||
|
condition: not(succeeded())
|
||||||
|
|
||||||
|
# Arcade-powered source build
|
||||||
|
# turned off until https://github.com/dotnet/source-build/issues/1795 is fixed
|
||||||
|
# - template: /eng/common/templates/jobs/jobs.yml
|
||||||
|
# parameters:
|
||||||
|
# enablePublishUsingPipelines: true
|
||||||
|
# enablePublishBuildArtifacts: true
|
||||||
|
# enablePublishBuildAssets: true
|
||||||
|
# artifacts:
|
||||||
|
# publish:
|
||||||
|
# artifacts: true
|
||||||
|
# manifests: true
|
||||||
|
# runSourceBuild: true
|
||||||
|
# sourceBuildParameters:
|
||||||
|
# includeDefaultManagedPlatform: true
|
||||||
|
|
||||||
#---------------------------------------------------------------------------------------------------------------------#
|
#---------------------------------------------------------------------------------------------------------------------#
|
||||||
# Post Build #
|
# Post Build #
|
||||||
|
|
2
build.sh
2
build.sh
|
@ -13,4 +13,4 @@ while [[ -h $source ]]; do
|
||||||
done
|
done
|
||||||
|
|
||||||
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
|
||||||
"$scriptroot/eng/build.sh" --build --restore $@
|
"$scriptroot/eng/build.sh" --build --restore --binaryLog $@
|
||||||
|
|
|
@ -58,6 +58,7 @@ param (
|
||||||
[switch]$testpack,
|
[switch]$testpack,
|
||||||
[string]$officialSkipTests = "false",
|
[string]$officialSkipTests = "false",
|
||||||
[switch]$noVisualStudio,
|
[switch]$noVisualStudio,
|
||||||
|
[switch]$sourceBuild,
|
||||||
|
|
||||||
[parameter(ValueFromRemainingArguments=$true)][string[]]$properties)
|
[parameter(ValueFromRemainingArguments=$true)][string[]]$properties)
|
||||||
|
|
||||||
|
@ -108,6 +109,7 @@ function Print-Usage() {
|
||||||
Write-Host " -prepareMachine Prepare machine for CI run, clean up processes after build"
|
Write-Host " -prepareMachine Prepare machine for CI run, clean up processes after build"
|
||||||
Write-Host " -useGlobalNuGetCache Use global NuGet cache."
|
Write-Host " -useGlobalNuGetCache Use global NuGet cache."
|
||||||
Write-Host " -noVisualStudio Only build fsc and fsi as .NET Core applications. No Visual Studio required. '-configuration', '-verbosity', '-norestore', '-rebuild' are supported."
|
Write-Host " -noVisualStudio Only build fsc and fsi as .NET Core applications. No Visual Studio required. '-configuration', '-verbosity', '-norestore', '-rebuild' are supported."
|
||||||
|
Write-Host " -sourceBuild Simulate building for source-build."
|
||||||
Write-Host ""
|
Write-Host ""
|
||||||
Write-Host "Command line arguments starting with '/p:' are passed through to MSBuild."
|
Write-Host "Command line arguments starting with '/p:' are passed through to MSBuild."
|
||||||
}
|
}
|
||||||
|
@ -154,10 +156,11 @@ function Process-Arguments() {
|
||||||
$script:pack = $True;
|
$script:pack = $True;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if ($sourceBuild) {
|
||||||
|
$script:testpack = $False;
|
||||||
|
}
|
||||||
|
|
||||||
foreach ($property in $properties) {
|
foreach ($property in $properties) {
|
||||||
if ($property.StartsWith("/p:DotNetBuildFromSource=true", "InvariantCultureIgnoreCase")) {
|
|
||||||
$script:testpack = $False;
|
|
||||||
}
|
|
||||||
if (!$property.StartsWith("/p:", "InvariantCultureIgnoreCase")) {
|
if (!$property.StartsWith("/p:", "InvariantCultureIgnoreCase")) {
|
||||||
Write-Host "Invalid argument: $property"
|
Write-Host "Invalid argument: $property"
|
||||||
Print-Usage
|
Print-Usage
|
||||||
|
@ -220,6 +223,7 @@ function BuildSolution() {
|
||||||
/p:QuietRestore=$quietRestore `
|
/p:QuietRestore=$quietRestore `
|
||||||
/p:QuietRestoreBinaryLog=$binaryLog `
|
/p:QuietRestoreBinaryLog=$binaryLog `
|
||||||
/p:TestTargetFrameworks=$testTargetFrameworks `
|
/p:TestTargetFrameworks=$testTargetFrameworks `
|
||||||
|
/p:DotNetBuildFromSource=$sourceBuild `
|
||||||
/v:$verbosity `
|
/v:$verbosity `
|
||||||
$suppressExtensionDeployment `
|
$suppressExtensionDeployment `
|
||||||
@properties
|
@properties
|
||||||
|
|
10
eng/build.sh
10
eng/build.sh
|
@ -30,6 +30,7 @@ usage()
|
||||||
echo " --docker Run in a docker container if applicable"
|
echo " --docker Run in a docker container if applicable"
|
||||||
echo " --skipAnalyzers Do not run analyzers during build operations"
|
echo " --skipAnalyzers Do not run analyzers during build operations"
|
||||||
echo " --prepareMachine Prepare machine for CI run, clean up processes after build"
|
echo " --prepareMachine Prepare machine for CI run, clean up processes after build"
|
||||||
|
echo " --sourceBuild Simulate building for source-build"
|
||||||
echo ""
|
echo ""
|
||||||
echo "Command line arguments starting with '/p:' are passed through to MSBuild."
|
echo "Command line arguments starting with '/p:' are passed through to MSBuild."
|
||||||
}
|
}
|
||||||
|
@ -130,14 +131,12 @@ while [[ $# > 0 ]]; do
|
||||||
;;
|
;;
|
||||||
--docker)
|
--docker)
|
||||||
docker=true
|
docker=true
|
||||||
shift
|
;;
|
||||||
continue
|
--sourcebuild)
|
||||||
|
source_build=true
|
||||||
;;
|
;;
|
||||||
/p:*)
|
/p:*)
|
||||||
properties="$properties $1"
|
properties="$properties $1"
|
||||||
if [[ "$1" == "/p:dotnetbuildfromsource=true" ]]; then
|
|
||||||
source_build=true
|
|
||||||
fi
|
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
echo "Invalid argument: $1"
|
echo "Invalid argument: $1"
|
||||||
|
@ -279,6 +278,7 @@ function BuildSolution {
|
||||||
/p:ContinuousIntegrationBuild=$ci \
|
/p:ContinuousIntegrationBuild=$ci \
|
||||||
/p:QuietRestore=$quiet_restore \
|
/p:QuietRestore=$quiet_restore \
|
||||||
/p:QuietRestoreBinaryLog="$binary_log" \
|
/p:QuietRestoreBinaryLog="$binary_log" \
|
||||||
|
/p:DotNetBuildFromSource=$source_build \
|
||||||
$properties
|
$properties
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@
|
||||||
|
|
||||||
<Target Name="Build"
|
<Target Name="Build"
|
||||||
DependsOnTargets="ResolveProjectReferences"
|
DependsOnTargets="ResolveProjectReferences"
|
||||||
Condition="'$(DotNetBuildFromSource)' != 'true'">
|
Condition="'$(DotNetBuildFromSource)' != 'true' AND '$(ArcadeBuildFromSource)' != 'true'">
|
||||||
<MakeDir Directories="$(IntermediateOutputPath)" ContinueOnError="True"/>
|
<MakeDir Directories="$(IntermediateOutputPath)" ContinueOnError="True"/>
|
||||||
</Target>
|
</Target>
|
||||||
|
|
||||||
|
|
Загрузка…
Ссылка в новой задаче