Skip to content

Commit

Permalink
Convert CI pipeline to MicroBuild template (#308)
Browse files Browse the repository at this point in the history
* Move CI build to MicroBuild template

* Update to latest nuget

* Update dockerfile to 2022

* Add required compile flags for binskim

* Use ProgramDatabase DebugInformationFormat for all builds
  • Loading branch information
tydunkel authored Feb 13, 2024
1 parent 6ad44cd commit f9116d2
Show file tree
Hide file tree
Showing 13 changed files with 113 additions and 58 deletions.
65 changes: 39 additions & 26 deletions .vsts-ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -15,33 +15,46 @@ trigger:

pr: none

queue:
name: VSEngSS-MicroBuild2019-1ES
timeoutInMinutes: 120
demands:
- ChocolateyInstall
- MSBuild
- VisualStudio
- VSTest
resources:
repositories:
- repository: MicroBuildTemplate
type: git
name: 1ESPipelineTemplates/MicroBuildTemplate
ref: refs/tags/release

steps:
- task: ms-vseng.MicroBuildTasks.30666190-6959-11e5-9f96-f56098202fef.MicroBuildSigningPlugin@2
displayName: Install signing plugin
inputs:
signType: $(SignType)
esrpSigning: true

- template: inc/build.yml
extends:
template: azure-pipelines/MicroBuild.1ES.Official.yml@MicroBuildTemplate
parameters:
BuildConfiguration: $(BuildConfiguration)
BuildPlatform: $(BuildPlatform)
Sign: true
pool:
name: VSEngSS-MicroBuild2022-1ES
sdl:
sourceAnalysisPool:
name: AzurePipelines-EO
image: AzurePipelinesWindows2022compliantGPT
policheck:
enabled: true
binskim:
enabled: true
scanOutputDirectoryOnly: true # BinSkim scans whole source tree but we only need to scan the output dir.

stages:
- stage: Build
jobs:
- job: Build
templateContext:
mb:
signing:
enabled: true
signType: $(SignType)

- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: Detect components
inputs:
sourceScanPath: $(Build.SourcesDirectory)
steps:
- template: /pipelines/templates/build.yml@self
parameters:
BuildConfiguration: $(BuildConfiguration)
BuildPlatform: $(BuildPlatform)
Sign: true
PublishArtifactTemplate: /pipelines/templates/1es-publish-task.yml@self

- task: ms-vseng.MicroBuildTasks.521a94ea-9e68-468a-8167-6dcf361ea776.MicroBuildCleanup@1
displayName: Clean up
condition: succeededOrFailed()
- task: ms-vseng.MicroBuildTasks.521a94ea-9e68-468a-8167-6dcf361ea776.MicroBuildCleanup@1
displayName: Clean up
condition: succeededOrFailed()
11 changes: 6 additions & 5 deletions .vsts-compliance.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ schedules:
pr: none

queue:
name: VSEngSS-MicroBuild2019-1ES
name: VSEngSS-MicroBuild2022-1ES
timeoutInMinutes: 120
demands:
- ChocolateyInstall
Expand All @@ -30,11 +30,12 @@ queue:
- VSTest

steps:
- template: inc/build.yml
- template: /pipelines/templates/build.yml@self
parameters:
BuildConfiguration: $(BuildConfiguration)
BuildPlatform: $(BuildPlatform)
Sign: false
BuildConfiguration: $(BuildConfiguration)
BuildPlatform: $(BuildPlatform)
Sign: false
PublishArtifactTemplate: /pipelines/templates/ado-publish-task.yml@self

- task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0
displayName: Detect components
Expand Down
11 changes: 6 additions & 5 deletions azure-pipelines.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,15 +12,16 @@ pr:
- README.md

pool:
vmImage: windows-2019
vmImage: windows-2022

variables:
BuildConfiguration: Release
BuildPlatform: x86

steps:
- template: inc/build.yml
- template: /pipelines/templates/build.yml@self
parameters:
BuildConfiguration: $(BuildConfiguration)
BuildPlatform: $(BuildPlatform)
Docker: true
BuildConfiguration: $(BuildConfiguration)
BuildPlatform: $(BuildPlatform)
Docker: true
PublishArtifactTemplate: /pipelines/templates/ado-publish-task.yml@self
2 changes: 1 addition & 1 deletion docker/Debug.dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Licensed under the MIT license. See LICENSE.txt in the project root for license information.

# Based on latest image cached by Azure Pipelines: https://docs.microsoft.com/azure/devops/pipelines/agents/hosted#software
FROM mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2022
SHELL ["powershell.exe", "-ExecutionPolicy", "Bypass", "-Command"]

ENV INSTALLER_VERSION=1.14.190.31519 `
Expand Down
2 changes: 1 addition & 1 deletion docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
# Licensed under the MIT license. See LICENSE.txt in the project root for license information.

# Based on latest image cached by Azure Pipelines: https://docs.microsoft.com/azure/devops/pipelines/agents/hosted#software
FROM mcr.microsoft.com/dotnet/framework/sdk:4.8-windowsservercore-ltsc2019
FROM mcr.microsoft.com/dotnet/framework/aspnet:4.8-windowsservercore-ltsc2022
SHELL ["powershell.exe", "-ExecutionPolicy", "Bypass", "-Command"]

ENV INSTALLER_VERSION=1.14.190.31519 `
Expand Down
5 changes: 4 additions & 1 deletion inc/Common.Debug.props
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,13 @@
<ClCompile>
<LanguageStandard>stdcpp14</LanguageStandard>
<RuntimeLibrary>MultiThreadedDebug</RuntimeLibrary>
<ControlFlowGuard>Guard</ControlFlowGuard>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<AdditionalDependencies>shell32.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
</Project>
5 changes: 4 additions & 1 deletion inc/Common.props
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,13 @@
<ClCompile>
<LanguageStandard>stdcpp14</LanguageStandard>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<ControlFlowGuard>Guard</ControlFlowGuard>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/ZH:SHA_256 %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Lib>
<AdditionalDependencies>shell32.lib</AdditionalDependencies>
</Lib>
</ItemDefinitionGroup>
<ItemGroup />
</Project>
</Project>
22 changes: 22 additions & 0 deletions pipelines/templates/1es-publish-task.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
parameters:
- name: path
type: string

- name: artifactName
type: string

- name: displayName
type: string
default: 'Publish artifact'

- name: condition
type: string
default: succeeded()

steps:
- task: 1ES.PublishPipelineArtifact@1
displayName: ${{ parameters.displayName }}
condition: ${{ parameters.condition }}
inputs:
targetPath: ${{ parameters.path }}
artifactName: ${{ parameters.artifactName }}
22 changes: 22 additions & 0 deletions pipelines/templates/ado-publish-task.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
parameters:
- name: path
type: string

- name: artifactName
type: string

- name: displayName
type: string
default: 'Publish artifact'

- name: condition
type: string
default: succeeded()

steps:
- task: PublishBuildArtifacts@1
displayName: ${{ parameters.displayName }}
condition: ${{ parameters.condition }}
inputs:
PathtoPublish: ${{ parameters.path }}
ArtifactName: ${{ parameters.artifactName }}
14 changes: 6 additions & 8 deletions inc/build.yml → pipelines/templates/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ parameters:
BuildPlatform: x86
Docker: false
Sign: false
PublishArtifactTemplate: /pipelines/template/1es-publish-task.yml@self

steps:
- task: UseDotNet@2
Expand All @@ -22,8 +23,6 @@ steps:

- task: NuGetToolInstaller@0
displayName: Install nuget
inputs:
versionSpec: '4.1.0'

- task: NuGetCommand@2
displayName: Restore packages
Expand Down Expand Up @@ -102,9 +101,8 @@ steps:
bin\${{ parameters.BuildConfiguration }}\**
TargetFolder: $(Build.ArtifactStagingDirectory)\out

- task: PublishBuildArtifacts@1
displayName: Publish build artifacts
inputs:
PathtoPublish: $(Build.ArtifactStagingDirectory)\out
ArtifactName: drop
publishLocation: Container
- template: ${{ parameters.PublishArtifactTemplate }}
parameters:
displayName: Publish build artifacts
path: $(Build.ArtifactStagingDirectory)\out
artifactName: drop
5 changes: 0 additions & 5 deletions src/vswhere.lib/vswhere.lib.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -59,9 +59,6 @@
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<ControlFlowGuard>Guard</ControlFlowGuard>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/Zi %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand All @@ -86,8 +83,6 @@
<PreprocessorDefinitions>WIN32;NDEBUG;_LIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<ControlFlowGuard>Guard</ControlFlowGuard>
<AdditionalOptions>/Zi %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand Down
5 changes: 0 additions & 5 deletions src/vswhere/vswhere.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,6 @@
<Optimization>Disabled</Optimization>
<PreprocessorDefinitions>WIN32;_DEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<ControlFlowGuard>Guard</ControlFlowGuard>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalOptions>/Zi %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand All @@ -86,8 +83,6 @@
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck>
<FavorSizeOrSpeed>Size</FavorSizeOrSpeed>
<ControlFlowGuard>Guard</ControlFlowGuard>
<AdditionalOptions>/Zi %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Console</SubSystem>
Expand Down
2 changes: 2 additions & 0 deletions test/vswhere.test/vswhere.test.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,7 @@
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
<AdditionalOptions>/DYNAMICBASE %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand All @@ -97,6 +98,7 @@
</AdditionalIncludeDirectories>
<PreprocessorDefinitions>WIN32;NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<UseFullPaths>true</UseFullPaths>
<AdditionalOptions>/DYNAMICBASE %(AdditionalOptions)</AdditionalOptions>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
Expand Down

0 comments on commit f9116d2

Please sign in to comment.