Files
sqltoolsservice/azure-pipelines/build.yml
2022-03-18 09:50:28 -07:00

222 lines
7.7 KiB
YAML

steps:
- task: UseDotNet@2
displayName: 'Use defined .NET Core sdk'
inputs:
useGlobalJson: true
- task: UseDotNet@2
displayName: 'Installing dotnet 3.1 to run srgen (To be removed after srgen is updated)'
inputs:
version: 3.1.406
- task: BatchScript@1
displayName: 'Run script build.cmd'
inputs:
filename: build.cmd
arguments: '-target=all -mono'
- task: DotNetCoreCLI@2
displayName: 'dotnet restore test/Microsoft.SqlTools.ServiceLayer.UnitTests'
inputs:
command: restore
projects: test/Microsoft.SqlTools.ServiceLayer.UnitTests
- task: DotNetCoreCLI@2
displayName: 'dotnet restore test/Microsoft.Kusto.ServiceLayer.UnitTests'
inputs:
command: restore
projects: test/Microsoft.Kusto.ServiceLayer.UnitTests
- task: DotNetCoreCLI@2
displayName: 'dotnet test test/Microsoft.SqlTools.ServiceLayer.UnitTests'
inputs:
command: test
projects: test/Microsoft.SqlTools.ServiceLayer.UnitTests
testRunTitle: SqlTools.ServiceLayer.UnitTests
arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'
- task: DotNetCoreCLI@2
displayName: 'dotnet test test/Microsoft.Kusto.ServiceLayer.UnitTests'
inputs:
command: test
projects: test/Microsoft.Kusto.ServiceLayer.UnitTests
testRunTitle: Kusto.ServiceLayer.UnitTests
arguments: '--configuration $(buildConfiguration) --collect "Code coverage"'
- task: Npm@1
displayName: 'npm install -g gulp-cli'
inputs:
command: custom
verbose: false
customCommand: 'install -g gulp-cli'
- task: BatchScript@1
displayName: 'Run script test/CodeCoverage/runintegration.bat'
inputs:
filename: test/CodeCoverage/runintegration.bat
workingFolder: test/CodeCoverage
enabled: false
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: 'ESRP CodeSigning - sha256 only'
inputs:
ConnectedServiceName: 'Code Signing'
FolderPath: '$(Build.SourcesDirectory)/artifacts/publish'
Pattern: 'Microsoft.SqlTools.ManagedBatchParser.dll,MicrosoftSqlToolsCredentials.exe,MicrosoftSqlToolsServiceLayer.exe,SqlSerializationService.exe,SqlToolsResourceProviderService.exe,Microsoft.SqlTools.Hosting.dll,Microsoft.SqlTools.ResourceProvider.Core.dll,Microsoft.SqlTools.ResourceProvider.DefaultImpl.dll,MicrosoftSqlToolsCredentials.dll,MicrosoftSqlToolsServiceLayer.dll,Newtonsoft.Json.dll,SqlSerializationService.dll,SqlToolsResourceProviderService.dll,System.Data.SqlClient.dll,System.Net.Sockets.dll'
signConfigType: inlineSignParams
inlineOperation: |
[
{
"keyCode": "CP-230012",
"operationSetCode": "SigntoolSign",
"parameters": [
{
"parameterName": "OpusName",
"parameterValue": "SQL Tools Service"
},
{
"parameterName": "OpusInfo",
"parameterValue": "https://github.com/microsoft/sqltoolsservice"
},
{
"parameterName": "PageHash",
"parameterValue": "/NPH"
},
{
"parameterName": "FileDigest",
"parameterValue": "/fd sha256"
},
{
"parameterName": "TimeStamp",
"parameterValue": "/tr \"http://rfc3161.gtm.corp.microsoft.com/TSS/HttpTspServer\" /td sha256"
}
],
"toolName": "signtool.exe",
"toolVersion": "6.2.9304.0"
},
{
"keyCode": "CP-230012",
"operationSetCode": "SigntoolVerify",
"parameters": [
{
"parameterName": "VerifyAll",
"parameterValue": "/all"
}
],
"toolName": "signtool.exe",
"toolVersion": "6.2.9304.0"
}
]
SessionTimeout: 600
MaxConcurrency: 5
- task: BatchScript@1
displayName: 'Package published projects'
inputs:
filename: build.cmd
arguments: '-target=dotnetpackpublished -mono'
continueOnError: true
- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: 'ESRP Code Signing - Nuget Package'
inputs:
ConnectedServiceName: 'Code Signing'
FolderPath: '$(Build.SourcesDirectory)/artifacts/nugetPackages'
Pattern: '*.nupkg'
signConfigType: 'inlineSignParams'
inlineOperation: |
[
{
"keyCode": "CP-401405",
"operationSetCode": "NuGetSign",
"parameters": [ ],
"toolName": "sign",
"toolVersion": "1.0"
},
{
"keyCode": "CP-401405",
"operationSetCode": "NuGetVerify",
"parameters": [ ],
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: '60'
MaxConcurrency: '50'
MaxRetryAttempts: '5'
- task: ArchiveFiles@1
displayName: 'Archive osx build'
inputs:
rootFolder: '$(Build.SourcesDirectory)/artifacts/publish/Microsoft.SqlTools.ServiceLayer/osx.10.11-x64/net6.0'
includeRootFolder: false
archiveType: tar
archiveFile: '$(Build.SourcesDirectory)/artifacts/package/Microsoft.SqlTools.ServiceLayer-osx-x64-net6.0.tar.gz'
- task: ArchiveFiles@1
displayName: 'Archive rhel build'
inputs:
rootFolder: '$(Build.SourcesDirectory)/artifacts/publish/Microsoft.SqlTools.ServiceLayer/rhel.7.2-x64/net6.0'
includeRootFolder: false
archiveType: tar
archiveFile: '$(Build.SourcesDirectory)/artifacts/package/Microsoft.SqlTools.ServiceLayer-rhel-x64-net6.0.tar.gz'
- task: ArchiveFiles@1
displayName: 'Archive windows 64 bit build'
inputs:
rootFolder: '$(Build.SourcesDirectory)/artifacts/publish/Microsoft.SqlTools.ServiceLayer/win-x64/net6.0'
includeRootFolder: false
archiveFile: '$(Build.SourcesDirectory)/artifacts/package/Microsoft.SqlTools.ServiceLayer-win-x64-net6.0.zip'
- task: ArchiveFiles@1
displayName: 'Archive windows 32 bit build'
inputs:
rootFolder: '$(Build.SourcesDirectory)/artifacts/publish/Microsoft.SqlTools.ServiceLayer/win-x86/net6.0'
includeRootFolder: false
archiveFile: '$(Build.SourcesDirectory)/artifacts/package/Microsoft.SqlTools.ServiceLayer-win-x86-net6.0.zip'
# - task: ArchiveFiles@1
# displayName: 'Archive windows10 arm 32 bit build'
# inputs:
# rootFolder: '$(Build.SourcesDirectory)/artifacts/publish/Microsoft.SqlTools.ServiceLayer/win10-arm/net6.0'
# includeRootFolder: false
# archiveFile: '$(Build.SourcesDirectory)/artifacts/package/Microsoft.SqlTools.ServiceLayer-win10-arm-net6.0.zip'
# - task: ArchiveFiles@1
# displayName: 'Archive windows10 arm 64 bit build'
# inputs:
# rootFolder: '$(Build.SourcesDirectory)/artifacts/publish/Microsoft.SqlTools.ServiceLayer/win10-arm64/net6.0'
# includeRootFolder: false
# archiveFile: '$(Build.SourcesDirectory)/artifacts/package/Microsoft.SqlTools.ServiceLayer-win10-arm64-net6.0.zip'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: build archives'
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/package'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: nuget packages'
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/nugetPackages'
ArtifactName: 'packages'
- task: PublishBuildArtifacts@1
displayName: 'Publish Artifact: logs'
inputs:
PathtoPublish: '$(Build.SourcesDirectory)/artifacts/logs'
ArtifactName: 'logs'
condition: true
- task: NuGetCommand@2
displayName: 'NuGet push'
condition: eq(variables['PUSH_SYMBOLS'], 'true')
inputs:
command: push
packagesToPush: '$(Build.SourcesDirectory)/artifacts/nugetPackages/**/*.nupkg;!$(Build.ArtifactStagingDirectory)/**/*.symbols.nupkg'
publishVstsFeed: '2191dd5f-4aec-491b-ac50-568bbc331c8a'
allowPackageConflicts: true
- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: 'Component Detection'
inputs:
failOnAlert: true