Skip to content
This repository was archived by the owner on Dec 23, 2024. It is now read-only.

Commit 088d581

Browse files
brettfonosami
authored andcommitted
adopt official arcade source build (dotnet#10243)
1 parent 4601643 commit 088d581

File tree

7 files changed

+72
-54
lines changed

7 files changed

+72
-54
lines changed

Build.cmd

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
@echo off
2-
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\build.ps1""" -build -restore %*"
2+
powershell -ExecutionPolicy ByPass -NoProfile -command "& """%~dp0eng\build.ps1""" -build -restore -binaryLog %*"

FSharpBuild.Directory.Build.props

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -54,20 +54,9 @@
5454
<UpdateXlfOnBuild Condition="'$(CI)' != '1'">true</UpdateXlfOnBuild>
5555
</PropertyGroup>
5656

57-
<!-- source-build workarounds -->
58-
<PropertyGroup Condition="'$(FSharpSourceBuild)' == 'true'">
59-
<DeterministicSourcePaths>false</DeterministicSourcePaths>
57+
<!-- source build -->
58+
<PropertyGroup Condition="'$(DotNetBuildFromSource)' == 'true' OR '$(ArcadeBuildFromSource)' == 'true'">
6059
<PublishWindowsPdb>false</PublishWindowsPdb>
61-
<RepositoryUrl Condition="'$(RepositoryUrl)' == ''">https://github.com/Microsoft/visualfsharp</RepositoryUrl>
62-
<RepositoryType Condition="'$(RepositoryType)' == ''">git</RepositoryType>
63-
</PropertyGroup>
64-
65-
<PropertyGroup Condition="'$(FSharpSourceBuild)' == 'true' AND '$(RepositoryCommit)' == ''">
66-
<_DotGitDir>$(RepoRoot).git</_DotGitDir>
67-
<_HeadFileContent Condition="Exists('$(_DotGitDir)/HEAD')">$([System.IO.File]::ReadAllText('$(_DotGitDir)/HEAD').Trim())</_HeadFileContent>
68-
<_RefPath Condition="$(_HeadFileContent.StartsWith('ref: '))">$(_DotGitDir)/$(_HeadFileContent.Substring(5))</_RefPath>
69-
<RepositoryCommit>$(BUILD_SOURCEVERSION)</RepositoryCommit>
70-
<RepositoryCommit Condition="'$(RepositoryCommit)' == '' AND '$(_RefPath)' != '' and Exists('$(_RefPath)')">$([System.IO.File]::ReadAllText('$(_RefPath)').Trim())</RepositoryCommit>
7160
</PropertyGroup>
7261

7362
<!-- other -->

azure-pipelines.yml

Lines changed: 55 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -314,28 +314,6 @@ stages:
314314
- script: .\tests\EndToEndBuildTests\EndToEndBuildTests -c Release
315315
displayName: End to end build tests
316316

317-
# Source Build Linux - disabled until MSBuild/NuGet issues are resolved
318-
# - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
319-
# - job: SourceBuild_Linux
320-
# pool:
321-
# vmImage: ubuntu-latest
322-
# steps:
323-
# - checkout: self
324-
# clean: true
325-
# - script: ./eng/cibuild.sh --configuration Release /p:DotNetBuildFromSource=true /p:FSharpSourceBuild=true
326-
# displayName: Build
327-
# - script: dotnet build $(Build.SourcesDirectory)/eng/DumpPackageRoot/DumpPackageRoot.csproj
328-
# displayName: Dump NuGet cache contents
329-
# condition: failed()
330-
# - task: PublishBuildArtifacts@1
331-
# displayName: Publish NuGet cache contents
332-
# inputs:
333-
# PathtoPublish: '$(Build.SourcesDirectory)/artifacts/NugetPackageRootContents'
334-
# ArtifactName: 'NuGetPackageContents SourceBuild_Linux'
335-
# publishLocation: Container
336-
# continueOnError: true
337-
# condition: failed()
338-
339317
# Source Build Windows
340318
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
341319
- job: SourceBuild_Windows
@@ -344,19 +322,23 @@ stages:
344322
steps:
345323
- checkout: self
346324
clean: true
347-
- script: eng\CIBuild.cmd -configuration Release -noSign /p:DotNetBuildFromSource=true /p:FSharpSourceBuild=true
325+
- script: eng\CIBuild.cmd -configuration Release -noSign -prepareMachine -sourceBuild
348326
displayName: Build
349-
- script: dotnet build $(Build.SourcesDirectory)/eng/DumpPackageRoot/DumpPackageRoot.csproj
350-
displayName: Dump NuGet cache contents
351-
condition: failed()
327+
- task: PublishPipelineArtifact@1
328+
displayName: Publish Logs
329+
inputs:
330+
targetPath: '$(Build.SourcesDirectory)/artifacts/log/Release'
331+
artifactName: 'SourceBuild_Windows Logs'
332+
continueOnError: true
333+
condition: not(succeeded())
352334
- task: PublishBuildArtifacts@1
353-
displayName: Publish NuGet cache contents
335+
displayName: Publish Logs
354336
inputs:
355-
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\NugetPackageRootContents'
356-
ArtifactName: 'NuGetPackageContents SourceBuild_Windows'
337+
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/Release'
338+
ArtifactName: 'SourceBuild_Windows_Test'
357339
publishLocation: Container
358340
continueOnError: true
359-
condition: failed()
341+
condition: not(succeeded())
360342

361343
# Up-to-date - disabled due to it being flaky
362344
#- job: UpToDate_Windows
@@ -371,6 +353,49 @@ stages:
371353
# filePath: eng\tests\UpToDate.ps1
372354
# arguments: -configuration $(_BuildConfig) -ci -binaryLog
373355

356+
# Source Build Semi-Official
357+
# used until https://github.com/dotnet/source-build/issues/1795 is fixed
358+
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
359+
- job: SourceBuild_Official
360+
pool:
361+
name: NetCorePublic-Pool
362+
queue: BuildPool.Ubuntu.1604.amd64.Open
363+
timeoutInMinutes: 90
364+
steps:
365+
- checkout: self
366+
clean: true
367+
- script: ./eng/cibuild.sh --configuration Release --prepareMachine --docker --sourceBuild
368+
displayName: Build
369+
- task: PublishPipelineArtifact@1
370+
displayName: Publish Logs
371+
inputs:
372+
targetPath: '$(Build.SourcesDirectory)/artifacts/log/Release'
373+
artifactName: 'SourceBuild_Official Logs'
374+
continueOnError: true
375+
condition: not(succeeded())
376+
- task: PublishBuildArtifacts@1
377+
displayName: Publish Logs
378+
inputs:
379+
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/Release'
380+
ArtifactName: 'SourceBuild_Official_Test'
381+
publishLocation: Container
382+
continueOnError: true
383+
condition: not(succeeded())
384+
385+
# Arcade-powered source build
386+
# turned off until https://github.com/dotnet/source-build/issues/1795 is fixed
387+
# - template: /eng/common/templates/jobs/jobs.yml
388+
# parameters:
389+
# enablePublishUsingPipelines: true
390+
# enablePublishBuildArtifacts: true
391+
# enablePublishBuildAssets: true
392+
# artifacts:
393+
# publish:
394+
# artifacts: true
395+
# manifests: true
396+
# runSourceBuild: true
397+
# sourceBuildParameters:
398+
# includeDefaultManagedPlatform: true
374399

375400
#---------------------------------------------------------------------------------------------------------------------#
376401
# Post Build #

build.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,4 +13,4 @@ while [[ -h $source ]]; do
1313
done
1414

1515
scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
16-
"$scriptroot/eng/build.sh" --build --restore $@
16+
"$scriptroot/eng/build.sh" --build --restore --binaryLog $@

eng/Build.ps1

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ param (
5858
[switch]$testpack,
5959
[string]$officialSkipTests = "false",
6060
[switch]$noVisualStudio,
61+
[switch]$sourceBuild,
6162

6263
[parameter(ValueFromRemainingArguments=$true)][string[]]$properties)
6364

@@ -108,6 +109,7 @@ function Print-Usage() {
108109
Write-Host " -prepareMachine Prepare machine for CI run, clean up processes after build"
109110
Write-Host " -useGlobalNuGetCache Use global NuGet cache."
110111
Write-Host " -noVisualStudio Only build fsc and fsi as .NET Core applications. No Visual Studio required. '-configuration', '-verbosity', '-norestore', '-rebuild' are supported."
112+
Write-Host " -sourceBuild Simulate building for source-build."
111113
Write-Host ""
112114
Write-Host "Command line arguments starting with '/p:' are passed through to MSBuild."
113115
}
@@ -154,10 +156,11 @@ function Process-Arguments() {
154156
$script:pack = $True;
155157
}
156158

159+
if ($sourceBuild) {
160+
$script:testpack = $False;
161+
}
162+
157163
foreach ($property in $properties) {
158-
if ($property.StartsWith("/p:DotNetBuildFromSource=true", "InvariantCultureIgnoreCase")) {
159-
$script:testpack = $False;
160-
}
161164
if (!$property.StartsWith("/p:", "InvariantCultureIgnoreCase")) {
162165
Write-Host "Invalid argument: $property"
163166
Print-Usage
@@ -220,6 +223,7 @@ function BuildSolution() {
220223
/p:QuietRestore=$quietRestore `
221224
/p:QuietRestoreBinaryLog=$binaryLog `
222225
/p:TestTargetFrameworks=$testTargetFrameworks `
226+
/p:DotNetBuildFromSource=$sourceBuild `
223227
/v:$verbosity `
224228
$suppressExtensionDeployment `
225229
@properties

eng/build.sh

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ usage()
3030
echo " --docker Run in a docker container if applicable"
3131
echo " --skipAnalyzers Do not run analyzers during build operations"
3232
echo " --prepareMachine Prepare machine for CI run, clean up processes after build"
33+
echo " --sourceBuild Simulate building for source-build"
3334
echo ""
3435
echo "Command line arguments starting with '/p:' are passed through to MSBuild."
3536
}
@@ -130,14 +131,12 @@ while [[ $# > 0 ]]; do
130131
;;
131132
--docker)
132133
docker=true
133-
shift
134-
continue
134+
;;
135+
--sourcebuild)
136+
source_build=true
135137
;;
136138
/p:*)
137139
properties="$properties $1"
138-
if [[ "$1" == "/p:dotnetbuildfromsource=true" ]]; then
139-
source_build=true
140-
fi
141140
;;
142141
*)
143142
echo "Invalid argument: $1"
@@ -279,6 +278,7 @@ function BuildSolution {
279278
/p:ContinuousIntegrationBuild=$ci \
280279
/p:QuietRestore=$quiet_restore \
281280
/p:QuietRestoreBinaryLog="$binary_log" \
281+
/p:DotNetBuildFromSource=$source_build \
282282
$properties
283283
}
284284

setup/Swix/Directory.Build.targets

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
<Target Name="Build"
1717
DependsOnTargets="ResolveProjectReferences"
18-
Condition="'$(DotNetBuildFromSource)' != 'true'">
18+
Condition="'$(DotNetBuildFromSource)' != 'true' AND '$(ArcadeBuildFromSource)' != 'true'">
1919
<MakeDir Directories="$(IntermediateOutputPath)" ContinueOnError="True"/>
2020
</Target>
2121

0 commit comments

Comments
 (0)