Skip to content
This repository was archived by the owner on May 1, 2024. It is now read-only.

Commit bbcb5db

Browse files
authored
Add APIScan (#15872)
* Add API Scan * Update xf-release.yml * Add APIScan artifact * Update build-windows.yml * Update xf-release.yml * Revert "Update xf-release.yml" This reverts commit 5de7c80.
1 parent 9e2af8f commit bbcb5db

File tree

3 files changed

+52
-2
lines changed

3 files changed

+52
-2
lines changed

build/automation/tsaoptions-v2.json

+11
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"codebaseName": "xamarin.forms_main",
3+
"notificationAliases": [
4+
5+
],
6+
"instanceUrl": "https://devdiv.visualstudio.com/",
7+
"projectName": "DevDiv",
8+
"areaPath": "DevDiv\\VS Client - Runtime SDKs\\Xamarin Forms",
9+
"iterationPath": "DevDiv",
10+
"allTools": true
11+
}

build/steps/build-windows.yml

+23-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ parameters:
88
runTests: 'true'
99
artifact: 'nuget'
1010
artifactBinaries: 'win_build'
11-
artifactDocs: 'pack-docs'
11+
artifactApiscan: 'apiscan'
1212
publishArtifacts: true
1313

1414
steps:
@@ -226,6 +226,28 @@ steps:
226226
CleanTargetFolder: false
227227
flattenFolders: false
228228

229+
- task: CopyFiles@2
230+
displayName: 'Copy releasable binaries for compliance scanning'
231+
condition: eq(variables['BuildConfiguration'], 'Release')
232+
inputs:
233+
Contents: |
234+
**/bin/Release/**/Xamarin.Forms.*.dll
235+
**/bin/Release/**/FormsViewGroup.dll
236+
!**/bin/Release/**/*.UnitTests.dll
237+
!**/bin/Release/**/*.ControlGallery.*.dll
238+
!**/bin/Release/**/Xamarin.Forms.Controls.dll
239+
TargetFolder: '$(build.artifactstagingdirectory)/${{ parameters.artifactApiscan }}'
240+
CleanTargetFolder: true
241+
flattenFolders: true
242+
243+
- ${{ if eq(parameters.publishArtifacts, 'true') }}:
244+
- task: PublishBuildArtifacts@1
245+
displayName: 'Publish Releasable Binaries for compliance scanning'
246+
condition: eq(variables['BuildConfiguration'], 'Release')
247+
inputs:
248+
PathtoPublish: '$(build.artifactstagingdirectory)/${{ parameters.artifactApiscan }}'
249+
ArtifactName: ${{ parameters.artifactApiscan }}
250+
229251
- ${{ if eq(parameters.publishArtifacts, 'true') }}:
230252
- task: PublishBuildArtifacts@1
231253
displayName: 'Publish Artifact: ${{ parameters.artifactBinaries }}'

eng/xf-release.yml

+18-1
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ parameters:
2929
name: Windows
3030
artifact: nuget
3131
binariesArtifact: win_build
32-
docsArtifact: xml-docs
32+
apiscanArtifact: apiscan
3333

3434
- name: Skip1ESComplianceTasks
3535
default: false
@@ -109,6 +109,10 @@ extends:
109109
displayName: 'Publish the ${{ parameters.PackPlatform.binariesArtifact }} artifacts'
110110
artifactName: ${{ parameters.PackPlatform.binariesArtifact }}
111111
targetPath: '$(Build.ArtifactStagingDirectory)'
112+
- output: pipelineArtifact
113+
displayName: 'Publish the ${{ parameters.PackPlatform.apiscanArtifact }} artifacts'
114+
artifactName: ${{ parameters.PackPlatform.apiscanArtifact }}
115+
targetPath: '$(Build.ArtifactStagingDirectory)/${{ parameters.PackPlatform.apiscanArtifact }}'
112116
variables:
113117
BuildConfiguration: Release
114118
steps:
@@ -122,6 +126,7 @@ extends:
122126
artifact: ${{ parameters.PackPlatform.artifact }}
123127
artifactBinaries: ${{ parameters.PackPlatform.binariesArtifact }}
124128
artifactsTargetFolder: '$(Build.ArtifactStagingDirectory)'
129+
artifactApiscan: '${{ parameters.PackPlatform.apiscanArtifact }}'
125130

126131
- job: nuget_pack_hosted
127132
workspace:
@@ -151,6 +156,18 @@ extends:
151156
binariesArtifact: ${{ parameters.PackPlatform.binariesArtifact }}
152157
artifactsTargetFolder: '$(build.artifactstagingdirectory)/${{ parameters.PackPlatform.artifact }}'
153158

159+
- template: security/apiscan/v0.yml@xamarin-templates
160+
parameters:
161+
windowsPoolName: ${{ parameters.VM_IMAGE_HOST.name }}
162+
windowsImageOverride: ${{ parameters.VM_IMAGE_HOST.image }}
163+
stageDependsOn: 'windows'
164+
timeoutInMinutes: 600
165+
scanArtifacts: [ '${{ parameters.PackPlatform.artifact }}', '${{ parameters.PackPlatform.apiscanArtifact }}' ]
166+
sourceGdnSuppressionFile: '$(Build.SourcesDirectory)\build\automation\guardian\source.gdnsuppress'
167+
tsaConfigFile: '$(Build.SourcesDirectory)\build\automation\tsaoptions-v2.json'
168+
apiScanSoftwareName: 'Xamarin.Forms'
169+
apiScanSoftwareVersionNum: '5.0.0'
170+
154171
- stage: nuget_signing
155172
dependsOn: windows
156173
displayName: Sign Nuget

0 commit comments

Comments
 (0)