From ee532ab7b9d22bea6721297f9ef2f0c365eddb3a Mon Sep 17 00:00:00 2001 From: Michal Pavlik Date: Wed, 21 Feb 2024 10:43:38 +0100 Subject: [PATCH 1/3] Onboarding MicroBuild --- azure-pipelines.yml | 171 +++++++++++++++++++++++--------------------- 1 file changed, 90 insertions(+), 81 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index fdce82df..dd3fcee8 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -1,91 +1,100 @@ -pool: - name: VSEngSS-MicroBuild2022-1ES - demands: msbuild - variables: - BuildConfiguration: 'Release' - BuildPlatform: '' - Codeql.Enabled: true - -steps: -- task: MicroBuildSigningPlugin@1 - inputs: - signType: '$(SignType)' - zipSources: true - -- task: MSBuild@1 - displayName: '/t:Pack' - inputs: - solution: MSBuildLocator.sln - platform: '$(BuildPlatform)' - configuration: '$(BuildConfiguration)' - msbuildArguments: '/t:Pack /restore -binaryLogger:$(Build.SourcesDirectory)\Pack.binlog' - -- task: CopyFiles@2 - displayName: 'Collect Symbols' - inputs: - SourceFolder: src/MSBuildLocator - Contents: '**\*.pdb' - TargetFolder: '$(Build.ArtifactStagingDirectory)/symbols' - CleanTargetFolder: true - -- task: PublishSymbols@2 - displayName: 'Enable Source Server' - inputs: - SymbolsFolder: '$(Build.ArtifactStagingDirectory)\symbols' - SearchPattern: '**/*.pdb' - SymbolServerType: TeamServices +- name: BuildPlatform + value: '' +- name: BuildConfiguration + value: 'Release' +- name: TeamName + value: 'MSBuildLocator' -- task: PublishBuildArtifacts@1 - displayName: 'Upload Symbols Artifact' - inputs: - PathtoPublish: '$(Build.ArtifactStagingDirectory)/symbols' - ArtifactName: Symbols +resources: + repositories: + - repository: CustomPipelineTemplates + type: git + name: 1ESPipelineTemplates/MicroBuildTemplate -- task: CopyFiles@2 - displayName: 'Copy Bin to drop' - inputs: - SourceFolder: 'src\MSBuildLocator\bin\Release' - TargetFolder: '$(Build.ArtifactStagingDirectory)\bin' +extends: + template: azure-pipelines/MicroBuild.1ES.Official.yml@CustomPipelineTemplates + parameters: + pool: + name: VSEngSS-MicroBuild2022-1ES + demands: + - msbuild + sdl: + sourceAnalysisPool: + name: VSEngSS-MicroBuild2022-1ES + stages: + - stage: stage + jobs: + - job: job + templateContext: + mb: + signing: + enabled: true + signType: '$(SignType)' + zipSources: false + outputs: + - output: Symbols + displayName: 'Upload Symbols Artifact' + targetPath: '$(Build.ArtifactStagingDirectory)/symbols' + - output: bin + displayName: 'Upload Bin to drop' + targetPath: '$(Build.ArtifactStagingDirectory)\bin' + - output: pkg + displayName: 'Upload NuGet to drop' + targetPath: '$(Build.ArtifactStagingDirectory)\pkg' + - output: logs + displayName: 'Upload logs to drop' + targetPath: '$(Build.ArtifactStagingDirectory)\logs' + condition: succeededOrFailed() + steps: + - task: MSBuild@1 + displayName: '/t:Pack' + inputs: + solution: MSBuildLocator.sln + platform: '$(BuildPlatform)' + configuration: '$(BuildConfiguration)' + msbuildArguments: '/t:Pack /restore -binaryLogger:$(Build.SourcesDirectory)\Pack.binlog' -- task: PublishBuildArtifacts@1 - displayName: 'Upload Bin to drop' - inputs: - PathToPublish: '$(Build.ArtifactStagingDirectory)\bin' - ArtifactName: bin + - task: CopyFiles@2 + displayName: 'Collect Symbols' + inputs: + SourceFolder: src/MSBuildLocator + Contents: '**\*.pdb' + TargetFolder: '$(Build.ArtifactStagingDirectory)/symbols' + CleanTargetFolder: true -- task: CopyFiles@2 - displayName: 'Copy NuGet to drop' - inputs: - SourceFolder: 'src\MSBuildLocator\bin\Release' - Contents: '*.nupkg' - TargetFolder: '$(Build.ArtifactStagingDirectory)\pkg' + - task: PublishSymbols@2 + displayName: 'Enable Source Server' + inputs: + SymbolsFolder: '$(Build.ArtifactStagingDirectory)\symbols' + SearchPattern: '**/*.pdb' + SymbolServerType: TeamServices -- task: PublishBuildArtifacts@1 - displayName: 'Upload NuGet to drop' - inputs: - PathToPublish: '$(Build.ArtifactStagingDirectory)\pkg' - ArtifactName: pkg + - task: CopyFiles@2 + displayName: 'Copy Bin to drop' + inputs: + SourceFolder: 'src\MSBuildLocator\bin\Release' + TargetFolder: '$(Build.ArtifactStagingDirectory)\bin' -- task: PublishPipelineArtifact@1 - displayName: 'Upload MicroBuildOutputs to drop' - inputs: - TargetPath: '$(Build.StagingDirectory)\MicroBuild\Output' - ArtifactName: MicroBuildOutputs - continueOnError: true + - task: CopyFiles@2 + displayName: 'Copy NuGet to drop' + inputs: + SourceFolder: 'src\MSBuildLocator\bin\Release' + Contents: '*.nupkg' + TargetFolder: '$(Build.ArtifactStagingDirectory)\pkg' -- task: CopyFiles@2 - displayName: 'Copy logs to drop' - inputs: - Contents: '**\*.*log' - TargetFolder: '$(Build.ArtifactStagingDirectory)\logs' + - task: PublishPipelineArtifact@1 + displayName: 'Upload MicroBuildOutputs to drop' + inputs: + TargetPath: '$(Build.StagingDirectory)\MicroBuild\Output' + ArtifactName: MicroBuildOutputs + continueOnError: true -- task: PublishBuildArtifacts@1 - displayName: 'Upload logs to drop' - inputs: - PathToPublish: '$(Build.ArtifactStagingDirectory)\logs' - ArtifactName: logs - condition: succeededOrFailed() + - task: CopyFiles@2 + displayName: 'Copy logs to drop' + inputs: + Contents: '**\*.*log' + TargetFolder: '$(Build.ArtifactStagingDirectory)\logs' -- task: ms-vseng.MicroBuildTasks.521a94ea-9e68-468a-8167-6dcf361ea776.MicroBuildCleanup@1 - displayName: 'Execute cleanup tasks' + - task: ms-vseng.MicroBuildTasks.521a94ea-9e68-468a-8167-6dcf361ea776.MicroBuildCleanup@1 + displayName: 'Execute cleanup tasks' \ No newline at end of file From 1d58cd4cf30e5704c8cf2c3390291a906c0c3e62 Mon Sep 17 00:00:00 2001 From: Gang Wang Date: Thu, 22 Feb 2024 02:41:05 +0000 Subject: [PATCH 2/3] Fix outputs --- azure-pipelines.yml | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index dd3fcee8..712ddde6 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -33,18 +33,27 @@ extends: signType: '$(SignType)' zipSources: false outputs: - - output: Symbols + - output: buildArtifacts displayName: 'Upload Symbols Artifact' - targetPath: '$(Build.ArtifactStagingDirectory)/symbols' - - output: bin + PathtoPublish: '$(Build.ArtifactStagingDirectory)/symbols' + artifactName: Symbols + - output: buildArtifacts displayName: 'Upload Bin to drop' - targetPath: '$(Build.ArtifactStagingDirectory)\bin' - - output: pkg + PathtoPublish: '$(Build.ArtifactStagingDirectory)\bin' + artifactName: bin + - output: buildArtifacts displayName: 'Upload NuGet to drop' - targetPath: '$(Build.ArtifactStagingDirectory)\pkg' - - output: logs + PathtoPublish: '$(Build.ArtifactStagingDirectory)\pkg' + artifactName: pkg + - output: pipelineArtifact + displayName: 'Upload MicroBuildOutputs to drop' + targetPath: '$(Build.StagingDirectory)\MicroBuild\Output' + artifactName: MicroBuildOutputs + continueOnError: true + - output: buildArtifacts displayName: 'Upload logs to drop' - targetPath: '$(Build.ArtifactStagingDirectory)\logs' + PathtoPublish: '$(Build.ArtifactStagingDirectory)\logs' + artifactName: logs condition: succeededOrFailed() steps: - task: MSBuild@1 @@ -83,13 +92,6 @@ extends: Contents: '*.nupkg' TargetFolder: '$(Build.ArtifactStagingDirectory)\pkg' - - task: PublishPipelineArtifact@1 - displayName: 'Upload MicroBuildOutputs to drop' - inputs: - TargetPath: '$(Build.StagingDirectory)\MicroBuild\Output' - ArtifactName: MicroBuildOutputs - continueOnError: true - - task: CopyFiles@2 displayName: 'Copy logs to drop' inputs: From dc87e99edb3e6ab3aa0bfda5fa2db6d331e5fd48 Mon Sep 17 00:00:00 2001 From: Gang Wang Date: Thu, 22 Feb 2024 10:04:49 +0000 Subject: [PATCH 3/3] Use pipeline artifact instead of build artifact --- azure-pipelines.yml | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/azure-pipelines.yml b/azure-pipelines.yml index 712ddde6..85c64f2b 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -27,35 +27,35 @@ extends: jobs: - job: job templateContext: - mb: - signing: - enabled: true - signType: '$(SignType)' - zipSources: false outputs: - - output: buildArtifacts + - output: pipelineArtifact displayName: 'Upload Symbols Artifact' - PathtoPublish: '$(Build.ArtifactStagingDirectory)/symbols' + targetPath: '$(Build.ArtifactStagingDirectory)/symbols' artifactName: Symbols - - output: buildArtifacts + - output: pipelineArtifact displayName: 'Upload Bin to drop' - PathtoPublish: '$(Build.ArtifactStagingDirectory)\bin' + targetPath: '$(Build.ArtifactStagingDirectory)\bin' artifactName: bin - - output: buildArtifacts + - output: pipelineArtifact displayName: 'Upload NuGet to drop' - PathtoPublish: '$(Build.ArtifactStagingDirectory)\pkg' + targetPath: '$(Build.ArtifactStagingDirectory)\pkg' artifactName: pkg - output: pipelineArtifact displayName: 'Upload MicroBuildOutputs to drop' targetPath: '$(Build.StagingDirectory)\MicroBuild\Output' artifactName: MicroBuildOutputs continueOnError: true - - output: buildArtifacts + - output: pipelineArtifact displayName: 'Upload logs to drop' - PathtoPublish: '$(Build.ArtifactStagingDirectory)\logs' + targetPath: '$(Build.ArtifactStagingDirectory)\logs' artifactName: logs condition: succeededOrFailed() steps: + - task: MicroBuildSigningPlugin@1 + inputs: + signType: '$(SignType)' + zipSources: true + - task: MSBuild@1 displayName: '/t:Pack' inputs: @@ -69,7 +69,7 @@ extends: inputs: SourceFolder: src/MSBuildLocator Contents: '**\*.pdb' - TargetFolder: '$(Build.ArtifactStagingDirectory)/symbols' + TargetFolder: '$(Build.ArtifactStagingDirectory)\symbols' CleanTargetFolder: true - task: PublishSymbols@2