1
1
# CI and PR triggers
2
2
trigger :
3
- - master
4
- - dev16.1
5
- - feature/*
6
- - release/*
3
+ branches :
4
+ include :
5
+ - main
6
+ - dev16.1
7
+ - feature/*
8
+ - release/*
9
+ paths :
10
+ include :
11
+ - ' *'
12
+ exclude :
13
+ - .github/*
14
+ - docs/compiler-guide.md
15
+ - attributions.md
16
+ - CODE_OF_CONDUCT.md
17
+ - DEVGUIDE.md
18
+ - INTERNAL.md
19
+ - Language-Version-History.md
20
+ - License.txt
21
+ - README.md
22
+ - release-notes.md
23
+ - TESTGUIDE.md
24
+
7
25
pr :
8
- - master
9
- - dev16.1
10
- - feature/*
11
- - release/*
26
+ branches :
27
+ include :
28
+ - main
29
+ - dev16.1
30
+ - feature/*
31
+ - release/*
32
+ paths :
33
+ include :
34
+ - ' *'
35
+ exclude :
36
+ - .github/*
37
+ - docs/compiler-guide.md
38
+ - attributions.md
39
+ - CODE_OF_CONDUCT.md
40
+ - DEVGUIDE.md
41
+ - INTERNAL.md
42
+ - Language-Version-History.md
43
+ - License.txt
44
+ - README.md
45
+ - release-notes.md
46
+ - TESTGUIDE.md
12
47
13
48
variables :
14
49
- name : _TeamName
@@ -21,6 +56,8 @@ variables:
21
56
value : .NETCore
22
57
- name : VisualStudioDropName
23
58
value : Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)
59
+ - name : DotNetSdkVersion
60
+ value : ' 5.0.100'
24
61
- ${{ if and(eq(variables['System.TeamProject'], 'public'), eq(variables['Build.Reason'], 'PullRequest')) }} :
25
62
- name : RunningAsPullRequest
26
63
value : true
@@ -289,28 +326,6 @@ stages:
289
326
- script : .\tests\EndToEndBuildTests\EndToEndBuildTests.cmd -c Release
290
327
displayName : End to end build tests
291
328
292
- # Source Build Linux - disabled until MSBuild/NuGet issues are resolved
293
- # - ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
294
- # - job: SourceBuild_Linux
295
- # pool:
296
- # vmImage: ubuntu-latest
297
- # steps:
298
- # - checkout: self
299
- # clean: true
300
- # - script: ./eng/cibuild.sh --configuration Release /p:DotNetBuildFromSource=true /p:FSharpSourceBuild=true
301
- # displayName: Build
302
- # - script: dotnet build $(Build.SourcesDirectory)/eng/DumpPackageRoot/DumpPackageRoot.csproj
303
- # displayName: Dump NuGet cache contents
304
- # condition: failed()
305
- # - task: PublishBuildArtifacts@1
306
- # displayName: Publish NuGet cache contents
307
- # inputs:
308
- # PathtoPublish: '$(Build.SourcesDirectory)/artifacts/NugetPackageRootContents'
309
- # ArtifactName: 'NuGetPackageContents SourceBuild_Linux'
310
- # publishLocation: Container
311
- # continueOnError: true
312
- # condition: failed()
313
-
314
329
# Source Build Windows
315
330
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }} :
316
331
- job : SourceBuild_Windows
@@ -319,132 +334,158 @@ stages:
319
334
steps :
320
335
- checkout : self
321
336
clean : true
322
- - script : eng\CIBuild.cmd -configuration Release -noSign /p:DotNetBuildFromSource=true /p:FSharpSourceBuild=true
337
+ - script : eng\CIBuild.cmd -configuration Release -noSign -prepareMachine -sourceBuild
323
338
displayName : Build
324
- - script : dotnet build $(Build.SourcesDirectory)/eng/DumpPackageRoot/DumpPackageRoot.csproj
325
- displayName : Dump NuGet cache contents
326
- condition : failed()
339
+ - task : PublishPipelineArtifact@1
340
+ displayName : Publish Logs
341
+ inputs :
342
+ targetPath : ' $(Build.SourcesDirectory)/artifacts/log/Release'
343
+ artifactName : ' SourceBuild_Windows Logs'
344
+ continueOnError : true
345
+ condition : not(succeeded())
327
346
- task : PublishBuildArtifacts@1
328
- displayName : Publish NuGet cache contents
347
+ displayName : Publish Logs
329
348
inputs :
330
- PathtoPublish : ' $(Build.SourcesDirectory)\ artifacts\NugetPackageRootContents '
331
- ArtifactName : ' NuGetPackageContents SourceBuild_Windows '
349
+ PathtoPublish : ' $(Build.SourcesDirectory)/ artifacts/log/Release '
350
+ ArtifactName : ' SourceBuild_Windows_Test '
332
351
publishLocation : Container
333
352
continueOnError : true
334
- condition : failed( )
353
+ condition : not(succeeded() )
335
354
336
- # Up-to-date
337
- - job : UpToDate_Windows
338
- pool :
339
- vmImage : windows-2019
340
- steps :
341
- - checkout : self
342
- clean : true
343
- - task : PowerShell@2
344
- displayName : Run up-to-date build check
345
- inputs :
346
- filePath : eng\tests\UpToDate.ps1
347
- arguments : -configuration $(_BuildConfig) -ci -binaryLog
355
+ # Up-to-date - disabled due to it being flaky
356
+ # - job: UpToDate_Windows
357
+ # pool:
358
+ # vmImage: windows-2019
359
+ # steps:
360
+ # - checkout: self
361
+ # clean: true
362
+ # - task: PowerShell@2
363
+ # displayName: Run up-to-date build check
364
+ # inputs:
365
+ # filePath: eng\tests\UpToDate.ps1
366
+ # arguments: -configuration $(_BuildConfig) -ci -binaryLog
348
367
349
- # -------------------------------------------------------------------------------------------------------------------#
350
- # FCS builds #
351
- # -------------------------------------------------------------------------------------------------------------------#
352
-
353
- - ${{ if eq(variables['System.TeamProject'], 'public') }} :
354
- - template : /eng/common/templates/jobs/jobs.yml
355
- parameters :
356
- enableMicrobuild : true
357
- enablePublishTestResults : false
358
- enablePublishBuildAssets : true
359
- enablePublishUsingPipelines : false
360
- enableTelemetry : true
361
- helixRepo : dotnet/fsharp
362
- jobs :
368
+ # Source Build Semi-Official
369
+ # used until https://github.com/dotnet/source-build/issues/1795 is fixed
370
+ - ${{ if eq(variables['Build.Reason'], 'PullRequest') }} :
371
+ - job : SourceBuild_Official
372
+ pool :
373
+ name : NetCorePublic-Pool
374
+ queue : BuildPool.Ubuntu.1604.amd64.Open
375
+ timeoutInMinutes : 90
376
+ steps :
377
+ - checkout : self
378
+ clean : true
379
+ - script : ./eng/cibuild.sh --configuration Release --prepareMachine --docker --sourceBuild
380
+ displayName : Build
381
+ - task : PublishPipelineArtifact@1
382
+ displayName : Publish Logs
383
+ inputs :
384
+ targetPath : ' $(Build.SourcesDirectory)/artifacts/log/Release'
385
+ artifactName : ' SourceBuild_Official Logs'
386
+ continueOnError : true
387
+ condition : not(succeeded())
388
+ - task : PublishBuildArtifacts@1
389
+ displayName : Publish Logs
390
+ inputs :
391
+ PathtoPublish : ' $(Build.SourcesDirectory)/artifacts/log/Release'
392
+ ArtifactName : ' SourceBuild_Official_Test'
393
+ publishLocation : Container
394
+ continueOnError : true
395
+ condition : not(succeeded())
363
396
364
- - job : Windows_FCS
365
- pool :
366
- vmImage : windows-2019
367
- variables :
368
- - name : _SignType
369
- value : Test
370
- steps :
371
- - checkout : self
372
- clean : true
373
- - task : UseDotNet@2
374
- displayName : ' Use .NET Core sdk'
375
- inputs :
376
- useGlobalJson : true
377
- workingDirectory : fcs
378
- - script : fcs\build.cmd TestAndNuget
379
- displayName : Build / Test
380
- - task : PublishTestResults@2
381
- displayName : Publish Test Results
382
- inputs :
383
- testResultsFormat : ' NUnit'
384
- testResultsFiles : ' *.xml'
385
- searchFolder : ' $(Build.SourcesDirectory)/artifacts/TestResults/Release'
386
- publishRunAttachments : true
387
- continueOnError : true
388
- condition : always()
397
+ # Plain build Windows
398
+ # Disabled until the Windows Proto compiler is coreclr
399
+ # - job: Plain_Build_Windows
400
+ # pool:
401
+ # vmImage: windows-latest
402
+ # variables:
403
+ # - name: _BuildConfig
404
+ # value: Debug
405
+ # steps:
406
+ # - checkout: self
407
+ # clean: true
408
+ # - script: .\Build.cmd
409
+ # displayName: Initial build
410
+ # - script: dotnet --list-sdks
411
+ # displayName: Report dotnet SDK versions
412
+ # - task: UseDotNet@2
413
+ # displayName: install SDK
414
+ # inputs:
415
+ # packageType: sdk
416
+ # version: $(DotNetSdkVersion)
417
+ # installationPath: $(Agent.ToolsDirectory)/dotnet
418
+ # - script: dotnet build .\FSharp.sln /bl:\"artifacts/log/$(_BuildConfig)/RegularBuild.binlog\"
419
+ # displayName: Regular rebuild
389
420
390
- - job : Linux_FCS
421
+ # Plain build Linux
422
+ - job : Plain_Build_Linux
391
423
pool :
392
424
vmImage : ubuntu-latest
393
425
variables :
394
- - name : _SignType
395
- value : Test
426
+ - name : _BuildConfig
427
+ value : Debug
396
428
steps :
397
429
- checkout : self
398
430
clean : true
431
+ - script : ./build.sh
432
+ displayName : Initial build
433
+ - script : dotnet --list-sdks
434
+ displayName : Report dotnet SDK versions
399
435
- task : UseDotNet@2
400
- displayName : ' Use .NET Core sdk'
401
- inputs :
402
- useGlobalJson : true
403
- workingDirectory : fcs
404
- - script : ./fcs/build.sh
405
- displayName : Build / Test
406
- - task : PublishTestResults@2
407
- displayName : Publish Test Results
436
+ displayName : install SDK
408
437
inputs :
409
- testResultsFormat : ' NUnit'
410
- testResultsFiles : ' *.xml'
411
- searchFolder : ' $(Build.SourcesDirectory)/artifacts/TestResults/Release'
412
- publishRunAttachments : true
413
- continueOnError : true
414
- condition : always()
438
+ packageType : sdk
439
+ version : $(DotNetSdkVersion)
440
+ installationPath : $(Agent.ToolsDirectory)/dotnet
441
+ - script : dotnet build ./FSharp.sln /bl:\"artifacts/log/$(_BuildConfig)/RegularBuild.binlog\"
442
+ displayName : Regular rebuild
415
443
416
- - job : MacOS_FCS
444
+ # Plain build Mac
445
+ - job : Plain_Build_MacOS
417
446
pool :
418
- vmImage : macOS -latest
447
+ vmImage : macos -latest
419
448
variables :
420
- - name : _SignType
421
- value : Test
449
+ - name : _BuildConfig
450
+ value : Debug
422
451
steps :
423
452
- checkout : self
424
453
clean : true
454
+ - script : ./build.sh
455
+ displayName : Initial build
456
+ - script : dotnet --list-sdks
457
+ displayName : Report dotnet SDK versions
425
458
- task : UseDotNet@2
426
- displayName : ' Use .NET Core sdk '
459
+ displayName : install SDK
427
460
inputs :
428
- useGlobalJson : true
429
- workingDirectory : fcs
430
- - script : ./fcs/build.sh
431
- displayName : Build / Test
432
- - task : PublishTestResults@2
433
- displayName : Publish Test Results
434
- inputs :
435
- testResultsFormat : ' NUnit'
436
- testResultsFiles : ' *.xml'
437
- searchFolder : ' $(Build.SourcesDirectory)/artifacts/TestResults/Release'
438
- publishRunAttachments : true
439
- continueOnError : true
440
- condition : always()
461
+ packageType : sdk
462
+ version : $(DotNetSdkVersion)
463
+ installationPath : $(Agent.ToolsDirectory)/dotnet
464
+ - script : dotnet build ./FSharp.sln /bl:\"artifacts/log/$(_BuildConfig)/RegularBuild.binlog\"
465
+ displayName : Regular rebuild
466
+
467
+ # Arcade-powered source build
468
+ # turned off until https://github.com/dotnet/source-build/issues/1795 is fixed
469
+ # - template: /eng/common/templates/jobs/jobs.yml
470
+ # parameters:
471
+ # enablePublishUsingPipelines: true
472
+ # enablePublishBuildArtifacts: true
473
+ # enablePublishBuildAssets: true
474
+ # artifacts:
475
+ # publish:
476
+ # artifacts: true
477
+ # manifests: true
478
+ # runSourceBuild: true
479
+ # sourceBuildParameters:
480
+ # includeDefaultManagedPlatform: true
441
481
442
482
# ---------------------------------------------------------------------------------------------------------------------#
443
483
# Post Build #
444
484
# ---------------------------------------------------------------------------------------------------------------------#
445
485
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }} :
446
486
- template : eng/common/templates/post-build/post-build.yml
447
487
parameters :
488
+ publishingInfraVersion : 3
448
489
# Symbol validation is not entirely reliable as of yet, so should be turned off until https://github.com/dotnet/arcade/issues/2871 is resolved.
449
490
enableSymbolValidation : false
450
491
# SourceLink improperly looks for generated files. See https://github.com/dotnet/arcade/issues/3069
@@ -456,7 +497,7 @@ stages:
456
497
- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }} :
457
498
- template : eng/release/insert-into-vs.yml
458
499
parameters :
459
- componentBranchName : refs/heads/ release/dev16.8
460
- insertTargetBranch : rel/d16.8
500
+ componentBranchName : release/dev16.8
501
+ insertTargetBranch : master
461
502
insertTeamEmail :
[email protected]
462
503
insertTeamName : ' F#'
0 commit comments