Skip to content

Commit 2851884

Browse files
[ci] Support to skip vstest using include/exclude config file. (sonic-net#11086)
example: ├── folderA │ ├── fileA (skip vstest) │ ├── fileB │ └── fileC If we want to skip vstest when changing /folderA/fileA, and not skip vstest when changing fileB or fileC. vstest-include: ^folderA/fileA vstest-exclude: ^folderA
1 parent 83f23e2 commit 2851884

5 files changed

+19
-0
lines changed

.azure-pipelines/azure-pipelines-build.yml

+1
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ jobs:
9898
platform_rpc: nephos
9999

100100
buildSteps:
101+
- template: template-skipvstest.yml
101102
- bash: |
102103
set -ex
103104
if [ $(GROUP_NAME) == vs ]; then
+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
steps:
2+
- ${{ if eq(variables['Build.Reason'], 'PullRequest') }}:
3+
- script: |
4+
set -ex
5+
tar_branch=origin/$(System.PullRequest.TargetBranch)
6+
git diff $tar_branch..HEAD --name-only | grep -v -f .azure-pipelines/vstest-exclude && exit 0
7+
git diff $tar_branch..HEAD --name-only | grep -f .azure-pipelines/vstest-include && exit 0
8+
set +x
9+
echo "Skip vstest jobs"
10+
echo "##vso[task.setvariable variable=SKIP_VSTEST;isOutput=true]YES"
11+
name: SetVar
12+
displayName: "Check if vstest is needed."

.azure-pipelines/vstest-exclude

+3
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
^platform
2+
^.azure-pipelines
3+
^files/build/versions

.azure-pipelines/vstest-include

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
^platform/vs
2+
^.azure-pipelines/run-test-template.yml

azure-pipelines.yml

+1
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@ stages:
7777

7878
- stage: Test
7979
dependsOn: BuildVS
80+
condition: and(ne(stageDependencies.BuildVS.outputs['vs.SetVar.SKIP_VSTEST'], 'YES'), succeeded())
8081
variables:
8182
- name: inventory
8283
value: veos_vtb

0 commit comments

Comments
 (0)