Skip to content

Commit 2bdefbc

Browse files
Update common Docker engineering infrastructure with latest
1 parent 8ae46a7 commit 2bdefbc

File tree

8 files changed

+85
-37
lines changed

8 files changed

+85
-37
lines changed

eng/common/templates/1es.yml

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ parameters:
3232
name: $(defaultSourceAnalysisPoolName)
3333
image: $(defaultSourceAnalysisPoolImage)
3434
os: windows
35+
# Container image SBOMs are generated manually during the build job. 1ESPT's
36+
# automatic SBOM generation only adds unnecessary steps and artifacts to
37+
# builds. SBOM is not needed for JSON outputs. If a pipeline outputs binary
38+
# artifacts that ship to customers, then set this parameter to true.
39+
- name: enableSbom
40+
type: boolean
41+
default: false
3542

3643
resources:
3744
repositories:
@@ -47,10 +54,8 @@ extends:
4754
templateParameters:
4855
pool: ${{ parameters.pool }}
4956
sdl:
50-
# Required for unofficial pipelines because we rely on the ManifestGeneratorTask that is
51-
# automatically installed by 1ES pipeline templates
5257
sbom:
53-
enabled: true
58+
enabled: ${{ parameters.enableSbom }}
5459
binskim:
5560
enabled: true
5661
componentgovernance:

eng/common/templates/jobs/publish.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -236,7 +236,7 @@ jobs:
236236

237237
- template: /eng/common/templates/steps/annotate-eol-digests.yml@self
238238
parameters:
239-
publishConfig: ${{ parameters.publishConfig }}
239+
acr: ${{ parameters.publishConfig.publishAcr }}
240240
dataFile: $(artifactsPath)/eol-annotation-data/eol-annotation-data.json
241241

242242
- script: >
@@ -284,8 +284,8 @@ jobs:
284284
--task "🟪 Publish Image Info"
285285
--task "🟪 Ingest Kusto Image Info"
286286
--task "🟪 Generate EOL Annotation Data"
287-
--task "🟪 Annotate EOL Images"
288-
--task "🟪 Wait for Annotation Ingestion"
287+
--task "🟪 Annotate EOL Images (${{ parameters.publishConfig.publishAcr.server }})"
288+
--task "🟪 Wait for Annotation Ingestion (${{ parameters.publishConfig.publishAcr.server }})"
289289
$(dryRunArg)
290290
$(imageBuilder.commonCmdArgs)
291291
displayName: Post Publish Notification

eng/common/templates/stages/dotnet/publish-config-nonprod.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ stages:
6161

6262
publicMirrorAcr:
6363
server: $(public-mirror.server)
64+
resourceGroup: $(public-mirror.resourceGroup)
65+
subscription: $(public-mirror.subscription)
66+
serviceConnection:
67+
name: $(public-mirror.serviceConnectionName)
68+
id: $(public-mirror.serviceConnection.id)
69+
tenantId: $(public-mirror.serviceConnection.tenantId)
70+
clientId: $(public-mirror.serviceConnection.clientId)
6471

6572
buildAcr:
6673
server: $(acr-staging-test.server)
@@ -73,6 +80,12 @@ stages:
7380
clientId: $(build-test.serviceConnection.clientId)
7481
tenantId: $(testTenant)
7582

83+
cleanServiceConnection:
84+
name: $(clean-test.serviceConnectionName)
85+
id: $(clean-test.serviceConnection.id)
86+
clientId: $(clean-test.serviceConnection.clientId)
87+
tenantId: $(testTenant)
88+
7689
testServiceConnection:
7790
name: $(test-nonprod.serviceConnectionName)
7891
id: $(test-nonprod.serviceConnection.id)

eng/common/templates/stages/dotnet/publish-config-prod.yml

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,13 @@ stages:
6161

6262
publicMirrorAcr:
6363
server: $(public-mirror.server)
64+
resourceGroup: $(public-mirror.resourceGroup)
65+
subscription: $(public-mirror.subscription)
66+
serviceConnection:
67+
name: $(public-mirror.serviceConnectionName)
68+
id: $(public-mirror.serviceConnection.id)
69+
tenantId: $(public-mirror.serviceConnection.tenantId)
70+
clientId: $(public-mirror.serviceConnection.clientId)
6471

6572
buildAcr:
6673
server: $(acr-staging.server)
@@ -73,6 +80,12 @@ stages:
7380
clientId: $(build.serviceConnection.clientId)
7481
tenantId: $(build.serviceConnection.tenantId)
7582

83+
cleanServiceConnection:
84+
name: $(clean.serviceConnectionName)
85+
id: $(clean.serviceConnection.id)
86+
clientId: $(clean.serviceConnection.clientId)
87+
tenantId: $(clean.serviceConnection.tenantId)
88+
7689
testServiceConnection:
7790
name: $(test.serviceConnectionName)
7891
id: $(test.serviceConnection.id)

eng/common/templates/steps/annotate-eol-digests.yml

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
parameters:
2-
- name: publishConfig
2+
- name: acr
33
type: object
44
# Path to EOL annotation data JSON file generated by 'generateEolAnnotationData*' command
55
- name: dataFile
@@ -10,33 +10,32 @@ steps:
1010
displayName: Create Annotation Digests Directory
1111
- template: /eng/common/templates/steps/run-imagebuilder.yml@self
1212
parameters:
13-
name: AnnotateEOLImages
14-
displayName: Annotate EOL Images
13+
displayName: Annotate EOL Images (${{ parameters.acr.server }})
1514
serviceConnections:
1615
- name: acr
17-
id: ${{ parameters.publishConfig.publishAcr.serviceConnection.id }}
18-
tenantId: ${{ parameters.publishConfig.publishAcr.serviceConnection.tenantId }}
19-
clientId: ${{ parameters.publishConfig.publishAcr.serviceConnection.clientId }}
16+
id: ${{ parameters.acr.serviceConnection.id }}
17+
tenantId: ${{ parameters.acr.serviceConnection.tenantId }}
18+
clientId: ${{ parameters.acr.serviceConnection.clientId }}
2019
internalProjectName: internal
2120
condition: and(succeeded(), eq(variables['publishEolAnnotations'], 'true'))
2221
args: >-
2322
annotateEolDigests
24-
${{ parameters.dataFile }}
25-
${{ parameters.publishConfig.publishAcr.server }}
26-
${{ parameters.publishConfig.publishAcr.repoPrefix }}
23+
"${{ parameters.dataFile }}"
24+
"${{ parameters.acr.server }}"
25+
"${{ parameters.acr.repoPrefix }}"
2726
$(artifactsPath)/annotation-digests/annotation-digests.txt
2827
$(dryRunArg)
2928
- template: /eng/common/templates/steps/publish-artifact.yml@self
3029
parameters:
3130
path: $(Build.ArtifactStagingDirectory)/annotation-digests
32-
artifactName: annotation-digests-$(System.JobAttempt)
33-
displayName: Publish Annotation Digests List
31+
artifactName: annotation-digests-${{ parameters.acr.server }}-$(System.JobAttempt)
32+
displayName: Publish Annotation Digests List (${{ parameters.acr.server }})
3433
internalProjectName: internal
3534
publicProjectName: public
3635
condition: and(succeeded(), eq(variables['publishEolAnnotations'], 'true'))
3736
- template: /eng/common/templates/steps/run-imagebuilder.yml@self
3837
parameters:
39-
displayName: Wait for Annotation Ingestion
38+
displayName: Wait for Annotation Ingestion (${{ parameters.acr.server }})
4039
serviceConnections:
4140
- name: mar
4241
id: $(marStatus.serviceConnection.id)
Lines changed: 15 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,33 @@
11
parameters:
22
repo: null
3-
subscription: null
4-
resourceGroup: null
53
acr: null
64
action: null
75
age: null
8-
customArgs: ""
6+
customArgs: "--dry-run"
97
internalProjectName: null
8+
publishConfig: null
109
steps:
1110
- template: /eng/common/templates/steps/run-imagebuilder.yml@self
1211
parameters:
13-
displayName: Clean ACR Images - ${{ parameters.repo }}
12+
# Options are documented in CleanAcrImagesOptions.cs
13+
${{ if eq(parameters.action, 'delete') }}:
14+
displayName: "Delete ${{ parameters.repo }}"
15+
${{ elseif parameters.age }}:
16+
displayName: "Clean ${{ parameters.repo }} (${{ parameters.action }} > ${{ parameters.age }}d)"
17+
${{ else }}:
18+
displayName: "Clean ${{ parameters.repo }} (${{ parameters.action }})"
1419
serviceConnections:
1520
- name: acr
16-
id: $(clean.serviceConnection.id)
17-
tenantId: $(clean.serviceConnection.tenantId)
18-
clientId: $(clean.serviceConnection.clientId)
21+
id: ${{ parameters.publishConfig.cleanServiceConnection.id }}
22+
tenantId: ${{ parameters.publishConfig.cleanServiceConnection.tenantId }}
23+
clientId: ${{ parameters.publishConfig.cleanServiceConnection.clientId }}
1924
internalProjectName: ${{ parameters.internalProjectName }}
2025
args: >-
2126
cleanAcrImages
2227
${{ parameters.repo }}
23-
${{ parameters.subscription }}
24-
${{ parameters.resourceGroup }}
25-
${{ parameters.acr }}
28+
${{ parameters.acr.subscription }}
29+
${{ parameters.acr.resourceGroup }}
30+
${{ parameters.acr.server }}
2631
--action ${{ parameters.action }}
2732
--age ${{ parameters.age }}
2833
${{ parameters.customArgs }}

eng/common/templates/steps/validate-branch.yml

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,39 @@ steps:
77
- powershell: |
88
if ("$env:ONEESPT_BUILDTYPE" -eq "Unofficial")
99
{
10-
echo "Build is from an unofficial pipeline, continuing..."
10+
echo "Build is from an unofficial pipeline, continuing."
1111
exit 0
1212
}
1313
14-
if ("$(officialBranches)".Split(',').Contains("$(sourceBranch)") `
15-
-and "$(officialRepoPrefixes)".Split(',').Contains("${{ parameters.publishConfig.publishAcr.repoPrefix }}"))
14+
$isOfficialRepoPrefix = "$(officialRepoPrefixes)".Split(',').Contains("${{ parameters.publishConfig.publishAcr.repoPrefix }}")
15+
if (-not $isOfficialRepoPrefix)
1616
{
17-
echo "Conditions met for official build, continuing..."
17+
echo "This build will not publish to an official repo prefix, continuing."
18+
echo "Publish repo prefix: ${{ parameters.publishConfig.publishAcr.repoPrefix }}"
19+
echo "Official repo prefixes: $(officialRepoPrefixes)"
1820
exit 0
1921
}
2022
21-
if (-not "$(officialRepoPrefixes)".Split(',').Contains("${{ parameters.publishConfig.publishAcr.repoPrefix }}"))
23+
$isOfficialBranch = "$(officialBranches)".Split(',').Contains("$(sourceBranch)")
24+
if ($isOfficialBranch)
2225
{
23-
echo "This build is a test build, continuing..."
26+
echo "$(sourceBranch) is an official branch, continuing."
27+
echo "Official branches: $(officialBranches)"
2428
exit 0
2529
}
2630
27-
if ("${{ variables['overrideOfficialBranchValidation'] }}" -eq "true")
31+
$hasOfficialBranchPrefix = $false
32+
foreach ($prefix in "$(officialBranchPrefixes)".Split(',')) {
33+
if ("$(sourceBranch)".StartsWith($prefix)) {
34+
$hasOfficialBranchPrefix = $true
35+
break
36+
}
37+
}
38+
39+
if ($hasOfficialBranchPrefix)
2840
{
29-
echo "Variable overrideOfficialBranchValidation is set to true, continuing..."
41+
echo "$(sourceBranch) has an official branch prefix, continuing."
42+
echo "Official branch prefixes: $(officialBranchPrefixes)"
3043
exit 0
3144
}
3245

eng/common/templates/variables/docker-images.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
variables:
2-
imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder:2786011
2+
imageNames.imageBuilderName: mcr.microsoft.com/dotnet-buildtools/image-builder:2830238
33
imageNames.imageBuilder: $(imageNames.imageBuilderName)
44
imageNames.imageBuilder.withrepo: imagebuilder-withrepo:$(Build.BuildId)-$(System.JobId)
55
imageNames.testRunner: mcr.microsoft.com/dotnet-buildtools/prereqs:azurelinux3.0-docker-testrunner

0 commit comments

Comments
 (0)