Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# output location
artifacts/

packages/

/tests/scripts/current
.dotnet/
.packages/
./tools

# Patches that may have been generated by scripts.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Also add .packages/ and ./tools. These are used in CI builds.

# (These aren't generally useful to commit directly; if anything, they should be applied.)
Expand Down
144 changes: 101 additions & 43 deletions .vsts-pr.yaml
Original file line number Diff line number Diff line change
@@ -1,26 +1,48 @@
jobs:

- job: Linux
pool:
vmImage: ubuntu-16.04
timeoutInMinutes: 90
strategy:
maxParallel: 3
matrix:
dotnet_sdk:
_command: make
_args: Configuration=release
release_fcs:
_command: ./fcs/build.sh
_args: Build
coreclr_release:
_configuration: Release
_testKind: testcoreclr
steps:
- script: ./eng/cibuild.sh --configuration $(_configuration) --$(_testKind)
- task: PublishBuildArtifacts@1
displayName: Publish Build Logs
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_configuration)'
ArtifactName: 'Linux $(_configuration) $(_testKind) build log'
publishLocation: Container
continueOnError: true
condition: not(succeeded())
- task: PublishBuildArtifacts@1
displayName: Publish Test Results
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults'
ArtifactName: 'Linux $(_configuration) $(_testKind)'
publishLocation: Container
continueOnError: true
condition: not(succeeded())

- job: Linux_FCS
pool:
vmImage: ubuntu-16.04
timeoutInMinutes: 90
steps:
- script: $(_command) $(_args)
- script: ./fcs/build.sh Build
- task: PublishBuildArtifacts@1
displayName: Publish Test Results
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults'
ArtifactName: 'Linux $(_command) $(_args)'
ArtifactName: 'Linux FCS test results'
publishLocation: Container
continueOnError: true
condition: failed()
condition: not(succeeded())

- job: MacOS
pool:
Expand All @@ -29,56 +51,92 @@ jobs:
strategy:
maxParallel: 3
matrix:
dotnet_sdk:
_command: make
_args: Configuration=release
release_fcs:
_command: ./fcs/build.sh
_args: Build
coreclr_release:
_configuration: Release
_testKind: testcoreclr
steps:
- script: $(_command) $(_args)
- script: ./eng/cibuild.sh --configuration $(_configuration) --$(_testKind)
- task: PublishBuildArtifacts@1
displayName: Publish Build Logs
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_configuration)'
ArtifactName: 'MacOS $(_configuration) $(_testKind) build log'
publishLocation: Container
continueOnError: true
condition: not(succeeded())
- task: PublishBuildArtifacts@1
displayName: Publish Test Results
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults'
ArtifactName: 'MacOS $(_command) $(_args)'
ArtifactName: 'MacOS $(_configuration) $(_testKind)'
publishLocation: Container
continueOnError: true
condition: failed()
condition: not(succeeded())

- job: MacOS_FCS
pool:
vmImage: macOS-10.13
timeoutInMinutes: 90
steps:
- script: ./fcs/build.sh Build
- task: PublishBuildArtifacts@1
displayName: Publish Test Results
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/TestResults'
ArtifactName: 'MacOS FCS test results'
publishLocation: Container
continueOnError: true
condition: not(succeeded())

- job: Windows
pool:
vmImage: vs2017-win2016
timeoutInMinutes: 120
strategy:
maxParallel: 7
maxParallel: 4
matrix:
ci_part1:
_command: build.cmd
_args: release ci_part1
ci_part2:
_command: build.cmd
_args: release ci_part2
ci_part3:
_command: build.cmd
_args: release ci_part3
ci_part4:
_command: build.cmd
_args: release ci_part4
debug_default:
_command: build.cmd
_args: debug
net40_no_vs:
_command: build.cmd
_args: release net40
release_fcs:
_command: fcs\build.cmd
_args: TestAndNuget
desktop_release:
_configuration: Release
_testKind: testDesktop
coreclr_release:
_configuration: Release
_testKind: testCoreclr
fsharpqa_release:
_configuration: Release
_testKind: testFSharpQA
vs_release:
_configuration: Release
_testKind: testVs
steps:
- script: eng\CIBuild.cmd -configuration $(_configuration) -$(_testKind)
- task: PublishBuildArtifacts@1
displayName: Publish Build Logs
inputs:
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\$(_configuration)'
ArtifactName: 'Windows $(_configuration) $(_testKind) build log'
publishLocation: Container
continueOnError: true
condition: not(succeeded())
- task: PublishBuildArtifacts@1
displayName: Publish Test Results
inputs:
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\TestResults'
ArtifactName: 'Windows $(_configuration) $(_testKind) test results'
publishLocation: Container
continueOnError: true
condition: not(succeeded())

- job: Windows_FCS
pool:
vmImage: vs2017-win2016
timeoutInMinutes: 120
steps:
- script: $(_command) $(_args)
- script: fcs\build.cmd TestAndNuget
- task: PublishBuildArtifacts@1
displayName: Publish Test Results
inputs:
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\TestResults'
ArtifactName: 'Windows $(_command) $(_args)'
ArtifactName: 'Windows FCS test results'
publishLocation: Container
continueOnError: true
condition: failed()
condition: not(succeeded())
158 changes: 65 additions & 93 deletions .vsts-signed.yaml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
variables:
- name: PB_PublishBlobFeedUrl
value: https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
- group: DotNet-Blob-Feed
- name: PB_PublishBlobFeedKey
value: $(dotnetfeed-storage-access-key-1)
- name: SignType
value: real
- name: VisualStudioDropName
value: Products/$(System.TeamProject)/$(Build.Repository.Name)/$(Build.SourceBranchName)/$(Build.BuildNumber)

jobs:
- job: Full_Signed
Expand All @@ -13,124 +13,96 @@ jobs:
variables:
BuildConfiguration: 'Release'
steps:

# Install Signing Plugin
- task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@1
displayName: Install Signing Plugin
inputs:
signType: real
condition: and(succeeded(), in(variables['PB_SignType'], 'test', 'real'))

# Install Swix Plugin
- task: ms-vseng.MicroBuildTasks.32f78468-e895-4f47-962c-58a699361df8.MicroBuildSwixPlugin@1
displayName: Install Swix Plugin
esrpSigning: true
condition: and(succeeded(), ne(variables['SignType'], ''))

# Run build.cmd
- task: CmdLine@1
displayName: Run build.cmd
inputs:
filename: build.cmd
arguments: microbuild
# Build
- script: eng\CIBuild.cmd
-configuration $(BuildConfiguration)
-testAll
/p:OfficialBuildId=$(BUILD.BUILDNUMBER)
/p:VisualStudioDropName=$(VisualStudioDropName)
/p:DotNetSignType=$(SignType)
/p:DotNetPublishToBlobFeed=true
/p:DotNetPublishBlobFeedKey=$(dotnetfeed-storage-access-key-1)
/p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json
/p:PublishToSymbolServer=true
/p:DotNetSymbolServerTokenMsdl=$(microsoft-symbol-server-pat)
/p:DotNetSymbolServerTokenSymWeb=$(symweb-symbol-server-pat)
displayName: Build

# Publish nightly package to MyGet
- task: PowerShell@1
displayName: Publish nightly package to MyGet
# Publish logs
- task: PublishBuildArtifacts@1
displayName: Publish Logs
inputs:
scriptName: 'setup\publish-assets.ps1'
arguments: '-binariesPath artifacts\bin -configuration $(BuildConfiguration) -branchName $(Build.SourceBranch) -apiKey $(FSharp.MyGetApiKey)'
condition: and(succeeded(), contains(variables['PB_PublishType'], 'myget'))
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\log\$(BuildConfiguration)'
ArtifactName: 'Build Diagnostic Files'
publishLocation: Container
continueOnError: true
condition: succeededOrFailed()

# Package publish
- task: CmdLine@1
displayName: Restore package publishing
inputs:
filename: '.nuget\NuGet.exe'
arguments: 'restore packages.config -PackagesDirectory packages -Source https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json'
condition: and(succeeded(), contains(variables['PB_PublishType'], 'blob'))
- task: MSBuild@1
displayName: Publish packages to Azure Blob Storage
inputs:
solution: PublishToBlob.proj
msbuildArguments: '/t:Build /p:Configuration=$(BuildConfiguration) /p:ExpectedFeedUrl=$(PB_PublishBlobFeedUrl) /p:AccountKey=$(PB_PublishBlobFeedKey) /p:ManifestRepouri=$(Build.Repository.Uri) /p:ManifestBranch=$(Build.SourceBranch) /p:ManifestCommit=$(Build.SourceVersion) /p:ManifestBuildId=$(Build.BuildNumber) /bl:$(Build.SourcesDirectory)/artifacts/log/$(BuildConfiguration)/pub/publish.binlog'
condition: and(succeeded(), contains(variables['PB_PublishType'], 'blob'))
# Publish test results
- task: PublishBuildArtifacts@1
displayName: Publish publishing bin log
displayName: Publish Test Results
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(BuildConfiguration)/pub'
ArtifactName: 'Publish_bin_log'
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\TestResults'
ArtifactName: 'Test Results'
publishLocation: Container
continueOnError: true
condition: and(succeeded(), contains(variables['PB_PublishType'], 'blob'))
- task: CopyFiles@2
displayName: Gather Asset Manifests
condition: succeededOrFailed()

# Upload VSTS Drop
- task: ms-vseng.MicroBuildTasks.4305a8de-ba66-4d8b-b2d1-0dc4ecbbf5e8.MicroBuildUploadVstsDropFolder@1
displayName: Upload VSTS Drop
inputs:
SourceFolder: '$(Build.SourcesDirectory)/artifacts/log/$(BuildConfiguration)/AssetManifest'
TargetFolder: '$(Build.StagingDirectory)/AssetManifests'
continueOnError: true
condition: and(succeeded(), contains(variables['PB_PublishType'], 'blob'))
DropName: $(VisualStudioDropName)
DropFolder: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\Insertion'
condition: succeeded()

# Publish an artifact that the RoslynInsertionTool is able to find by its name.
- task: PublishBuildArtifacts@1
displayName: Push Asset Manifests
displayName: Publish Artifact VSSetup
inputs:
PathtoPublish: '$(Build.StagingDirectory)/AssetManifests'
PublishLocation: Container
ArtifactName: AssetManifests
continueOnError: true
condition: and(succeeded(), contains(variables['PB_PublishType'], 'blob'))
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\Insertion'
ArtifactName: 'VSSetup'
condition: succeeded()

# Create static drop
# Archive NuGet packages to DevOps.
- task: PublishBuildArtifacts@1
displayName: Create static drop
displayName: Publish Artifact Packages
inputs:
PathtoPublish: 'artifacts'
ArtifactName: '$(Build.BuildNumber)'
publishLocation: FilePath
TargetPath: '$(DropRoot)\$(Build.DefinitionName)\$(Build.SourceBranchName)'
Parallel: true
ParallelCount: 64
condition: and(succeeded(), contains(variables['PB_PublishType'], 'drop'))
PathtoPublish: '$(Build.SourcesDirectory)\artifacts\packages\$(BuildConfiguration)'
ArtifactName: 'Packages'
condition: succeeded()

# Publish symbols
- task: PublishSymbols@1
displayName: Publish symbols
# Publish nightly package to MyGet
- task: PowerShell@1
displayName: Publish nightly package to MyGet
inputs:
SymbolsPath: '$(DropRoot)\$(Build.DefinitionName)\$(Build.SourceBranchName)\$(Build.BuildNumber)\Symbols'
SearchPattern: '**\*.dll;**\*.exe;**\*.pdb'
SymbolsFolder: '$(Build.SourcesDirectory)\artifacts\SymStore'
TreatNotIndexedAsWarning: true
SymbolsProduct: '$(Build.DefinitionName)'
SymbolsVersion: '$(Build.BuildNumber)'
continueOnError: true
condition: and(succeeded(), contains(variables['PB_PublishType'], 'symbols'))
scriptName: 'setup\publish-assets.ps1'
arguments: '-binariesPath artifacts\bin -configuration $(BuildConfiguration) -branchName $(Build.SourceBranch) -apiKey $(FSharp.MyGetApiKey)'
condition: succeeded()

# Upload VSTS Drop
- task: ms-vseng.MicroBuildTasks.4305a8de-ba66-4d8b-b2d1-0dc4ecbbf5e8.MicroBuildUploadVstsDropFolder@1
displayName: Upload VSTS Drop
# Package publish
- task: PublishBuildArtifacts@1
displayName: Push Asset Manifests
inputs:
DropFolder: '$(Build.SourcesDirectory)\artifacts\VSSetup\$(BuildConfiguration)\Insertion'
condition: and(succeeded(), contains(variables['PB_PublishType'], 'vsts'))
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(BuildConfiguration)/AssetManifest'
ArtifactName: AssetManifests
continueOnError: true
condition: succeeded()

# Execute cleanup tasks
- task: ms-vseng.MicroBuildTasks.521a94ea-9e68-468a-8167-6dcf361ea776.MicroBuildCleanup@1
displayName: Execute cleanup tasks
condition: succeededOrFailed()

# Publish Artifact: MicroBuildOutputs
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: MicroBuildOutputs'
inputs:
PathtoPublish: '$(Build.StagingDirectory)\MicroBuild\Output'
ArtifactName: MicroBuildOutputs
publishLocation: Container
condition: and(succeeded(), contains(variables['PB_PublishType'], 'microbuild'))

# Publish Symbols to Symweb
- task: ms-vscs-artifact.build-tasks.artifactSymbolTask-1.artifactSymbolTask@0
displayName: Publish symbols to SymWeb
inputs:
symbolServiceURI: 'https://microsoft.artifacts.visualstudio.com/DefaultCollection'
sourcePath: '$(DropRoot)\$(Build.DefinitionName)\$(Build.SourceBranchName)\$(Build.BuildNumber)\SymStore'
usePat: false
condition: and(succeeded(), contains(variables['PB_PublishType'], 'symweb'))

- template: /eng/common/templates/job/publish-build-assets.yml
parameters:
dependsOn:
Expand Down
Loading