Skip to content

Commit

Permalink
Updating OneBranch to add a CI build (#4252)
Browse files Browse the repository at this point in the history
* Updating OneBranch Builds.
Adding CIbuild

* Update templates

* Updating default values

* Update template-OneBranch-Release-libsandsamples.yaml

---------

Co-authored-by: trwalke <trwalke@microsoft.com>
  • Loading branch information
trwalke and trwalke committed Aug 2, 2023
1 parent 73ce337 commit ea8c0e0
Show file tree
Hide file tree
Showing 4 changed files with 118 additions and 5 deletions.
4 changes: 3 additions & 1 deletion LibsAndSamples.sln
Original file line number Diff line number Diff line change
Expand Up @@ -123,7 +123,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "pipelines", "pipelines", "{
build\template-install-keyvault-secrets.yaml = build\template-install-keyvault-secrets.yaml
build\template-ios-appcenter-tests.yaml = build\template-ios-appcenter-tests.yaml
build\template-nuget-pack.yaml = build\template-nuget-pack.yaml
build\template-OneBranch-libsandsamples.yaml = build\template-OneBranch-libsandsamples.yaml
build\template-OneBranch-CI-libsandsamples.yaml = build\template-OneBranch-CI-libsandsamples.yaml
build\template-OneBranch-Release-libsandsamples.yaml = build\template-OneBranch-Release-libsandsamples.yaml
build\template-OneBranch-releasebuild-netonly.yaml = build\template-OneBranch-releasebuild-netonly.yaml
build\template-pack-and-sign-all-nugets.yaml = build\template-pack-and-sign-all-nugets.yaml
build\template-pack-and-sign-nuget.yaml = build\template-pack-and-sign-nuget.yaml
build\template-pack-and-sign-packages.yaml = build\template-pack-and-sign-packages.yaml
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# template-OneBranch-PR-libsandsamples.yaml
# template-OneBranch-CI-libsandsamples.yaml
# Performs Nuget Restore and Build of LibsAndSamples.sln based on BuildPlatform and BuildConfiguration

parameters:
Expand Down Expand Up @@ -30,6 +30,4 @@ steps:
solution: ${{ parameters.Solution }}
msbuildArgs: '/p:RunCodeAnalysis=false /p:MsalClientSemVer=${{ parameters.MsalClientSemVer }} /p:SourceLinkCreate=true /p:ContinousIntegrationBuild=true'
platform: ${{ parameters.BuildPlatform }}
configuration: ${{ parameters.BuildConfiguration }}

- template: template-pack-and-sign-all-nugets.yaml
configuration: ${{ parameters.BuildConfiguration }}
20 changes: 20 additions & 0 deletions build/template-OneBranch-Release-libsandsamples.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
# template-OneBranch-Release-libsandsamples.yaml
# Performs Nuget Restore and Build of LibsAndSamples.sln based on BuildPlatform and BuildConfiguration
# This also includes a pack and sign of the MSAL.NET packages

parameters:
BuildPlatform: 'any cpu'
BuildConfiguration: 'release'
MsalClientSemVer: '4.55.0-devopsbuild'
MsalSourceDir: 'microsoft-authentication-library-for-dotnet\' #Default MSAL Location

steps:

- template: template-OneBranch-CI-libsandsamples.yaml
parameters:
Solution: 'microsoft-authentication-library-for-dotnet/LibsAndSamples.sln'
MsalClientSemVer: $(MsalClientSemVer) #Default MSAL package version
MsalSourceDir: $(MsalSourceDir) #Default MSAL root directory
PipelineType: $(PipelineType) #Build type

- template: template-pack-and-sign-all-nugets.yaml
93 changes: 93 additions & 0 deletions build/template-OneBranch-releasebuild-netonly.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@

# Release build for -netonly package should be triggered after the normal release build
variables:
BuildPlatform: 'AnyCPU'
BuildConfiguration: 'Release'
ProjectFilePath: '$(Build.SourcesDirectory)\src\client\Microsoft.Identity.Client\Microsoft.Identity.Client.csproj'
ProjectFolderPath: '$(Build.SourcesDirectory)\src\client\Microsoft.Identity.Client'

steps:
- template: template-prebuild-code-analysis.yaml

- task: VSBuild@1
displayName: 'Restore $(ProjectFilePath)'
inputs:
solution: $(ProjectFilePath)
msbuildArgs: '/t:restore /p:NET_ONLY_INTERNAL_PACKAGE=true'
platform: ${{ variables.BuildPlatform }}
configuration: ${{ variables.BuildConfiguration }}

- task: VSBuild@1
displayName: 'Build $(ProjectFilePath)'
inputs:
solution: $(ProjectFilePath)
msbuildArgs: '/p:RunCodeAnalysis=false /p:MsalClientSemVer=$(MsalClientSemVer) /p:SourceLinkCreate=true /p:ContinousIntegrationBuild=true /p:NET_ONLY_INTERNAL_PACKAGE=true'
platform: ${{ variables.BuildPlatform }}
configuration: ${{ variables.BuildConfiguration }}
maximumCpuCount: true

- template: template-sign-binary.yaml
parameters:
FolderPath: '${{ variables.ProjectFolderPath }}'
Pattern: '**\bin\**\Microsoft.Identity.Client.dll'

- task: VSBuild@1
displayName: 'Pack ${{ variables.ProjectFilePath }}'
inputs:
solution: ${{ variables.ProjectFilePath }}
msbuildArgs: '/t:pack /p:nobuild=true /p:IncludeSymbols=true /p:NET_ONLY_INTERNAL_PACKAGE=true'
configuration: ${{ variables.BuildConfiguration }}

- task: CopyFiles@2
displayName: 'Copy Files to: $(Build.ArtifactStagingDirectory)\packages'
inputs:
SourceFolder: '$(Build.SourcesDirectory)\'
Contents: '**\*nupkg'
TargetFolder: '$(Build.ArtifactStagingDirectory)\packages'
flattenFolders: true

- task: SFP.build-tasks.custom-build-task-1.EsrpCodeSigning@1
displayName: 'Sign Packages'
inputs:
ConnectedServiceName: 'IDDP Code Signing'
FolderPath: '$(Build.ArtifactStagingDirectory)\packages'
Pattern: '*nupkg'
signConfigType: inlineSignParams
inlineOperation: |
[
{
"keyCode": "CP-401405",
"operationSetCode": "NuGetSign",
"parameters": [ ],
"toolName": "sign",
"toolVersion": "1.0"
},
{
"keyCode": "CP-401405",
"operationSetCode": "NuGetVerify",
"parameters": [ ],
"toolName": "sign",
"toolVersion": "1.0"
}
]
SessionTimeout: 20
VerboseLogin: true
timeoutInMinutes: 5

- task: CmdLine@2
displayName: 'Verify packages are signed'
inputs:
script: 'dotnet nuget verify $(Build.ArtifactStagingDirectory)\packages\*.nupkg'

- task: AzureArtifacts.manifest-generator-task.manifest-generator-task.ManifestGeneratorTask@0
displayName: 'Get Software Bill Of Materials (SBOM)'
inputs:
BuildDropPath: '$(Build.ArtifactStagingDirectory)\packages'

- task: PublishPipelineArtifact@1
displayName: 'Publish Artifact: packages'
inputs:
targetPath: '$(Build.ArtifactStagingDirectory)\packages'
artifactName: packages

- template: template-publish-analysis-and-cleanup.yaml

0 comments on commit ea8c0e0

Please sign in to comment.