@@ -8,29 +8,28 @@ parameters:
88 condition : ' '
99
1010steps :
11- - ${{ if ne(parameters.overrideGuardianVersion, '') }} :
12- - powershell : |
13- $content = Get-Content $(GuardianPackagesConfigFile)
14-
15- Write-Host "packages.config content was:`n$content"
16-
17- $content = $content.Replace('$(DefaultGuardianVersion)', '$(GuardianVersion)')
18- $content | Set-Content $(GuardianPackagesConfigFile)
19-
20- Write-Host "packages.config content updated to:`n$content"
21- displayName: Use overridden Guardian version ${{ parameters.overrideGuardianVersion }}
11+ - task : NuGetAuthenticate@1
12+ inputs :
13+ nuGetServiceConnections : GuardianConnect
2214
2315- task : NuGetToolInstaller@1
2416 displayName : ' Install NuGet.exe'
2517
26- - task : NuGetCommand@2
27- displayName : ' Install Guardian'
28- inputs :
29- restoreSolution : $(Build.SourcesDirectory)\eng\common\sdl\packages.config
30- feedsToUse : config
31- nugetConfigPath : $(Build.SourcesDirectory)\eng\common\sdl\NuGet.config
32- externalFeedCredentials : GuardianConnect
33- restoreDirectory : $(Build.SourcesDirectory)\.packages
18+ - ${{ if ne(parameters.overrideGuardianVersion, '') }} :
19+ - pwsh : |
20+ Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl
21+ . .\sdl.ps1
22+ $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts -Version ${{ parameters.overrideGuardianVersion }}
23+ Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation"
24+ displayName: Install Guardian (Overridden)
25+
26+ - ${{ if eq(parameters.overrideGuardianVersion, '') }} :
27+ - pwsh : |
28+ Set-Location -Path $(Build.SourcesDirectory)\eng\common\sdl
29+ . .\sdl.ps1
30+ $guardianCliLocation = Install-Gdn -Path $(Build.SourcesDirectory)\.artifacts
31+ Write-Host "##vso[task.setvariable variable=GuardianCliLocation]$guardianCliLocation"
32+ displayName: Install Guardian
3433
3534 - ${{ if ne(parameters.overrideParameters, '') }} :
3635 - powershell : ${{ parameters.executeAllSdlToolsScript }} ${{ parameters.overrideParameters }}
4039
4140- ${{ if eq(parameters.overrideParameters, '') }} :
4241 - powershell : ${{ parameters.executeAllSdlToolsScript }}
43- -GuardianPackageName Microsoft.Guardian.Cli.$(GuardianVersion )
42+ -GuardianCliLocation $(GuardianCliLocation )
4443 -NugetPackageDirectory $(Build.SourcesDirectory)\.packages
4544 -AzureDevOpsAccessToken $(dn-bot-dotnet-build-rw-code-rw)
4645 ${{ parameters.additionalParameters }}
@@ -62,7 +61,28 @@ steps:
6261 c
6362 i
6463 condition : succeededOrFailed()
64+
6565 - publish : $(Agent.BuildDirectory)/.gdn
6666 artifact : GuardianConfiguration
6767 displayName : Publish GuardianConfiguration
68+ condition : succeededOrFailed()
69+
70+ # Publish the SARIF files in a container named CodeAnalysisLogs to enable integration
71+ # with the "SARIF SAST Scans Tab" Azure DevOps extension
72+ - task : CopyFiles@2
73+ displayName : Copy SARIF files
74+ inputs :
75+ flattenFolders : true
76+ sourceFolder : $(Agent.BuildDirectory)/.gdn/rc/
77+ contents : ' **/*.sarif'
78+ targetFolder : $(Build.SourcesDirectory)/CodeAnalysisLogs
79+ condition : succeededOrFailed()
80+
81+ # Use PublishBuildArtifacts because the SARIF extension only checks this case
82+ # see microsoft/sarif-azuredevops-extension#4
83+ - task : PublishBuildArtifacts@1
84+ displayName : Publish SARIF files to CodeAnalysisLogs container
85+ inputs :
86+ pathToPublish : $(Build.SourcesDirectory)/CodeAnalysisLogs
87+ artifactName : CodeAnalysisLogs
6888 condition : succeededOrFailed()
0 commit comments