Skip to content

Commit 6e78cc9

Browse files
Add support for custom CG ignore directories in source-build pipeline templates (#16086)
Co-authored-by: Matt Thalman <[email protected]>
1 parent 3e8ada7 commit 6e78cc9

File tree

6 files changed

+32
-2
lines changed

6 files changed

+32
-2
lines changed

eng/common/templates-official/job/source-build.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ parameters:
3131
# container and pool.
3232
platform: {}
3333

34+
# Optional list of directories to ignore for component governance scans.
35+
cgIgnoreDirectories: []
36+
3437
# If set to true and running on a non-public project,
3538
# Internal blob storage locations will be enabled.
3639
# This is not enabled by default because many repositories do not need internal sources
@@ -73,3 +76,4 @@ jobs:
7376
- template: /eng/common/templates-official/steps/source-build.yml
7477
parameters:
7578
platform: ${{ parameters.platform }}
79+
cgIgnoreDirectories: ${{ parameters.cgIgnoreDirectories }}

eng/common/templates-official/jobs/source-build.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ parameters:
2121
# one job runs on 'defaultManagedPlatform'.
2222
platforms: []
2323

24+
# Optional list of directories to ignore for component governance scans.
25+
cgIgnoreDirectories: []
26+
2427
# If set to true and running on a non-public project,
2528
# Internal nuget and blob storage locations will be enabled.
2629
# This is not enabled by default because many repositories do not need internal sources
@@ -44,11 +47,13 @@ jobs:
4447
parameters:
4548
jobNamePrefix: ${{ parameters.jobNamePrefix }}
4649
platform: ${{ platform }}
50+
cgIgnoreDirectories: ${{ parameters.cgIgnoreDirectories }}
4751
enableInternalSources: ${{ parameters.enableInternalSources }}
4852

4953
- ${{ if eq(length(parameters.platforms), 0) }}:
5054
- template: /eng/common/templates-official/job/source-build.yml
5155
parameters:
5256
jobNamePrefix: ${{ parameters.jobNamePrefix }}
5357
platform: ${{ parameters.defaultManagedPlatform }}
58+
cgIgnoreDirectories: ${{ parameters.cgIgnoreDirectories }}
5459
enableInternalSources: ${{ parameters.enableInternalSources }}

eng/common/templates-official/steps/source-build.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ parameters:
1212
# the usage of the properties on this object is split between the 'job' and 'steps' templates.
1313
platform: {}
1414

15+
# Optional list of directories to ignore for component governance scans.
16+
cgIgnoreDirectories: []
17+
1518
steps:
1619
# Build. Keep it self-contained for simple reusability. (No source-build-specific job variables.)
1720
- script: |
@@ -126,4 +129,7 @@ steps:
126129
- task: ComponentGovernanceComponentDetection@0
127130
displayName: Component Detection (Exclude upstream cache)
128131
inputs:
129-
ignoreDirectories: '$(System.DefaultWorkingDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache'
132+
${{ if eq(length(parameters.cgIgnoreDirectories), 0) }}:
133+
ignoreDirectories: '$(System.DefaultWorkingDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache'
134+
${{ else }}:
135+
ignoreDirectories: ${{ join(',', parameters.cgIgnoreDirectories) }}

eng/common/templates/job/source-build.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ parameters:
3131
# container and pool.
3232
platform: {}
3333

34+
# Optional list of directories to ignore for component governance scans.
35+
cgIgnoreDirectories: []
36+
3437
# If set to true and running on a non-public project,
3538
# Internal blob storage locations will be enabled.
3639
# This is not enabled by default because many repositories do not need internal sources
@@ -72,3 +75,4 @@ jobs:
7275
- template: /eng/common/templates/steps/source-build.yml
7376
parameters:
7477
platform: ${{ parameters.platform }}
78+
cgIgnoreDirectories: ${{ parameters.cgIgnoreDirectories }}

eng/common/templates/jobs/source-build.yml

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,9 @@ parameters:
2121
# one job runs on 'defaultManagedPlatform'.
2222
platforms: []
2323

24+
# Optional list of directories to ignore for component governance scans.
25+
cgIgnoreDirectories: []
26+
2427
# If set to true and running on a non-public project,
2528
# Internal nuget and blob storage locations will be enabled.
2629
# This is not enabled by default because many repositories do not need internal sources
@@ -44,11 +47,13 @@ jobs:
4447
parameters:
4548
jobNamePrefix: ${{ parameters.jobNamePrefix }}
4649
platform: ${{ platform }}
50+
cgIgnoreDirectories: ${{ parameters.cgIgnoreDirectories }}
4751
enableInternalSources: ${{ parameters.enableInternalSources }}
4852

4953
- ${{ if eq(length(parameters.platforms), 0) }}:
5054
- template: /eng/common/templates/job/source-build.yml
5155
parameters:
5256
jobNamePrefix: ${{ parameters.jobNamePrefix }}
5357
platform: ${{ parameters.defaultManagedPlatform }}
58+
cgIgnoreDirectories: ${{ parameters.cgIgnoreDirectories }}
5459
enableInternalSources: ${{ parameters.enableInternalSources }}

eng/common/templates/steps/source-build.yml

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,9 @@ parameters:
1212
# the usage of the properties on this object is split between the 'job' and 'steps' templates.
1313
platform: {}
1414

15+
# Optional list of directories to ignore for component governance scans.
16+
cgIgnoreDirectories: []
17+
1518
steps:
1619
# Build. Keep it self-contained for simple reusability. (No source-build-specific job variables.)
1720
- script: |
@@ -126,4 +129,7 @@ steps:
126129
- task: ComponentGovernanceComponentDetection@0
127130
displayName: Component Detection (Exclude upstream cache)
128131
inputs:
129-
ignoreDirectories: '$(System.DefaultWorkingDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache'
132+
${{ if eq(length(parameters.cgIgnoreDirectories), 0) }}:
133+
ignoreDirectories: '$(System.DefaultWorkingDirectory)/artifacts/source-build/self/src/artifacts/obj/source-built-upstream-cache'
134+
${{ else }}:
135+
ignoreDirectories: ${{ join(',', parameters.cgIgnoreDirectories) }}

0 commit comments

Comments
 (0)