Bridge-To-Kubernetes/build-pipelines-PR.yml

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
...