-
Notifications
You must be signed in to change notification settings - Fork 120
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Update Continuous-Integration.yml for Azure Pipelines
- Loading branch information
1 parent
40bf4f8
commit 8ab0f8d
Showing
1 changed file
with
286 additions
and
61 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,91 +1,316 @@ | ||
################################################################################# | ||
# OneBranch Pipelines - Official # | ||
# This pipeline was created by EasyStart from a sample located at: # | ||
# https://aka.ms/obpipelines/easystart/samples # | ||
# Documentation: https://aka.ms/obpipelines # | ||
# Yaml Schema: https://aka.ms/obpipelines/yaml/schema # | ||
# Retail Tasks: https://aka.ms/obpipelines/tasks # | ||
# Support: https://aka.ms/onebranchsup # | ||
################################################################################# | ||
|
||
name: $(TeamProject)_$(BuildDefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r) | ||
|
||
trigger: | ||
trigger: | ||
batch: true | ||
branches: | ||
include: | ||
- master | ||
paths: | ||
include: | ||
- Exdi/exdigdbsrv | ||
- main | ||
|
||
pool: | ||
vmImage: 'windows-2022' | ||
parameters: # parameters are shown up in ADO UI in a build queue time | ||
- name: 'debug' | ||
displayName: 'Enable debug output' | ||
type: boolean | ||
default: true # set for now in order to test | ||
|
||
variables: | ||
ProjectName: 'ExdiGdbSrv' | ||
buildDisplayName: 'Build ExdiGdbSrv VPack' | ||
buildConfiguration: 'Release' | ||
major: 1 | ||
minor: 1 | ||
majorDotMinor: '$(major).$(minor)' | ||
revision: $[counter(variables['majorDotMinor'], 0)] | ||
CDP_DEFINITION_BUILD_COUNT: $[counter('', 0)] # needed for onebranch.pipeline.version task https://aka.ms/obpipelines/versioning | ||
system.debug: ${{ parameters.debug }} | ||
WindowsContainerImage: 'onebranch.azurecr.io/windows/ltsc2022/vse2022:latest' #'onebranch.azurecr.io/windows/ltsc2022/vse2022:latest' # Docker image which is used to build the project https://aka.ms/obpipelines/containers | ||
ENABLE_PRS_DELAYSIGN: 1 | ||
|
||
steps: | ||
- template: Build-Steps.yml | ||
resources: | ||
repositories: | ||
- repository: templates | ||
type: git | ||
name: OneBranch.Pipelines/GovernedTemplates | ||
ref: refs/heads/main | ||
|
||
extends: | ||
template: v2/Microsoft.Official.yml@templates # https://aka.ms/obpipelines/templates | ||
parameters: | ||
BuildConfiguration: $(buildConfiguration) | ||
platform: | ||
name: 'windows_undocked' | ||
cloudvault: # Please refer the wiki for more information: https://aka.ms/obpipelines/cloudvault | ||
enabled: false | ||
globalSdl: # Refer the wiki for more options in this parameter: https://aka.ms/obpipelines/sdl | ||
tsa: | ||
enabled: false # onebranch publish all sdl results to TSA. If TSA is disabled all SDL tools will forced into 'break' build mode. Please provide TSAOptions.json. | ||
binskim: | ||
break: true # always break the build on binskim issues in addition to TSA upload | ||
policheck: | ||
break: true # always break the build on policheck issues. You can disable it by setting to 'false' | ||
# suppression: | ||
# suppressionFile: $(Build.SourcesDirectory)\.gdn\global.gdnsuppress | ||
featureFlags: | ||
# Use Windows 2022 for OneBranch's own containers, as with WindowsContainerImage above. | ||
WindowsHostVersion: '1ESWindows2022' | ||
|
||
- task: PublishBuildArtifacts@1 | ||
displayName: 'Publish Artifact: bin' | ||
inputs: | ||
PathtoPublish: '$(Build.SourcesDirectory)\Exdi\exdigdbsrv\$(buildConfiguration)' | ||
stages: | ||
- stage: build | ||
jobs: | ||
- job: PrepareBuildNumber | ||
pool: | ||
type: windows # read more about custom job pool types at https://aka.ms/obpipelines/yaml/jobs | ||
|
||
variables: # More settings at https://aka.ms/obpipelines/yaml/jobs | ||
ob_outputDirectory: '$(Build.ArtifactStagingDirectory)' # this directory is uploaded to pipeline artifacts, reddog and cloudvault. More info at https://aka.ms/obpipelines/artifacts | ||
# https://aka.ms/obpipelines/sdl | ||
ob_sdl_binskim_break: true # always break the build on binskim issues, even if TSA enabled. You can disable it by setting to 'false' | ||
ob_sdl_roslyn_break: true | ||
ob_sdl_codeSignValidation_excludes: -|**\*.pdb;-|**\Newtonsoft.Json.dll;-|**\*.js;-|**\*.json;-|**\*.txt;-|**\*.nuspec;-|**\*.nupkg | ||
ob_symbolsPublishing_enabled: false # https://aka.ms/obpipelines/symbols | ||
# Use "vnext" for the checks so "CheckCFlags" works. As of this writing it fails with this error:"[CheckCFlags]Missing symbol file for binary: C:\__w\1\a\build\Microsoft.Identity.Client.dll." | ||
# TODO: Consider removing when no longer needed. | ||
Windows_SDL_Container_Version: 'vnext' | ||
# ${{ if eq(variables['Build.SourceBranch'], 'refs/heads/main') }}: # conditionally enable symbolsPublishing for master branch only | ||
# ob_symbolsPublishing_enabled: true # https://aka.ms/obpipelines/symbols | ||
# ${{ else }}: | ||
# ob_sdl_suppression_suppressionFile: $(Build.SourcesDirectory)\.gdn\job.gdnsuppress | ||
|
||
- task: PublishSymbols@2 | ||
displayName: 'Source index symbols 2' | ||
inputs: | ||
SearchPattern: '$(Build.SourcesDirectory)\Exdi\exdigdbsrv\$(buildConfiguration)\**\*.pdb' | ||
SymbolServerType: 'TeamServices' | ||
steps: | ||
- script: echo '$(Build.BuildNumber)' | ||
displayName: Display BuildNumber 1 | ||
|
||
- task: onebranch.pipeline.version@1 # generates automatic version. For other versioning options check https://aka.ms/obpipelines/versioning | ||
displayName: Setup BuildNumber | ||
inputs: | ||
system: 'RevisionCounter' | ||
major: '1' | ||
minor: '3' | ||
exclude_commit: true | ||
|
||
- script: echo '$(Build.BuildNumber)' | ||
displayName: Display BuildNumber 2 | ||
|
||
- powershell: | | ||
Write-Host "Build Number: $(Build.BuildNumber)" # looks like 1.3.02306.79 | ||
$curDate = Get-Date | ||
|
||
# Maximum number for either of the version parts can't be above 65534 - https://stackoverflow.com/questions/37941195/the-specified-version-string-does-not-conform-to-the-required-format-major-mi | ||
|
||
$packageVersion = "$($curDate.ToString("yyyy.MMdd")).$(CDP_PATCH_NUMBER)" # like 2023.0425.0230679 | ||
Write-Host "Custom Package version: $($packageVersion)" | ||
|
||
$buildVersion = "$($curDate.ToString("yyyy.MMdd")).$(CDP_BUILD_NUMBER).$(CDP_REVISION_NUMBER)" # like 2023.0425.02306.79 | ||
Write-Host "Custom Build version: $($buildVersion)" | ||
|
||
Write-Host "##vso[task.setvariable variable=Package_Version;isOutput=true]$($packageVersion)" | ||
Write-Host "##vso[task.setvariable variable=Build_Version;isOutput=true]$($buildVersion)" | ||
displayName: 'Prepare custom release version' | ||
name: CustomBuildNumber | ||
|
||
- task: ms-vscs-artifact.build-tasks.artifactSymbolTask-1.artifactSymbolTask@0 | ||
displayName: 'Publish to Symbols to Artifact Services' | ||
inputs: | ||
symbolServiceURI: 'https://microsoft.artifacts.visualstudio.com/DefaultCollection' | ||
requestName: 'DebuggingExperiences/$(Build.BuildNumber)/$(Build.BuildId)' | ||
sourcePath: '$(Build.SourcesDirectory)\Exdi\exdigdbsrv' | ||
expirationInDays: '365' | ||
- job: build_release | ||
pool: | ||
type: windows | ||
|
||
#Add the ExdiGdbSrv vpack steps. | ||
variables: | ||
# this directory is uploaded to pipeline artifacts, reddog and cloudvault. More info at https://aka.ms/obpipelines/artifacts | ||
ob_outputDirectory: '$(Build.SourcesDirectory)\build' | ||
ob_artifactBaseName: release | ||
GITHUB_CHECKOUT_PATH: 'Windbg-Samples' | ||
WindbgSamplesREPOROOT: $(Pipeline.Workspace)\Windbg-Samples | ||
|
||
- task: CmdLine@2 | ||
displayName: dir files for debugging | ||
inputs: | ||
script: > | ||
echo dir Build.SourcesDirectory... | ||
steps: | ||
- task: NuGetToolInstaller@1 | ||
|
||
dir /s/b $(Build.SourcesDirectory)\Exdi\exdigdbsrv | ||
- task: 333b11bd-d341-40d9-afcf-b32d5ce6f23b@2 | ||
inputs: | ||
restoreSolution: '$(Build.SourcesDirectory)\Exdi\**\*.sln' | ||
|
||
- task: PowerShell@2 | ||
displayName: "Create sourcelink file for current commit" | ||
timeoutInMinutes: 30 | ||
inputs: | ||
filePath: $(Build.SourcesDirectory)\Exdi\exdigdbsrv\exdigdbsrv\SourceLinkGeneration.ps1 | ||
arguments: "-SourcesDir $(WindbgSamplesREPOROOT) -OutputDir $(Build.SourcesDirectory)\\Exdi\\exdigdbsrv\\exdigdbsrv\\ -GitRelativePath /Exdi/exdigdbsrv -GitOwner microsoft" | ||
pwsh: true | ||
|
||
echo dir Exdi\exdigdbsrv\Release\x64... | ||
- task: VSBuild@1 | ||
displayName: 'Build x64' | ||
inputs: | ||
platform: 'x64' | ||
solution: '$(Build.SourcesDirectory)\Exdi\**\*.sln' | ||
configuration: '$(buildConfiguration)' | ||
|
||
dir $(Build.SourcesDirectory)\Exdi\exdigdbsrv\Release\x64 | ||
- task: VSBuild@1 | ||
displayName: 'Build ARM64' | ||
inputs: | ||
platform: 'ARM64' | ||
solution: '$(WindbgSamplesREPOROOT)\Exdi\**\*.sln' | ||
configuration: '$(buildConfiguration)' | ||
|
||
echo dir Exdi\exdigdbsrv\Release\ARM64... | ||
- powershell: | | ||
echo "dir -r $(WindbgSamplesREPOROOT)" | ||
dir -r $(WindbgSamplesREPOROOT) | ||
dir $(Build.SourcesDirectory)\Exdi\exdigdbsrv\Release\ARM64 | ||
displayName: 'Debug Print' | ||
# prepare vpack folder here | ||
- task: CmdLine@2 | ||
displayName: Prepare VPack Output Folder | ||
inputs: | ||
script: > | ||
echo -- dir Build.SourcesDirectory | ||
md $(Agent.TempDirectory) | ||
dir /s/b $(Build.SourcesDirectory) | ||
md $(Agent.TempDirectory)\ExdiGdbSrv.vpack.temp | ||
md $(ob_outputDirectory) | ||
md $(Agent.TempDirectory)\ExdiGdbSrv.vpack.temp\x64 | ||
md $(ob_outputDirectory)\x64\ | ||
md $(Agent.TempDirectory)\ExdiGdbSrv.vpack.temp\ARM64 | ||
md $(ob_outputDirectory)\ARM64\ | ||
echo Copy files ... | ||
echo Copy files ... | ||
copy $(WindbgSamplesREPOROOT)\Exdi\exdigdbsrv\Release\x64\ExdiGdbSrv.dll $(ob_outputDirectory)\x64 | ||
copy $(WindbgSamplesREPOROOT)\Exdi\exdigdbsrv\GdbSrvControllerLib\systemregisters.xml $(ob_outputDirectory)\x64 | ||
copy $(WindbgSamplesREPOROOT)\Exdi\exdigdbsrv\GdbSrvControllerLib\exdiConfigData.xml $(ob_outputDirectory)\x64 | ||
copy $(WindbgSamplesREPOROOT)\Exdi\exdigdbsrv\Release\ARM64\ExdiGdbSrv.dll $(ob_outputDirectory)\ARM64 | ||
copy $(WindbgSamplesREPOROOT)\Exdi\exdigdbsrv\GdbSrvControllerLib\systemregisters.xml $(ob_outputDirectory)\ARM64 | ||
copy $(WindbgSamplesREPOROOT)\Exdi\exdigdbsrv\GdbSrvControllerLib\exdiConfigData.xml $(ob_outputDirectory)\ARM64 | ||
copy $(Build.SourcesDirectory)\Exdi\exdigdbsrv\Release\x64\ExdiGdbSrv.dll $(Agent.TempDirectory)\ExdiGdbSrv.vpack.temp\x64 | ||
copy $(Build.SourcesDirectory)\Exdi\exdigdbsrv\GdbSrvControllerLib\systemregisters.xml $(Agent.TempDirectory)\ExdiGdbSrv.vpack.temp\x64 | ||
rmdir /s /q $(WindbgSamplesREPOROOT) | ||
copy $(Build.SourcesDirectory)\Exdi\exdigdbsrv\GdbSrvControllerLib\exdiConfigData.xml $(Agent.TempDirectory)\ExdiGdbSrv.vpack.temp\x64 | ||
- job: build_vpack | ||
dependsOn: | ||
- PrepareBuildNumber | ||
- build_release | ||
pool: | ||
type: windows # read more about custom job pool types at https://aka.ms/obpipelines/yaml/jobs | ||
|
||
# For VPack creation you can refer to the following links: | ||
# https://www.osgwiki.com/wiki/OneBranch_Windows_Undocked_Pipelines | ||
# https://www.osgwiki.com/wiki/Submit_Files_to_Git_in_Package_ES | ||
|
||
variables: | ||
REPOROOT: $(Build.SourcesDirectory) | ||
DBG_VPACK_NAME: 'Windows.Debugger.ExdiGdbSrv' | ||
DBG_PR_WORK_ITEM: '46960971' | ||
DBG_VPACK_MAN_FILE: 'ExdiGdbSrv.man' | ||
DBG_VPACK_MAN_FOLDER: '/onecore/sdktools/debuggers/external/vpack' | ||
Package_Version: $[ dependencies.PrepareBuildNumber.outputs['CustomBuildNumber.Package_Version'] ] | ||
ob_outputDirectory: '$(System.DefaultWorkingDirectory)\build_and_pack' # this directory is uploaded to pipeline artifacts, reddog and cloudvault. More info at https://aka.ms/obpipelines/artifacts | ||
|
||
## createVPack: # information for Vpack (Learn more: https://www.osgwiki.com/wiki/OneBranch_Windows_Undocked_Pipelines) | ||
ob_createvpack_enabled: true | ||
ob_createvpack_packagename: '$(DBG_VPACK_NAME)' # "$(VpackPrefix).release.$(buildPlatform)" | ||
ob_createvpack_description: '$(DBG_VPACK_NAME) release' # "$(VpackPrefix)" | ||
# ob_artifactSuffix: $(binId) | ||
# ob_createvpack_relPath: $(Provider_Build_Folder) | ||
# ob_createvpack_targetDestinationDirectory: $(Provider_Build_Folder) | ||
ob_createvpack_targetDestinationDirectory: '$(Destination)' | ||
ob_createvpack_versionAs: string | ||
ob_createvpack_version: $(Package_Version) | ||
ob_createvpack_owneralias: 'dex-triage@microsoft.com' | ||
ob_createvpack_provData: true | ||
ob_createvpack_propsFile: false | ||
ob_createvpack_verbose: true | ||
# updateOSManifest: #information for GitSubmit | ||
ob_updateOSManifest_enabled: true | ||
ob_updateOSManifest_osbranch: 'official/oc_es_debug' | ||
ob_updateOSManifest_source: "$(DBG_VPACK_MAN_FOLDER)/$(DBG_VPACK_MAN_FILE)" | ||
ob_updateOSManifest_destination: '$(REPOROOT)' | ||
ob_updateOSManifest_gitcheckinConfigPath: '' | ||
ob_updateOSManifest_manifest: '' | ||
## << Please refer wiki for more Vpack options >> | ||
|
||
steps: | ||
- task: DownloadPipelineArtifact@2 | ||
displayName: 'Download build artifacts' | ||
inputs: | ||
artifact: release | ||
path: $(System.DefaultWorkingDirectory)\extracted | ||
|
||
copy $(Build.SourcesDirectory)\Exdi\exdigdbsrv\Release\ARM64\ExdiGdbSrv.dll $(Agent.TempDirectory)\ExdiGdbSrv.vpack.temp\ARM64 | ||
- script: | | ||
robocopy "$(System.DefaultWorkingDirectory)\extracted" "$(System.DefaultWorkingDirectory)\build_and_pack" *.* /s | ||
copy $(Build.SourcesDirectory)\Exdi\exdigdbsrv\GdbSrvControllerLib\systemregisters.xml $(Agent.TempDirectory)\ExdiGdbSrv.vpack.temp\ARM64 | ||
dir /s/b $(System.DefaultWorkingDirectory)\build_and_pack | ||
copy $(Build.SourcesDirectory)\Exdi\exdigdbsrv\GdbSrvControllerLib\exdiConfigData.xml $(Agent.TempDirectory)\ExdiGdbSrv.vpack.temp\ARM64 | ||
exit 0 | ||
displayName: 'Copy files to build_and_pack' | ||
- task: CmdLine@2 | ||
displayName: Copy Checkin.json file | ||
inputs: | ||
script: > | ||
copy /Y $(REPOROOT)\Scripts\GitCheckin.json $(REPOROOT)\GitCheckin.json | ||
echo done. | ||
|
||
- task: PkgESVPack@12 | ||
displayName: 'Create ExdiGdbSrv VPack ' | ||
inputs: | ||
sourceDirectory: '$(Agent.TempDirectory)\ExdiGdbSrv.vpack.temp' | ||
description: 'ExdiGdbSrv binary' | ||
pushPkgName: ExdiGdbSrv.vpack.binary | ||
- pwsh: | | ||
Write-Host "PS Version (pwsh task): $($PSVersionTable.PSVersion.ToString())" | ||
$jsonFileName = Join-Path -Path "$(REPOROOT)"-ChildPath "GitCheckin.json" | ||
$fileContent = Get-Content -Path $jsonFileName -Raw | ||
# PowerShell 7.x verion of 'ConvertFrom-Json' strips out the comments from JSON file | ||
$fileContentAsJson = ConvertFrom-Json $fileContent | ||
$fileContent = $fileContentAsJson | ConvertTo-Json -depth 100 | ||
$fileContent = $fileContent -replace 'DBG_VPACK_PT_TITLE', "Sync to latest $(DBG_VPACK_NAME) VPack update $(Package_Version)" | ||
$fileContent = $fileContent -replace 'DBG_PR_WORK_ITEM', "$(DBG_PR_WORK_ITEM)" | ||
$fileContent = $fileContent -replace 'DBG_VPACK_MAN_FOLDER', "$(DBG_VPACK_MAN_FOLDER)" | ||
$fileContent = $fileContent -replace 'DBG_VPACK_MAN_FILE', "$(DBG_VPACK_MAN_FILE)" | ||
[System.IO.File]::WriteAllText($jsonFileName, $fileContent) | ||
# | ||
displayName: 'Update GitCheckin.json' | ||
- task: CmdLine@2 | ||
displayName: 'Debug print 2' | ||
inputs: | ||
script: > | ||
echo --- GitCheckin.json | ||
type $(REPOROOT)\GitCheckin.json | ||
|
||
echo --- Package_Version | ||
|
||
echo $(Package_Version) | ||
|
||
echo --- all variables | ||
|
||
set | ||
|
||
echo --- dir Build.SourcesDirectory | ||
|
||
dir /s/b $(Build.SourcesDirectory) | ||
|
||
echo --- dir Build.BinariesDirectory | ||
|
||
dir /s/b $(Build.BinariesDirectory) | ||
|
||
echo --- dir System.DefaultWorkingDirectory | ||
|
||
dir /s/b $(System.DefaultWorkingDirectory) | ||
|
||
echo --- dir Build.ArtifactStagingDirectory | ||
|
||
dir /s/b "$(Build.ArtifactStagingDirectory)" | ||
|
||
echo --- dir $(System.DefaultWorkingDirectory)\build_and_pack | ||
|
||
dir /s/b "$(System.DefaultWorkingDirectory)\build_and_pack" | ||
|
||
echo --- dir $(REPOROOT) | ||
|
||
dir /s/b $(REPOROOT) | ||
|
||
echo --- done. |