diff --git a/azure-pipelines-official.yml b/azure-pipelines-official.yml index b0ddd49..cc68323 100644 --- a/azure-pipelines-official.yml +++ b/azure-pipelines-official.yml @@ -1,86 +1,86 @@ -resources: - repositories: - - repository: MicroBuildTemplate - type: git - name: 1ESPipelineTemplates/MicroBuildTemplate - ref: refs/tags/release -variables: - LogDirectory: $(Build.ArtifactStagingDirectory)/logs - ArtifactsDirectory: artifacts - BuildConfiguration: 'Release' - BuildPlatform: 'Any CPU' - MSBuildArgs: '"/Property:Platform=$(BuildPlatform);Configuration=$(BuildConfiguration)" "/BinaryLogger:$(Build.SourcesDirectory)\$(ArtifactsDirectory)\msbuild.binlog"' - SignType: 'Real' - # Not using "--channel 10.0 --quality daily", see https://github.com/microsoft/slngen/issues/456 - DotNet10InstallArgs: '-version 10.0.100-alpha.1.24571.14' - -trigger: - batch: true - branches: - include: - - 'main' - - 'refs/tags/*' - paths: - exclude: - - '*.md' -pr: none -extends: - template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate - parameters: - sdl: - sbom: - enabled: false - pool: - name: VSEngSS-MicroBuild2022-1ES - demands: - - msbuild - - visualstudio - os: windows - stages: - - stage: '' - displayName: 'Build' - jobs: - - job: Build - displayName: 'Build' - pool: - name: 'VSEngSS-MicroBuild2022-1ES' - templateContext: - mb: - signing: - enabled: true - signType: $(SignType) - zipSources: false - outputs: - - output: pipelineArtifact - displayName: 'Publish Artifacts' - condition: always() - targetPath: $(ArtifactsDirectory) - artifactName: 'artifacts' - steps: - - script: 'echo ##vso[task.setvariable variable=SignType;]Real' - displayName: 'Set SignType to Real for tagged commits' - condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) - - task: UseDotNet@2 - displayName: 'Install .NET 8.x' - inputs: - version: '8.x' - - task: UseDotNet@2 - displayName: 'Install .NET 9.x' - inputs: - version: '9.x' - - script: | - powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://dot.net/v1/dotnet-install.ps1'))) $(DotNet10InstallArgs) -InstallDir C:\ToolCache\dotnet" - dotnet --info - displayName: 'Install .NET 10.x' - - - task: VSBuild@1 - displayName: 'Build Solution' - inputs: - solution: '**\*.sln' - msbuildArgs: '$(MSBuildArgs)' - - task: PublishSymbols@2 - displayName: 'Publish Symbols' - inputs: - SearchPattern: '**/bin/**/*.pdb' - IndexSources: false - SymbolServerType: TeamServices +resources: + repositories: + - repository: MicroBuildTemplate + type: git + name: 1ESPipelineTemplates/MicroBuildTemplate + ref: refs/tags/release +variables: + LogDirectory: $(Build.ArtifactStagingDirectory)/logs + ArtifactsDirectory: artifacts + BuildConfiguration: 'Release' + BuildPlatform: 'Any CPU' + MSBuildArgs: '"/Property:Platform=$(BuildPlatform);Configuration=$(BuildConfiguration)" "/BinaryLogger:$(Build.SourcesDirectory)\$(ArtifactsDirectory)\msbuild.binlog"' + SignType: 'Real' + # Not using "--channel 10.0 --quality daily", see https://github.com/microsoft/slngen/issues/456 + DotNet10InstallArgs: '-version 10.0.100-alpha.1.25074.9' + +trigger: + batch: true + branches: + include: + - 'main' + - 'refs/tags/*' + paths: + exclude: + - '*.md' +pr: none +extends: + template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate + parameters: + sdl: + sbom: + enabled: false + pool: + name: VSEngSS-MicroBuild2022-1ES + demands: + - msbuild + - visualstudio + os: windows + stages: + - stage: '' + displayName: 'Build' + jobs: + - job: Build + displayName: 'Build' + pool: + name: 'VSEngSS-MicroBuild2022-1ES' + templateContext: + mb: + signing: + enabled: true + signType: $(SignType) + zipSources: false + outputs: + - output: pipelineArtifact + displayName: 'Publish Artifacts' + condition: always() + targetPath: $(ArtifactsDirectory) + artifactName: 'artifacts' + steps: + - script: 'echo ##vso[task.setvariable variable=SignType;]Real' + displayName: 'Set SignType to Real for tagged commits' + condition: and(succeeded(), startsWith(variables['Build.SourceBranch'], 'refs/tags/v')) + - task: UseDotNet@2 + displayName: 'Install .NET 8.x' + inputs: + version: '8.x' + - task: UseDotNet@2 + displayName: 'Install .NET 9.x' + inputs: + version: '9.x' + - script: | + powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://dot.net/v1/dotnet-install.ps1'))) $(DotNet10InstallArgs) -InstallDir C:\ToolCache\dotnet" + dotnet --info + displayName: 'Install .NET 10.x' + + - task: VSBuild@1 + displayName: 'Build Solution' + inputs: + solution: '**\*.sln' + msbuildArgs: '$(MSBuildArgs)' + - task: PublishSymbols@2 + displayName: 'Publish Symbols' + inputs: + SearchPattern: '**/bin/**/*.pdb' + IndexSources: false + SymbolServerType: TeamServices diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 89ee47c..7b87a61 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,126 +1,126 @@ -resources: -- repo: self - -variables: - ArtifactsDirectoryName: 'artifacts' - BuildConfiguration: 'Debug' - BuildPlatform: 'Any CPU' - MSBuildArgs: '"/Property:Platform=$(BuildPlatform);Configuration=$(BuildConfiguration)"' - SignType: 'Test' - # Not using "--channel 10.0 --quality daily", see https://github.com/microsoft/slngen/issues/456 - DotNet10InstallArgs: '-version 10.0.100-alpha.1.24571.14' - -trigger: - batch: 'true' - branches: - include: - - 'main' - - 'rel/*' - paths: - exclude: - - '*.md' -pr: - branches: - include: - - 'main' - - 'rel/*' - paths: - exclude: - - '*.md' - -jobs: -- job: BuildAndTest - strategy: - matrix: - Windows: - vmImage: windows-latest - osName: Windows - Linux: - vmImage: ubuntu-latest - osName: Linux - MacOS: - vmImage: macOS-latest - osName: MacOS - displayName: 'Build and Test' - pool: - vmImage: $(vmImage) - steps: - - task: UseDotNet@2 - displayName: 'Install .NET 8.x' - inputs: - version: '8.x' - - - task: UseDotNet@2 - displayName: 'Install .NET 9.x' - inputs: - version: '9.x' - - - script: | - powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://dot.net/v1/dotnet-install.ps1'))) $(DotNet10InstallArgs) -InstallDir C:\hostedtoolcache\windows\dotnet" - dotnet --info - displayName: 'Install .NET 10.x (Windows)' - condition: eq(variables.osName, 'Windows') - - - script: | - curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin $(DotNet10InstallArgs) --install-dir /opt/hostedtoolcache/dotnet - dotnet --info - displayName: 'Install .NET 10.x (Linux)' - condition: eq(variables.osName, 'Linux') - - - script: | - curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin $(DotNet10InstallArgs) --install-dir /Users/runner/hostedtoolcache/dotnet - dotnet --info - displayName: 'Install .NET 10.x (MacOS)' - condition: eq(variables.osName, 'MacOS') - - - task: VSBuild@1 - displayName: 'Build (Visual Studio)' - inputs: - msbuildArgs: '$(MSBuildArgs) "/BinaryLogger:$(ArtifactsDirectoryName)/build.binlog"' - condition: eq(variables.osName, 'Windows') - - - task: DotNetCoreCLI@2 - displayName: 'Build (dotnet)' - inputs: - command: 'build' - arguments: '$(MSBuildArgs) "/BinaryLogger:$(ArtifactsDirectoryName)/build.binlog"' - condition: ne(variables.osName, 'Windows') - - - task: DotNetCoreCLI@2 - displayName: 'Run Unit Tests (.NET Framework v4.7.2)' - inputs: - command: 'test' - arguments: '--no-restore --no-build --framework net472 /noautorsp $(MSBuildArgs) "/BinaryLogger:$(ArtifactsDirectoryName)/test-net472.binlog"' - testRunTitle: '$(osName) .NET Framework v4.7.2' - condition: and(succeededOrFailed(), eq(variables.osName, 'Windows')) - - - task: DotNetCoreCLI@2 - displayName: 'Run Unit Tests (.NET 8)' - inputs: - command: 'test' - arguments: '--no-restore --no-build --framework net8.0 /noautorsp $(MSBuildArgs) "/BinaryLogger:$(ArtifactsDirectoryName)/test-net8.0.binlog"' - testRunTitle: '$(osName) .NET 8.0' - condition: succeededOrFailed() - - - task: DotNetCoreCLI@2 - displayName: 'Run Unit Tests (.NET 9)' - inputs: - command: 'test' - arguments: '--no-restore --no-build --framework net9.0 /noautorsp $(MSBuildArgs) "/BinaryLogger:$(ArtifactsDirectoryName)/test-net9.0.binlog"' - testRunTitle: '$(osName) .NET 9.0' - condition: succeededOrFailed() - - - task: DotNetCoreCLI@2 - displayName: 'Run Unit Tests (.NET 10)' - inputs: - command: 'test' - arguments: '--no-restore --no-build --framework net10.0 /noautorsp $(MSBuildArgs) "/BinaryLogger:$(ArtifactsDirectoryName)/test-net10.0.binlog"' - testRunTitle: '$(osName) .NET 10.0' - condition: succeededOrFailed() - - - task: PublishBuildArtifacts@1 - displayName: 'Publish Artifacts' - inputs: - PathtoPublish: '$(ArtifactsDirectoryName)' - ArtifactName: $(ArtifactsDirectoryName)-$(osName) - condition: always() +resources: +- repo: self + +variables: + ArtifactsDirectoryName: 'artifacts' + BuildConfiguration: 'Debug' + BuildPlatform: 'Any CPU' + MSBuildArgs: '"/Property:Platform=$(BuildPlatform);Configuration=$(BuildConfiguration)"' + SignType: 'Test' + # Not using "--channel 10.0 --quality daily", see https://github.com/microsoft/slngen/issues/456 + DotNet10InstallArgs: '-version 10.0.100-alpha.1.25074.9' + +trigger: + batch: 'true' + branches: + include: + - 'main' + - 'rel/*' + paths: + exclude: + - '*.md' +pr: + branches: + include: + - 'main' + - 'rel/*' + paths: + exclude: + - '*.md' + +jobs: +- job: BuildAndTest + strategy: + matrix: + Windows: + vmImage: windows-latest + osName: Windows + Linux: + vmImage: ubuntu-latest + osName: Linux + MacOS: + vmImage: macOS-latest + osName: MacOS + displayName: 'Build and Test' + pool: + vmImage: $(vmImage) + steps: + - task: UseDotNet@2 + displayName: 'Install .NET 8.x' + inputs: + version: '8.x' + + - task: UseDotNet@2 + displayName: 'Install .NET 9.x' + inputs: + version: '9.x' + + - script: | + powershell -NoProfile -ExecutionPolicy unrestricted -Command "[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; &([scriptblock]::Create((Invoke-WebRequest -UseBasicParsing 'https://dot.net/v1/dotnet-install.ps1'))) $(DotNet10InstallArgs) -InstallDir C:\hostedtoolcache\windows\dotnet" + dotnet --info + displayName: 'Install .NET 10.x (Windows)' + condition: eq(variables.osName, 'Windows') + + - script: | + curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin $(DotNet10InstallArgs) --install-dir /opt/hostedtoolcache/dotnet + dotnet --info + displayName: 'Install .NET 10.x (Linux)' + condition: eq(variables.osName, 'Linux') + + - script: | + curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin $(DotNet10InstallArgs) --install-dir /Users/runner/hostedtoolcache/dotnet + dotnet --info + displayName: 'Install .NET 10.x (MacOS)' + condition: eq(variables.osName, 'MacOS') + + - task: VSBuild@1 + displayName: 'Build (Visual Studio)' + inputs: + msbuildArgs: '$(MSBuildArgs) "/BinaryLogger:$(ArtifactsDirectoryName)/build.binlog"' + condition: eq(variables.osName, 'Windows') + + - task: DotNetCoreCLI@2 + displayName: 'Build (dotnet)' + inputs: + command: 'build' + arguments: '$(MSBuildArgs) "/BinaryLogger:$(ArtifactsDirectoryName)/build.binlog"' + condition: ne(variables.osName, 'Windows') + + - task: DotNetCoreCLI@2 + displayName: 'Run Unit Tests (.NET Framework v4.7.2)' + inputs: + command: 'test' + arguments: '--no-restore --no-build --framework net472 /noautorsp $(MSBuildArgs) "/BinaryLogger:$(ArtifactsDirectoryName)/test-net472.binlog"' + testRunTitle: '$(osName) .NET Framework v4.7.2' + condition: and(succeededOrFailed(), eq(variables.osName, 'Windows')) + + - task: DotNetCoreCLI@2 + displayName: 'Run Unit Tests (.NET 8)' + inputs: + command: 'test' + arguments: '--no-restore --no-build --framework net8.0 /noautorsp $(MSBuildArgs) "/BinaryLogger:$(ArtifactsDirectoryName)/test-net8.0.binlog"' + testRunTitle: '$(osName) .NET 8.0' + condition: succeededOrFailed() + + - task: DotNetCoreCLI@2 + displayName: 'Run Unit Tests (.NET 9)' + inputs: + command: 'test' + arguments: '--no-restore --no-build --framework net9.0 /noautorsp $(MSBuildArgs) "/BinaryLogger:$(ArtifactsDirectoryName)/test-net9.0.binlog"' + testRunTitle: '$(osName) .NET 9.0' + condition: succeededOrFailed() + + - task: DotNetCoreCLI@2 + displayName: 'Run Unit Tests (.NET 10)' + inputs: + command: 'test' + arguments: '--no-restore --no-build --framework net10.0 /noautorsp $(MSBuildArgs) "/BinaryLogger:$(ArtifactsDirectoryName)/test-net10.0.binlog"' + testRunTitle: '$(osName) .NET 10.0' + condition: succeededOrFailed() + + - task: PublishBuildArtifacts@1 + displayName: 'Publish Artifacts' + inputs: + PathtoPublish: '$(ArtifactsDirectoryName)' + ArtifactName: $(ArtifactsDirectoryName)-$(osName) + condition: always()