367 строки
13 KiB
YAML
367 строки
13 KiB
YAML
# This pipeline is meant to run build validation for PRs. This pipeline does not have signing.
|
|
# 'Allow scripts to access the OAuth token' was selected in pipeline. Add the following YAML to any steps requiring access:
|
|
# env:
|
|
# MY_ACCESS_TOKEN: $(System.AccessToken)
|
|
# Variable 'ArtifactServices.Symbol.AccountName' was defined in the Variables tab
|
|
# Variable 'ArtifactServices.Symbol.PAT' was defined in the Variables tab
|
|
# Variable 'ArtifactServices.Symbol.UseAAD' was defined in the Variables tab
|
|
# Variable 'DropRoot' was defined in the Variables tab
|
|
# Variable 'ForceProductionBuild' was defined in the Variables tab
|
|
# Variable 'ForceStagingBuild' was defined in the Variables tab
|
|
# Variable 'MSI_BuildVersion' was defined in the Variables tab
|
|
# Variable 'RunTests' was defined in the Variables tab
|
|
# Variable 'skipComponentGovernanceDetection' was defined in the Variables tab
|
|
# Variable 'system.prefergit' was defined in the Variables tab
|
|
parameters:
|
|
- name: BuildConfiguration
|
|
displayName: BuildConfiguration to be used
|
|
default: 'Release'
|
|
values:
|
|
- Release
|
|
- Debug
|
|
variables:
|
|
- name: BuildParameters.dotnetversion
|
|
value: 7.0.x
|
|
- name: BuildParameters.dotnetversionforbuild
|
|
value: net7.0
|
|
- name: BuildParameters.nugetversion
|
|
value: 5.9.x
|
|
- name: RunTests
|
|
value: True
|
|
|
|
trigger: none
|
|
name: $(date:yyyyMMdd)$(rev:.r)
|
|
resources:
|
|
repositories:
|
|
- repository: self
|
|
type: git
|
|
ref: refs/heads/main
|
|
jobs:
|
|
- job: Phase_1
|
|
displayName: Run self-contained build (binaries V1, where the binaries are all bundled together)
|
|
timeoutInMinutes: 120
|
|
cancelTimeoutInMinutes: 1
|
|
pool:
|
|
name: 'VSEngSS-MicroBuild2022-1ES'
|
|
demands:
|
|
- msbuild
|
|
- visualstudio
|
|
- DotNetFramework
|
|
steps:
|
|
- checkout: self
|
|
clean: true
|
|
fetchTags: false
|
|
persistCredentials: True
|
|
- task: UseDotNet@2
|
|
displayName: Use .NET Core SDK 7.0.x
|
|
enabled: True
|
|
inputs:
|
|
version: $(BuildParameters.dotnetversion)
|
|
installationPath: $(Agent.TempDirectory)/dotnet
|
|
- task: DotNetCoreCLI@2
|
|
displayName: restore EndpointManager (Windows) (to download runtime pack)
|
|
enabled: True
|
|
inputs:
|
|
command: restore
|
|
projects: src\endpointmanager\endpointmanager.csproj
|
|
restoreArguments: -r win-x64
|
|
selectOrConfig: config
|
|
nugetConfigPath: src/nuget.config
|
|
externalEndpoints: dba0ba50-2d4e-4f12-9f5a-42a638da803b
|
|
- task: DotNetCoreCLI@2
|
|
displayName: restore EndpointManager for arm64 (Windows) (to download runtime pack)
|
|
enabled: True
|
|
inputs:
|
|
command: restore
|
|
projects: src\endpointmanager\endpointmanager.csproj
|
|
restoreArguments: -r win-arm64
|
|
selectOrConfig: config
|
|
nugetConfigPath: src/nuget.config
|
|
externalEndpoints: dba0ba50-2d4e-4f12-9f5a-42a638da803b
|
|
- task: NuGetToolInstaller@1
|
|
name: ''
|
|
displayName: Use NuGet 5.9.x
|
|
enabled: True
|
|
inputs:
|
|
versionSpec: $(BuildParameters.nugetversion)
|
|
- task: NuGetCommand@2
|
|
name: ''
|
|
displayName: NuGet restore client.sln
|
|
enabled: True
|
|
inputs:
|
|
solution: src/client.sln
|
|
selectOrConfig: config
|
|
feedRestore: fc5819b5-ed1c-4a51-9766-a55ddb558d72
|
|
nugetConfigPath: src/nuget.config
|
|
verbosityRestore: Normal
|
|
searchPatternPush: $(Build.ArtifactStagingDirectory)/*.nupkg
|
|
- task: VSBuild@1
|
|
name: ''
|
|
displayName: Build client.sln for Loc and Tests
|
|
condition: and(succeeded(), eq(variables.RunTests, 'true'))
|
|
enabled: True
|
|
inputs:
|
|
solution: src/client.sln
|
|
msbuildArgs: -p:Localize=true -p:ConsumeEndpointManager=false
|
|
configuration: ${{ parameters.BuildConfiguration }}
|
|
- task: CredScan@3
|
|
inputs:
|
|
outputFormat: 'pre'
|
|
- task: VSTest@2
|
|
displayName: Run Unit Tests
|
|
condition: and(succeeded(), eq(variables.RunTests, 'true'))
|
|
enabled: True
|
|
inputs:
|
|
testAssemblyVer2: '**\bin\${{ parameters.BuildConfiguration }}\*\*Tests.dll'
|
|
runSettingsFile: tests/unittests/dotnetcore.runsettings
|
|
runInParallel: true
|
|
codeCoverageEnabled: True
|
|
testRunTitle: Unit Tests
|
|
failOnMinTestsNotRun: true
|
|
rerunFailedTests: true
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish DSC for self contained (Windows)
|
|
enabled: True
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\dsc\dsc.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r win-x64 --no-restore --self-contained true --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
selectOrConfig: config
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish DSC for self contained for arm64 (Windows)
|
|
enabled: True
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\dsc\dsc.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r win-arm64 --no-restore --self-contained true --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
selectOrConfig: config
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish EndpointManagerLauncher(Windows)
|
|
enabled: True
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\EndpointManagerLauncher\endpointmanagerlauncher.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r win-x64 --no-restore --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
selectOrConfig: config
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish EndpointManagerLauncher for arm64 (Windows)
|
|
enabled: True
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\EndpointManagerLauncher\endpointmanagerlauncher.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r win-arm64 --no-restore --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
selectOrConfig: config
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish DSC for self contained (OSX)
|
|
enabled: True
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\dsc\dsc.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r osx-x64 --no-restore --self-contained true --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
selectOrConfig: config
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish DSC for self contained for arm64 (OSX)
|
|
enabled: True
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\dsc\dsc.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r osx-arm64 --no-restore --self-contained true --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
selectOrConfig: config
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish DSC for self contained (Linux)
|
|
enabled: True
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\dsc\dsc.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r linux-x64 --no-restore --self-contained true --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
selectOrConfig: config
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish DSC for self contained for arm64 (Linux)
|
|
enabled: True
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\dsc\dsc.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r linux-arm64 --no-restore --self-contained true --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
selectOrConfig: config
|
|
- task: DotNetCoreCLI@2
|
|
displayName: 'dotnet pack CLI NuGet (Windows)'
|
|
inputs:
|
|
command: pack
|
|
feedsToUse: config
|
|
packagesToPack: src/dsc/dsc.csproj
|
|
packDirectory: '$(Build.ArtifactStagingDirectory)/nuget'
|
|
nobuild: true
|
|
buildProperties: 'NuspecFile=bin\${{ parameters.BuildConfiguration }}\$(BuildParameters.dotnetversionforbuild)\win-x64\publish\dsc.nuspec'
|
|
- task: DotNetCoreCLI@2
|
|
displayName: 'dotnet pack CLI NuGet for arm64 (Windows)'
|
|
inputs:
|
|
command: pack
|
|
feedsToUse: config
|
|
packagesToPack: src/dsc/dsc.csproj
|
|
packDirectory: '$(Build.ArtifactStagingDirectory)/nuget'
|
|
nobuild: true
|
|
buildProperties: 'NuspecFile=bin\${{ parameters.BuildConfiguration }}\$(BuildParameters.dotnetversionforbuild)\win-arm64\publish\dsc.nuspec'
|
|
|
|
- job: Phase_2
|
|
displayName: Run NON self-contained build (binaries V2, where the binaries are downloaded in parallel)
|
|
timeoutInMinutes: 120
|
|
cancelTimeoutInMinutes: 1
|
|
pool:
|
|
name: 'VSEngSS-MicroBuild2022-1ES'
|
|
demands:
|
|
- msbuild
|
|
- visualstudio
|
|
- DotNetFramework
|
|
steps:
|
|
- checkout: self
|
|
clean: true
|
|
fetchTags: false
|
|
persistCredentials: True
|
|
- task: UseDotNet@2
|
|
displayName: Use .NET Core SDK 7.0.x
|
|
enabled: True
|
|
inputs:
|
|
version: $(BuildParameters.dotnetversion)
|
|
installationPath: $(Agent.TempDirectory)/dotnet
|
|
- task: DotNetCoreCLI@2
|
|
displayName: restore EndpointManager (Windows) (to download runtime pack)
|
|
enabled: True
|
|
inputs:
|
|
command: restore
|
|
projects: src\endpointmanager\endpointmanager.csproj
|
|
restoreArguments: -r win-x64
|
|
selectOrConfig: config
|
|
nugetConfigPath: src/nuget.config
|
|
externalEndpoints: dba0ba50-2d4e-4f12-9f5a-42a638da803b
|
|
- task: DotNetCoreCLI@2
|
|
displayName: restore EndpointManager for arm64 (Windows) (to download runtime pack)
|
|
enabled: True
|
|
inputs:
|
|
command: restore
|
|
projects: src\endpointmanager\endpointmanager.csproj
|
|
restoreArguments: -r win-arm64
|
|
selectOrConfig: config
|
|
nugetConfigPath: src/nuget.config
|
|
externalEndpoints: dba0ba50-2d4e-4f12-9f5a-42a638da803b
|
|
- task: NuGetToolInstaller@1
|
|
name: ''
|
|
displayName: Use NuGet 5.9.x
|
|
enabled: True
|
|
inputs:
|
|
versionSpec: $(BuildParameters.nugetversion)
|
|
- task: NuGetCommand@2
|
|
name: ''
|
|
displayName: NuGet restore client.sln
|
|
enabled: True
|
|
inputs:
|
|
solution: src/client.sln
|
|
selectOrConfig: config
|
|
feedRestore: fc5819b5-ed1c-4a51-9766-a55ddb558d72
|
|
nugetConfigPath: src/nuget.config
|
|
verbosityRestore: Normal
|
|
searchPatternPush: $(Build.ArtifactStagingDirectory)/*.nupkg
|
|
- task: CredScan@3
|
|
inputs:
|
|
outputFormat: 'pre'
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish EndpointManagerLauncher(Windows)
|
|
enabled: True
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\EndpointManagerLauncher\endpointmanagerlauncher.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r win-x64 --no-restore --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
selectOrConfig: config
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish EndpointManagerLauncher for arm64 (Windows)
|
|
enabled: True
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\EndpointManagerLauncher\endpointmanagerlauncher.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r win-arm64 --no-restore --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
selectOrConfig: config
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish DSC for non self contained (Windows)
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\dsc\dsc.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r win-x64 --self-contained false --no-restore --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish DSC for non self contained for arm64 (Windows)
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\dsc\dsc.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r win-arm64 --self-contained false --no-restore --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish DSC for non self contained (Linux)
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\dsc\dsc.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r linux-x64 --no-restore --self-contained false --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish DSC for non self contained for arm64 (Linux)
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\dsc\dsc.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r linux-arm64 --no-restore --self-contained false --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish DSC for non self contained (OSX)
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\dsc\dsc.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r osx-x64 --no-restore --self-contained false --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
- task: DotNetCoreCLI@2
|
|
displayName: publish DSC for non self contained for arm64 (OSX)
|
|
inputs:
|
|
command: publish
|
|
publishWebProjects: false
|
|
projects: src\dsc\dsc.csproj
|
|
arguments: -c ${{ parameters.BuildConfiguration }} -r osx-arm64 --no-restore --self-contained false --verbosity detailed
|
|
zipAfterPublish: false
|
|
modifyOutputPath: false
|
|
...
|