Skip to content

Commit 0cb6251

Browse files
authored
Detect if Dockerfile for docker-ptf is modified (#23869)
Why I did it Detect changes in PR for dockers/docker-ptf/Dockerfile.j2 and pass flag to sonic-mgmt tests. This change will be used in sonic-mgmt tests to download the PR built docker-ptf.gz image instead of testing against the latest tag which was published from master branch builds. Work item tracking Microsoft ADO (number only): 34093272 How I did it Added code to detect change and pass PTF_MODIFIED flag. How to verify it Can be tested after PR merges in sonic-mgmt and elastic test. Tested branch (Please provide the tested image version) NA Description for the changelog [docker-ptf] Detect if PR modifies docker-ptf Dockerfile. Pass flag to sonic-mgmt test stage in pipeline if PR modifies docker-ptf Dockerfile.
1 parent 744e74f commit 0cb6251

File tree

2 files changed

+30
-0
lines changed

2 files changed

+30
-0
lines changed

.azure-pipelines/azure-pipelines-image-template.yml

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,26 @@ jobs:
8282
BUILD_REASON=$(Build.Reason)
8383
echo "Build.Reason = $BUILD_REASON"
8484
echo "Build.DefinitionName = $BUILD_DEFINITIONNAME"
85+
if [[ "$BUILD_REASON" == "PullRequest" ]]; then
86+
echo "Checking for changes to dockers/docker-ptf/Dockerfile.j2 in PR..."
87+
# Get the target branch and check for changes
88+
TARGET_BRANCH="origin/$(System.PullRequest.TargetBranch)"
89+
echo "Comparing against target branch: $TARGET_BRANCH"
90+
# Fetch target branch to ensure we have the latest
91+
git fetch origin $(System.PullRequest.TargetBranch)
92+
# Check if docker-ptf Dockerfile.j2 has changes
93+
if git diff --name-only $TARGET_BRANCH...HEAD | grep -q "dockers/docker-ptf/Dockerfile.j2"; then
94+
echo "docker-ptf/Dockerfile.j2 has been modified in this PR"
95+
echo "##vso[task.setvariable variable=PTF_MODIFIED;isOutput=true]true"
96+
else
97+
echo "docker-ptf/Dockerfile.j2 has not been modified in this PR"
98+
echo "##vso[task.setvariable variable=PTF_MODIFIED;isOutput=true]false"
99+
fi
100+
else
101+
echo "Not a PR build, setting PTF_MODIFIED to false"
102+
echo "##vso[task.setvariable variable=PTF_MODIFIED;isOutput=true]false"
103+
fi
104+
85105
if [[ "$BUILD_REASON" != "PullRequest" && "$BUILD_DEFINITIONNAME" == "Azure.sonic-buildimage.official.vs" ]]
86106
then
87107
PORT=443
@@ -100,6 +120,7 @@ jobs:
100120
mv target/* $(Build.ArtifactStagingDirectory)/target/
101121
env:
102122
REGISTRY_PASSWD: $(REGISTRY_PASSWD)
123+
name: PublishAndSetPtfTag
103124
displayName: Publish to Docker Registry and Copy Artifacts
104125
condition: always()
105126
- publish: $(Build.ArtifactStagingDirectory)

azure-pipelines.yml

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -105,6 +105,8 @@ stages:
105105
value: veos_vtb
106106
- name: testbed_file
107107
value: vtestbed.csv
108+
- name: PTF_MODIFIED
109+
value: $[ coalesce(stageDependencies.BuildVS.vs.outputs['PublishAndSetPtfTag.PTF_MODIFIED'], 'false') ]
108110

109111
# For every test job:
110112
# continueOnError: false means it's a required test job and will block merge if it fails
@@ -207,6 +209,7 @@ stages:
207209
KVM_IMAGE_BRANCH: $(BUILD_BRANCH)
208210
MGMT_BRANCH: $(BUILD_BRANCH)
209211
COMMON_EXTRA_PARAMS: "--disable_sai_validation "
212+
PTF_MODIFIED: ${{ eq(variables['PTF_MODIFIED'], 'true') }}
210213

211214
- job: impacted_area_t0_2vlans_elastictest
212215
displayName: "impacted-area-kvmtest-t0-2vlans by Elastictest"
@@ -235,6 +238,7 @@ stages:
235238
KVM_IMAGE_BRANCH: $(BUILD_BRANCH)
236239
MGMT_BRANCH: $(BUILD_BRANCH)
237240
COMMON_EXTRA_PARAMS: "--disable_sai_validation "
241+
PTF_MODIFIED: ${{ eq(variables['PTF_MODIFIED'], 'true') }}
238242

239243
- job: impacted_area_t1_lag_elastictest
240244
displayName: "impacted-area-kvmtest-t1-lag by Elastictest"
@@ -264,6 +268,7 @@ stages:
264268
KVM_IMAGE_BRANCH: $(BUILD_BRANCH)
265269
MGMT_BRANCH: $(BUILD_BRANCH)
266270
COMMON_EXTRA_PARAMS: "--disable_sai_validation "
271+
PTF_MODIFIED: ${{ eq(variables['PTF_MODIFIED'], 'true') }}
267272

268273
- job: impacted_area_dualtor_elastictest
269274
displayName: "impacted-area-kvmtest-dualtor by Elastictest"
@@ -293,6 +298,7 @@ stages:
293298
COMMON_EXTRA_PARAMS: "--disable_loganalyzer --disable_sai_validation "
294299
KVM_IMAGE_BRANCH: $(BUILD_BRANCH)
295300
MGMT_BRANCH: $(BUILD_BRANCH)
301+
PTF_MODIFIED: ${{ eq(variables['PTF_MODIFIED'], 'true') }}
296302

297303
- job: impacted_area_multi_asic_elastictest
298304
displayName: "impacted-area-kvmtest-multi-asic-t1 by Elastictest"
@@ -321,6 +327,7 @@ stages:
321327
KVM_IMAGE_BRANCH: $(BUILD_BRANCH)
322328
MGMT_BRANCH: $(BUILD_BRANCH)
323329
COMMON_EXTRA_PARAMS: "--disable_sai_validation "
330+
PTF_MODIFIED: ${{ eq(variables['PTF_MODIFIED'], 'true') }}
324331

325332
- job: impacted_area_t0_sonic_elastictest
326333
displayName: "impacted-area-kvmtest-t0-sonic by Elastictest"
@@ -350,6 +357,7 @@ stages:
350357
COMMON_EXTRA_PARAMS: "--neighbor_type=sonic --disable_sai_validation "
351358
VM_TYPE: vsonic
352359
MGMT_BRANCH: $(BUILD_BRANCH)
360+
PTF_MODIFIED: ${{ eq(variables['PTF_MODIFIED'], 'true') }}
353361
SPECIFIC_PARAM: '[
354362
{"name": "bgp/test_bgp_fact.py", "param": "--neighbor_type=sonic --enable_macsec --macsec_profile=128_SCI,256_XPN_SCI"},
355363
{"name": "macsec", "param": "--neighbor_type=sonic --enable_macsec --macsec_profile=128_SCI,256_XPN_SCI"}
@@ -381,6 +389,7 @@ stages:
381389
KVM_IMAGE_BRANCH: $(BUILD_BRANCH)
382390
COMMON_EXTRA_PARAMS: "--disable_sai_validation "
383391
MGMT_BRANCH: $(BUILD_BRANCH)
392+
PTF_MODIFIED: ${{ eq(variables['PTF_MODIFIED'], 'true') }}
384393
SPECIFIC_PARAM: '[
385394
{"name": "dash/test_dash_vnet.py", "param": "--skip_dataplane_checking"}
386395
]'

0 commit comments

Comments
 (0)