From 579b464359ca07b099110ed1a9c4a2fe79e1d566 Mon Sep 17 00:00:00 2001 From: wtgodbe Date: Fri, 8 Mar 2024 09:44:33 -0800 Subject: [PATCH] Enable public pipeline --- azure-pipelines-public.yml | 180 +------------------------------- azure-pipelines.yml | 180 +------------------------------- eng/templates/default-build.yml | 178 +++++++++++++++++++++++++++++++ 3 files changed, 180 insertions(+), 358 deletions(-) create mode 100644 eng/templates/default-build.yml diff --git a/azure-pipelines-public.yml b/azure-pipelines-public.yml index 58b8b1d6..43064c21 100644 --- a/azure-pipelines-public.yml +++ b/azure-pipelines-public.yml @@ -29,182 +29,4 @@ pr: stages: - stage: build displayName: Build - jobs: - - template: /eng/common/templates/jobs/jobs.yml - parameters: - enablePublishBuildArtifacts: true - enablePublishTestResults: true - enablePublishBuildAssets: true - enablePublishUsingPipelines: true - helixRepo: aspnet/AspLabs - # Align w/ Maestro++ default channel when generating software bills of materials (SBOMs). - PackageVersion: 6.0.0 - # enableMicrobuild can't be read from a user-defined variable (Azure DevOps limitation) - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - enableMicrobuild: true - jobs: - - job: Windows - pool: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - name: NetCore-Public - demands: ImageOverride -equals windows.vs2019.amd64.open - ${{ if ne(variables['System.TeamProject'], 'public') }}: - name: NetCore1ESPool-Internal - demands: ImageOverride -equals windows.vs2019.amd64 - variables: - - name: _HelixBuildConfig - value: $(_BuildConfig) - strategy: - matrix: - ${{ if in(variables['Build.Reason'], 'PullRequest') }}: - Debug: - _BuildConfig: Debug - _SignType: test - _BuildArgs: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName) - Release: - _BuildConfig: Release - # PRs and external builds are not signed. - ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: - _SignType: test - _BuildArgs: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName) - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - _SignType: real - _BuildArgs: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName) /p:OfficialBuildId=$(Build.BuildNumber) - /p:DotNetPublishUsingPipelines=true - /p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory) - /p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json - /p:DotNetPublishToBlobFeed=true - steps: - - checkout: self - clean: true - - task: NodeTool@0 - inputs: - versionSpec: '16.x' - - task: NuGetCommand@2 - displayName: 'Clear NuGet caches' - condition: succeeded() - inputs: - command: custom - arguments: 'locals all -clear' - - script: eng\common\cibuild.cmd - -configuration $(_BuildConfig) - -prepareMachine - $(_BuildArgs) - name: Build - displayName: Build - condition: succeeded() - - task: PublishTestResults@2 - displayName: Publish xUnit Test Results - condition: always() - continueOnError: true - inputs: - testRunner: xunit - testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml' - - task: PublishBuildArtifacts@1 - displayName: Publish Packages - condition: and(eq(variables['system.pullrequest.isfork'], false), eq(variables['_BuildConfig'], 'Release')) - continueOnError: true - inputs: - artifactName: Packages_$(Agent.Os)_$(Agent.JobName) - parallel: true - pathtoPublish: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)' - publishLocation: Container - - task: PublishBuildArtifacts@1 - displayName: Publish Logs - condition: always() - continueOnError: true - inputs: - artifactName: Logs_$(Agent.Os)_$(Agent.JobName) - parallel: true - pathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' - publishLocation: Container - - - job: macOS - pool: - vmImage: macOS-11 - strategy: - matrix: - debug: - _BuildConfig: Debug - release: - _BuildConfig: Release - variables: - - name: _HelixBuildConfig - value: $(_BuildConfig) - steps: - - checkout: self - clean: true - - task: NodeTool@0 - inputs: - versionSpec: '16.x' - - script: eng/common/cibuild.sh - --configuration $(_BuildConfig) - --prepareMachine - name: Build - displayName: Build - condition: succeeded() - - task: PublishTestResults@2 - displayName: Publish xUnit Test Results - condition: always() - continueOnError: true - inputs: - testRunner: xunit - testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml' - - task: PublishBuildArtifacts@1 - displayName: Publish Logs - condition: always() - continueOnError: true - inputs: - artifactName: Logs_$(Agent.Os)_$(Agent.JobName) - parallel: true - pathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' - publishLocation: Container - - - job: Linux - pool: - vmImage: ubuntu-20.04 - strategy: - matrix: - debug: - _BuildConfig: Debug - release: - _BuildConfig: Release - variables: - - name: _HelixBuildConfig - value: $(_BuildConfig) - steps: - - checkout: self - clean: true - - script: eng/common/cibuild.sh - --configuration $(_BuildConfig) - --prepareMachine - name: Build - displayName: Build - condition: succeeded() - - task: PublishTestResults@2 - displayName: Publish xUnit Test Results - condition: always() - continueOnError: true - inputs: - testRunner: xunit - testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml' - - task: PublishBuildArtifacts@1 - displayName: Publish Logs - condition: always() - continueOnError: true - inputs: - artifactName: Logs_$(Agent.Os)_$(Agent.JobName) - parallel: true - pathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' - publishLocation: Container - -- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - template: eng\common\templates\post-build\post-build.yml - parameters: - publishingInfraVersion: 3 - # Symbol validation isn't being very reliable lately. This should be enabled back - # once this issue is resolved: https://github.com/dotnet/arcade/issues/2871 - enableSymbolValidation: false - # This is to enable SDL runs part of Post-Build Validation Stage - SDLValidationParameters: - enable: false + - template: /eng/templates/default-build.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 58b8b1d6..43064c21 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -29,182 +29,4 @@ pr: stages: - stage: build displayName: Build - jobs: - - template: /eng/common/templates/jobs/jobs.yml - parameters: - enablePublishBuildArtifacts: true - enablePublishTestResults: true - enablePublishBuildAssets: true - enablePublishUsingPipelines: true - helixRepo: aspnet/AspLabs - # Align w/ Maestro++ default channel when generating software bills of materials (SBOMs). - PackageVersion: 6.0.0 - # enableMicrobuild can't be read from a user-defined variable (Azure DevOps limitation) - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - enableMicrobuild: true - jobs: - - job: Windows - pool: - ${{ if eq(variables['System.TeamProject'], 'public') }}: - name: NetCore-Public - demands: ImageOverride -equals windows.vs2019.amd64.open - ${{ if ne(variables['System.TeamProject'], 'public') }}: - name: NetCore1ESPool-Internal - demands: ImageOverride -equals windows.vs2019.amd64 - variables: - - name: _HelixBuildConfig - value: $(_BuildConfig) - strategy: - matrix: - ${{ if in(variables['Build.Reason'], 'PullRequest') }}: - Debug: - _BuildConfig: Debug - _SignType: test - _BuildArgs: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName) - Release: - _BuildConfig: Release - # PRs and external builds are not signed. - ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: - _SignType: test - _BuildArgs: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName) - ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - _SignType: real - _BuildArgs: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName) /p:OfficialBuildId=$(Build.BuildNumber) - /p:DotNetPublishUsingPipelines=true - /p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory) - /p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json - /p:DotNetPublishToBlobFeed=true - steps: - - checkout: self - clean: true - - task: NodeTool@0 - inputs: - versionSpec: '16.x' - - task: NuGetCommand@2 - displayName: 'Clear NuGet caches' - condition: succeeded() - inputs: - command: custom - arguments: 'locals all -clear' - - script: eng\common\cibuild.cmd - -configuration $(_BuildConfig) - -prepareMachine - $(_BuildArgs) - name: Build - displayName: Build - condition: succeeded() - - task: PublishTestResults@2 - displayName: Publish xUnit Test Results - condition: always() - continueOnError: true - inputs: - testRunner: xunit - testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml' - - task: PublishBuildArtifacts@1 - displayName: Publish Packages - condition: and(eq(variables['system.pullrequest.isfork'], false), eq(variables['_BuildConfig'], 'Release')) - continueOnError: true - inputs: - artifactName: Packages_$(Agent.Os)_$(Agent.JobName) - parallel: true - pathtoPublish: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)' - publishLocation: Container - - task: PublishBuildArtifacts@1 - displayName: Publish Logs - condition: always() - continueOnError: true - inputs: - artifactName: Logs_$(Agent.Os)_$(Agent.JobName) - parallel: true - pathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' - publishLocation: Container - - - job: macOS - pool: - vmImage: macOS-11 - strategy: - matrix: - debug: - _BuildConfig: Debug - release: - _BuildConfig: Release - variables: - - name: _HelixBuildConfig - value: $(_BuildConfig) - steps: - - checkout: self - clean: true - - task: NodeTool@0 - inputs: - versionSpec: '16.x' - - script: eng/common/cibuild.sh - --configuration $(_BuildConfig) - --prepareMachine - name: Build - displayName: Build - condition: succeeded() - - task: PublishTestResults@2 - displayName: Publish xUnit Test Results - condition: always() - continueOnError: true - inputs: - testRunner: xunit - testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml' - - task: PublishBuildArtifacts@1 - displayName: Publish Logs - condition: always() - continueOnError: true - inputs: - artifactName: Logs_$(Agent.Os)_$(Agent.JobName) - parallel: true - pathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' - publishLocation: Container - - - job: Linux - pool: - vmImage: ubuntu-20.04 - strategy: - matrix: - debug: - _BuildConfig: Debug - release: - _BuildConfig: Release - variables: - - name: _HelixBuildConfig - value: $(_BuildConfig) - steps: - - checkout: self - clean: true - - script: eng/common/cibuild.sh - --configuration $(_BuildConfig) - --prepareMachine - name: Build - displayName: Build - condition: succeeded() - - task: PublishTestResults@2 - displayName: Publish xUnit Test Results - condition: always() - continueOnError: true - inputs: - testRunner: xunit - testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml' - - task: PublishBuildArtifacts@1 - displayName: Publish Logs - condition: always() - continueOnError: true - inputs: - artifactName: Logs_$(Agent.Os)_$(Agent.JobName) - parallel: true - pathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' - publishLocation: Container - -- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - template: eng\common\templates\post-build\post-build.yml - parameters: - publishingInfraVersion: 3 - # Symbol validation isn't being very reliable lately. This should be enabled back - # once this issue is resolved: https://github.com/dotnet/arcade/issues/2871 - enableSymbolValidation: false - # This is to enable SDL runs part of Post-Build Validation Stage - SDLValidationParameters: - enable: false + - template: /eng/templates/default-build.yml diff --git a/eng/templates/default-build.yml b/eng/templates/default-build.yml new file mode 100644 index 00000000..e7357ce5 --- /dev/null +++ b/eng/templates/default-build.yml @@ -0,0 +1,178 @@ +jobs: +- template: /eng/common/templates/jobs/jobs.yml + parameters: + enablePublishBuildArtifacts: true + enablePublishTestResults: true + enablePublishBuildAssets: true + enablePublishUsingPipelines: true + helixRepo: aspnet/AspLabs + # Align w/ Maestro++ default channel when generating software bills of materials (SBOMs). + PackageVersion: 6.0.0 + # enableMicrobuild can't be read from a user-defined variable (Azure DevOps limitation) + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + enableMicrobuild: true + jobs: + - job: Windows + ${{ if eq(variables['System.TeamProject'], 'public') }}: + pool: + name: NetCore-Public + demands: ImageOverride -equals windows.vs2019.amd64.open + variables: + - name: _HelixBuildConfig + value: $(_BuildConfig) + strategy: + matrix: + ${{ if in(variables['Build.Reason'], 'PullRequest') }}: + Debug: + _BuildConfig: Debug + _SignType: test + _BuildArgs: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName) + Release: + _BuildConfig: Release + # PRs and external builds are not signed. + ${{ if or(eq(variables['System.TeamProject'], 'public'), in(variables['Build.Reason'], 'PullRequest')) }}: + _SignType: test + _BuildArgs: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName) + ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: + _SignType: real + _BuildArgs: /p:DotNetSignType=$(_SignType) /p:TeamName=$(_TeamName) /p:OfficialBuildId=$(Build.BuildNumber) + /p:DotNetPublishUsingPipelines=true + /p:DotNetArtifactsCategory=$(_DotNetArtifactsCategory) + /p:DotNetPublishBlobFeedUrl=https://dotnetfeed.blob.core.windows.net/dotnet-core/index.json + /p:DotNetPublishToBlobFeed=true + steps: + - checkout: self + clean: true + - task: NodeTool@0 + inputs: + versionSpec: '16.x' + - task: NuGetCommand@2 + displayName: 'Clear NuGet caches' + condition: succeeded() + inputs: + command: custom + arguments: 'locals all -clear' + - script: eng\common\cibuild.cmd + -configuration $(_BuildConfig) + -prepareMachine + $(_BuildArgs) + name: Build + displayName: Build + condition: succeeded() + - task: PublishTestResults@2 + displayName: Publish xUnit Test Results + condition: always() + continueOnError: true + inputs: + testRunner: xunit + testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml' + - task: PublishBuildArtifacts@1 + displayName: Publish Packages + condition: and(eq(variables['system.pullrequest.isfork'], false), eq(variables['_BuildConfig'], 'Release')) + continueOnError: true + inputs: + artifactName: Packages_$(Agent.Os)_$(Agent.JobName) + parallel: true + pathtoPublish: '$(Build.SourcesDirectory)/artifacts/packages/$(_BuildConfig)' + publishLocation: Container + - task: PublishBuildArtifacts@1 + displayName: Publish Logs + condition: always() + continueOnError: true + inputs: + artifactName: Logs_$(Agent.Os)_$(Agent.JobName) + parallel: true + pathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' + publishLocation: Container + + - job: macOS + ${{ if eq(variables['System.TeamProject'], 'public') }}: + pool: + vmImage: macOS-11 + strategy: + matrix: + debug: + _BuildConfig: Debug + release: + _BuildConfig: Release + variables: + - name: _HelixBuildConfig + value: $(_BuildConfig) + steps: + - checkout: self + clean: true + - task: NodeTool@0 + inputs: + versionSpec: '16.x' + - script: eng/common/cibuild.sh + --configuration $(_BuildConfig) + --prepareMachine + name: Build + displayName: Build + condition: succeeded() + - task: PublishTestResults@2 + displayName: Publish xUnit Test Results + condition: always() + continueOnError: true + inputs: + testRunner: xunit + testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml' + - task: PublishBuildArtifacts@1 + displayName: Publish Logs + condition: always() + continueOnError: true + inputs: + artifactName: Logs_$(Agent.Os)_$(Agent.JobName) + parallel: true + pathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' + publishLocation: Container + + - job: Linux + ${{ if eq(variables['System.TeamProject'], 'public') }}: + pool: + vmImage: ubuntu-20.04 + strategy: + matrix: + debug: + _BuildConfig: Debug + release: + _BuildConfig: Release + variables: + - name: _HelixBuildConfig + value: $(_BuildConfig) + steps: + - checkout: self + clean: true + - script: eng/common/cibuild.sh + --configuration $(_BuildConfig) + --prepareMachine + name: Build + displayName: Build + condition: succeeded() + - task: PublishTestResults@2 + displayName: Publish xUnit Test Results + condition: always() + continueOnError: true + inputs: + testRunner: xunit + testResultsFiles: 'artifacts/TestResults/$(_BuildConfig)/*.xml' + - task: PublishBuildArtifacts@1 + displayName: Publish Logs + condition: always() + continueOnError: true + inputs: + artifactName: Logs_$(Agent.Os)_$(Agent.JobName) + parallel: true + pathtoPublish: '$(Build.SourcesDirectory)/artifacts/log/$(_BuildConfig)' + publishLocation: Container + +- ${{ if and(ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: +- template: eng\common\templates\post-build\post-build.yml + parameters: + publishingInfraVersion: 3 + # Symbol validation isn't being very reliable lately. This should be enabled back + # once this issue is resolved: https://github.com/dotnet/arcade/issues/2871 + enableSymbolValidation: false + # This is to enable SDL runs part of Post-Build Validation Stage + SDLValidationParameters: + enable: false \ No newline at end of file