Skip to content
This repository was archived by the owner on May 2, 2024. It is now read-only.
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
b5bc4d9
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 2, 2024
aba6157
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 3, 2024
5ffc491
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 4, 2024
1deeb8d
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 5, 2024
ed6eaf6
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 6, 2024
f74b133
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 7, 2024
5ea039f
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 8, 2024
3b596da
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 9, 2024
332a03b
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 10, 2024
a4403f6
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 11, 2024
635c0ca
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 12, 2024
c9bedd8
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 13, 2024
39d8da3
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 14, 2024
812b0cc
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 15, 2024
1384ac4
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 16, 2024
bd969d9
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 17, 2024
edb65bd
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 18, 2024
02f9016
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 19, 2024
eaf1f9f
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 20, 2024
144793f
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 21, 2024
8e3980d
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 22, 2024
30f1457
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 23, 2024
caa8c03
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 24, 2024
1a07acd
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 25, 2024
2e1e38d
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 26, 2024
81abe0a
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 27, 2024
e71097f
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 28, 2024
1396aa4
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 29, 2024
ca21565
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 30, 2024
452f902
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] Apr 30, 2024
f67e076
Update dependencies from https://github.com/dotnet/arcade build 20240…
dotnet-maestro[bot] May 1, 2024
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
4 changes: 2 additions & 2 deletions eng/Version.Details.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
<ProductDependencies>
</ProductDependencies>
<ToolsetDependencies>
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24179.6">
<Dependency Name="Microsoft.DotNet.Arcade.Sdk" Version="9.0.0-beta.24229.1">
<Uri>https://github.com/dotnet/arcade</Uri>
<Sha>986a55a9c7f1ef547bc705d6adada5e0c2217819</Sha>
<Sha>be933308b9024d798a9a22c0b8f3c8e3616ffbd8</Sha>
</Dependency>
</ToolsetDependencies>
</Dependencies>
4 changes: 1 addition & 3 deletions eng/common/build.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@ Param(
[switch] $pack,
[switch] $publish,
[switch] $clean,
[switch] $verticalBuild,
[switch][Alias('pb')]$productBuild,
[switch][Alias('bl')]$binaryLog,
[switch][Alias('nobl')]$excludeCIBinarylog,
Expand Down Expand Up @@ -60,7 +59,6 @@ function Print-Usage() {
Write-Host " -sign Sign build outputs"
Write-Host " -publish Publish artifacts (e.g. symbols)"
Write-Host " -clean Clean the solution"
Write-Host " -verticalBuild Run in 'vertical build' infra mode."
Write-Host " -productBuild Build the solution in the way it will be built in the full .NET product (VMR) build (short: -pb)"
Write-Host ""

Expand Down Expand Up @@ -124,7 +122,7 @@ function Build {
/p:Deploy=$deploy `
/p:Test=$test `
/p:Pack=$pack `
/p:DotNetBuildRepo=$($productBuild -or $verticalBuild) `
/p:DotNetBuildRepo=$productBuild `
/p:IntegrationTest=$integrationTest `
/p:PerformanceTest=$performanceTest `
/p:Sign=$sign `
Expand Down
8 changes: 0 additions & 8 deletions eng/common/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ scriptroot="$( cd -P "$( dirname "$source" )" && pwd )"
restore=false
build=false
source_build=false
vertical_build=false
product_build=false
rebuild=false
test=false
Expand Down Expand Up @@ -141,13 +140,6 @@ while [[ $# > 0 ]]; do
restore=true
pack=true
;;
-verticalbuild|-vb)
build=true
vertical_build=true
product_build=true
restore=true
pack=true
;;
-test|-t)
test=true
;;
Expand Down
266 changes: 266 additions & 0 deletions eng/common/core-templates/job/job.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,266 @@
parameters:
# Job schema parameters - https://docs.microsoft.com/en-us/azure/devops/pipelines/yaml-schema?view=vsts&tabs=schema#job
cancelTimeoutInMinutes: ''
condition: ''
container: ''
continueOnError: false
dependsOn: ''
displayName: ''
pool: ''
steps: []
strategy: ''
timeoutInMinutes: ''
variables: []
workspace: ''
templateContext: {}

# Job base template specific parameters
# See schema documentation - https://github.com/dotnet/arcade/blob/master/Documentation/AzureDevOps/TemplateSchema.md
# publishing defaults
artifacts: ''
enableMicrobuild: false
enablePublishBuildArtifacts: false
enablePublishBuildAssets: false
enablePublishTestResults: false
enablePublishUsingPipelines: false
enableBuildRetry: false
disableComponentGovernance: ''
componentGovernanceIgnoreDirectories: ''
mergeTestResults: false
testRunTitle: ''
testResultsFormat: ''
name: ''
preSteps: []
artifactPublishSteps: []
runAsPublic: false

# Sbom related params
enableSbom: true
PackageVersion: 9.0.0
BuildDropPath: '$(Build.SourcesDirectory)/artifacts'

# 1es specific parameters
is1ESPipeline: ''

jobs:
- job: ${{ parameters.name }}

${{ if ne(parameters.cancelTimeoutInMinutes, '') }}:
cancelTimeoutInMinutes: ${{ parameters.cancelTimeoutInMinutes }}

${{ if ne(parameters.condition, '') }}:
condition: ${{ parameters.condition }}

${{ if ne(parameters.container, '') }}:
container: ${{ parameters.container }}

${{ if ne(parameters.continueOnError, '') }}:
continueOnError: ${{ parameters.continueOnError }}

${{ if ne(parameters.dependsOn, '') }}:
dependsOn: ${{ parameters.dependsOn }}

${{ if ne(parameters.displayName, '') }}:
displayName: ${{ parameters.displayName }}

${{ if ne(parameters.pool, '') }}:
pool: ${{ parameters.pool }}

${{ if ne(parameters.strategy, '') }}:
strategy: ${{ parameters.strategy }}

${{ if ne(parameters.timeoutInMinutes, '') }}:
timeoutInMinutes: ${{ parameters.timeoutInMinutes }}

${{ if ne(parameters.templateContext, '') }}:
templateContext: ${{ parameters.templateContext }}

variables:
- ${{ if ne(parameters.enableTelemetry, 'false') }}:
- name: DOTNET_CLI_TELEMETRY_PROFILE
value: '$(Build.Repository.Uri)'
- ${{ if eq(parameters.enableRichCodeNavigation, 'true') }}:
- name: EnableRichCodeNavigation
value: 'true'
# Retry signature validation up to three times, waiting 2 seconds between attempts.
# See https://learn.microsoft.com/en-us/nuget/reference/errors-and-warnings/nu3028#retry-untrusted-root-failures
- name: NUGET_EXPERIMENTAL_CHAIN_BUILD_RETRY_POLICY
value: 3,2000
- ${{ each variable in parameters.variables }}:
# handle name-value variable syntax
# example:
# - name: [key]
# value: [value]
- ${{ if ne(variable.name, '') }}:
- name: ${{ variable.name }}
value: ${{ variable.value }}

# handle variable groups
- ${{ if ne(variable.group, '') }}:
- group: ${{ variable.group }}

# handle template variable syntax
# example:
# - template: path/to/template.yml
# parameters:
# [key]: [value]
- ${{ if ne(variable.template, '') }}:
- template: ${{ variable.template }}
${{ if ne(variable.parameters, '') }}:
parameters: ${{ variable.parameters }}

# handle key-value variable syntax.
# example:
# - [key]: [value]
- ${{ if and(eq(variable.name, ''), eq(variable.group, ''), eq(variable.template, '')) }}:
- ${{ each pair in variable }}:
- name: ${{ pair.key }}
value: ${{ pair.value }}

# DotNet-HelixApi-Access provides 'HelixApiAccessToken' for internal builds
- ${{ if and(eq(parameters.enableTelemetry, 'true'), eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- group: DotNet-HelixApi-Access

${{ if ne(parameters.workspace, '') }}:
workspace: ${{ parameters.workspace }}

steps:
- ${{ if eq(parameters.is1ESPipeline, '') }}:
- 'Illegal entry point, is1ESPipeline is not defined. Repository yaml should not directly reference templates in core-templates folder.': error

- ${{ if ne(parameters.preSteps, '') }}:
- ${{ each preStep in parameters.preSteps }}:
- ${{ preStep }}

- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
- task: MicroBuildSigningPlugin@4
displayName: Install MicroBuild plugin
inputs:
signType: $(_SignType)
zipSources: false
feedSource: https://dnceng.pkgs.visualstudio.com/_packaging/MicroBuildToolset/nuget/v3/index.json
env:
TeamName: $(_TeamName)
MicroBuildOutputFolderOverride: '$(Agent.TempDirectory)'
continueOnError: ${{ parameters.continueOnError }}
condition: and(succeeded(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))

- ${{ if and(eq(parameters.runAsPublic, 'false'), eq(variables['System.TeamProject'], 'internal')) }}:
- task: NuGetAuthenticate@1

- ${{ if and(ne(parameters.artifacts.download, 'false'), ne(parameters.artifacts.download, '')) }}:
- task: DownloadPipelineArtifact@2
inputs:
buildType: current
artifactName: ${{ coalesce(parameters.artifacts.download.name, 'Artifacts_$(Agent.OS)_$(_BuildConfig)') }}
targetPath: ${{ coalesce(parameters.artifacts.download.path, 'artifacts') }}
itemPattern: ${{ coalesce(parameters.artifacts.download.pattern, '**') }}

- ${{ each step in parameters.steps }}:
- ${{ step }}

- ${{ if eq(parameters.enableRichCodeNavigation, true) }}:
- task: RichCodeNavIndexer@0
displayName: RichCodeNav Upload
inputs:
languages: ${{ coalesce(parameters.richCodeNavigationLanguage, 'csharp') }}
environment: ${{ coalesce(parameters.richCodeNavigationEnvironment, 'internal') }}
richNavLogOutputDirectory: $(Build.SourcesDirectory)/artifacts/bin
uploadRichNavArtifacts: ${{ coalesce(parameters.richCodeNavigationUploadArtifacts, false) }}
continueOnError: true

- template: /eng/common/core-templates/steps/component-governance.yml
parameters:
is1ESPipeline: ${{ parameters.is1ESPipeline }}
${{ if eq(parameters.disableComponentGovernance, '') }}:
${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.runAsPublic, 'false'), or(startsWith(variables['Build.SourceBranch'], 'refs/heads/release/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/dotnet/'), startsWith(variables['Build.SourceBranch'], 'refs/heads/microsoft/'), eq(variables['Build.SourceBranch'], 'refs/heads/main'))) }}:
disableComponentGovernance: false
${{ else }}:
disableComponentGovernance: true
${{ else }}:
disableComponentGovernance: ${{ parameters.disableComponentGovernance }}
componentGovernanceIgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}

- ${{ if eq(parameters.enableMicrobuild, 'true') }}:
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}:
- task: MicroBuildCleanup@1
displayName: Execute Microbuild cleanup tasks
condition: and(always(), in(variables['_SignType'], 'real', 'test'), eq(variables['Agent.Os'], 'Windows_NT'))
continueOnError: ${{ parameters.continueOnError }}
env:
TeamName: $(_TeamName)
- ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest'), eq(parameters.enableSbom, 'true')) }}:
- template: /eng/common/core-templates/steps/generate-sbom.yml
parameters:
is1ESPipeline: ${{ parameters.is1ESPipeline }}
PackageVersion: ${{ parameters.packageVersion}}
BuildDropPath: ${{ parameters.buildDropPath }}
IgnoreDirectories: ${{ parameters.componentGovernanceIgnoreDirectories }}
publishArtifacts: false

# Publish test results
- ${{ if and(eq(parameters.enablePublishTestResults, 'true'), eq(parameters.testResultsFormat, '')) }}:
- ${{ if eq(parameters.testResultsFormat, 'xunit') }}:
- task: PublishTestResults@2
displayName: Publish XUnit Test Results
inputs:
testResultsFormat: 'xUnit'
testResultsFiles: '*.xml'
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-xunit
mergeTestResults: ${{ parameters.mergeTestResults }}
continueOnError: true
condition: always()
- ${{ if eq(parameters.testResultsFormat, 'vstest') }}:
- task: PublishTestResults@2
displayName: Publish TRX Test Results
inputs:
testResultsFormat: 'VSTest'
testResultsFiles: '*.trx'
searchFolder: '$(Build.SourcesDirectory)/artifacts/TestResults/$(_BuildConfig)'
testRunTitle: ${{ coalesce(parameters.testRunTitle, parameters.name, '$(System.JobName)') }}-trx
mergeTestResults: ${{ parameters.mergeTestResults }}
continueOnError: true
condition: always()

# gather artifacts
- ${{ if ne(parameters.artifacts.publish, '') }}:
- ${{ if and(ne(parameters.artifacts.publish.artifacts, 'false'), ne(parameters.artifacts.publish.artifacts, '')) }}:
- task: CopyFiles@2
displayName: Gather binaries for publish to artifacts
inputs:
SourceFolder: 'artifacts/bin'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/bin'
- task: CopyFiles@2
displayName: Gather packages for publish to artifacts
inputs:
SourceFolder: 'artifacts/packages'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/packages'
- ${{ if and(ne(parameters.artifacts.publish.logs, 'false'), ne(parameters.artifacts.publish.logs, '')) }}:
- task: CopyFiles@2
displayName: Gather logs for publish to artifacts
inputs:
SourceFolder: 'artifacts/log'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/log'

- ${{ if eq(parameters.enablePublishBuildArtifacts, 'true') }}:
- task: CopyFiles@2
displayName: Gather logs for publish to artifacts
inputs:
SourceFolder: 'artifacts/log/$(_BuildConfig)'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)/artifacts/log/$(_BuildConfig)'
- ${{ if eq(parameters.enableBuildRetry, 'true') }}:
- task: CopyFiles@2
displayName: Gather buildconfiguration for build retry
inputs:
SourceFolder: '$(Build.SourcesDirectory)/eng/common/BuildConfiguration'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)/eng/common/BuildConfiguration'

- ${{ each step in parameters.artifactPublishSteps }}:
- ${{ step }}
Loading