@@ -7,6 +7,10 @@ trigger:
7
7
branches :
8
8
include :
9
9
- ' *'
10
+ pr :
11
+ branches :
12
+ include :
13
+ - ' *'
10
14
11
15
pool :
12
16
vmImage : ' ubuntu-20.04'
@@ -48,116 +52,126 @@ parameters:
48
52
root_dir : sonic-xcvrd
49
53
python2 : true
50
54
python3 : true
55
+ - name : artifactBranch
56
+ type : string
57
+ default : ' refs/heads/master'
51
58
52
59
jobs :
53
- - ${{ each project in parameters.project_list }} :
54
- - job : ${{ project.name }}
55
- container : sonic-slave-buster
56
- steps :
57
- - task : DownloadPipelineArtifact@2
58
- inputs :
59
- source : specific
60
- project : build
61
- pipeline : 1
62
- artifact : sonic-buildimage.vs
63
- runVersion : ' latestFromBranch'
64
- runBranch : ' refs/heads/master'
65
- displayName : " Download artifacts from latest sonic-buildimage build"
66
-
67
- - script : |
68
- set -xe
69
- sudo apt-get -y purge libhiredis-dev libnl-3-dev libnl-route-3-dev
70
- sudo dpkg -i libnl-3-200_*.deb
71
- sudo dpkg -i libnl-genl-3-200_*.deb
72
- sudo dpkg -i libnl-route-3-200_*.deb
73
- sudo dpkg -i libnl-nf-3-200_*.deb
74
- sudo dpkg -i libhiredis0.14_*.deb
75
- sudo dpkg -i libswsscommon_1.0.0_amd64.deb
76
- sudo dpkg -i python-swsscommon_1.0.0_amd64.deb
77
- sudo dpkg -i python3-swsscommon_1.0.0_amd64.deb
78
- workingDirectory: $(Pipeline.Workspace)/target/debs/buster/
79
- displayName: 'Install Debian dependencies'
80
-
81
- - script : |
82
- set -xe
83
- sudo pip2 install swsssdk-2.0.1-py2-none-any.whl
84
- sudo pip2 install sonic_py_common-1.0-py2-none-any.whl
85
- sudo pip2 install sonic_config_engine-1.0-py2-none-any.whl
86
- sudo pip2 install sonic_platform_common-1.0-py2-none-any.whl
87
- sudo pip3 install swsssdk-2.0.1-py3-none-any.whl
88
- sudo pip3 install sonic_py_common-1.0-py3-none-any.whl
89
- sudo pip3 install sonic_yang_mgmt-1.0-py3-none-any.whl
90
- sudo pip3 install sonic_yang_models-1.0-py3-none-any.whl
91
- sudo pip3 install sonic_config_engine-1.0-py3-none-any.whl
92
- sudo pip3 install sonic_platform_common-1.0-py3-none-any.whl
93
- workingDirectory: $(Pipeline.Workspace)/target/python-wheels/
94
- displayName: 'Install Python dependencies'
95
-
96
- - script : |
97
- set -ex
98
- # Install .NET CORE
99
- curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
100
- sudo apt-add-repository https://packages.microsoft.com/debian/10/prod
101
- sudo apt-get update
102
- sudo apt-get install -y dotnet-sdk-5.0
103
- displayName: "Install .NET CORE"
104
-
60
+ - job : build_test
61
+ container : sonic-slave-buster
62
+ variables :
63
+ sourceBranch : " $(Build.SourceBranch)"
64
+ steps :
65
+ - checkout : self
66
+ clean : true
67
+ - script : |
68
+ if [[ $(Build.Reason) == "Manual" ]];then
69
+ echo "##vso[task.setvariable variable=sourceBranch]${{ parameters.artifactBranch }}"
70
+ fi
71
+ if [[ $(Build.Reason) == "PullRequest" ]];then
72
+ echo "##vso[task.setvariable variable=sourceBranch]refs/heads/$(System.PullRequest.TargetBranch)"
73
+ fi
74
+ displayName: Setup artifacts download branch
75
+ - task : DownloadPipelineArtifact@2
76
+ inputs :
77
+ source : ' specific'
78
+ project : ' build'
79
+ pipeline : 142
80
+ artifact : ' sonic-buildimage.vs'
81
+ runVersion : ' latestFromBranch'
82
+ runBranch : " $(sourceBranch)"
83
+ displayName : " Download artifacts from latest sonic-buildimage build"
84
+
85
+ - script : |
86
+ set -xe
87
+ sudo apt-get -y purge libhiredis-dev libnl-3-dev libnl-route-3-dev
88
+ sudo dpkg -i libnl-3-200_*.deb
89
+ sudo dpkg -i libnl-genl-3-200_*.deb
90
+ sudo dpkg -i libnl-route-3-200_*.deb
91
+ sudo dpkg -i libnl-nf-3-200_*.deb
92
+ sudo dpkg -i libhiredis0.14_*.deb
93
+ sudo dpkg -i libswsscommon_1.0.0_amd64.deb
94
+ sudo dpkg -i python-swsscommon_1.0.0_amd64.deb
95
+ sudo dpkg -i python3-swsscommon_1.0.0_amd64.deb
96
+ workingDirectory: $(Pipeline.Workspace)/target/debs/buster/
97
+ displayName: 'Install Debian dependencies'
98
+
99
+ - script : |
100
+ set -xe
101
+ sudo pip2 install swsssdk-2.0.1-py2-none-any.whl
102
+ sudo pip2 install sonic_py_common-1.0-py2-none-any.whl
103
+ sudo pip2 install sonic_config_engine-1.0-py2-none-any.whl
104
+ sudo pip2 install sonic_platform_common-1.0-py2-none-any.whl
105
+ sudo pip3 install swsssdk-2.0.1-py3-none-any.whl
106
+ sudo pip3 install sonic_py_common-1.0-py3-none-any.whl
107
+ sudo pip3 install sonic_yang_mgmt-1.0-py3-none-any.whl
108
+ sudo pip3 install sonic_yang_models-1.0-py3-none-any.whl
109
+ sudo pip3 install sonic_config_engine-1.0-py3-none-any.whl
110
+ sudo pip3 install sonic_platform_common-1.0-py3-none-any.whl
111
+ workingDirectory: $(Pipeline.Workspace)/target/python-wheels/
112
+ displayName: 'Install Python dependencies'
113
+
114
+ - script : |
115
+ set -ex
116
+ # Install .NET CORE
117
+ curl -sSL https://packages.microsoft.com/keys/microsoft.asc | sudo apt-key add -
118
+ sudo apt-add-repository https://packages.microsoft.com/debian/10/prod
119
+ sudo apt-get update
120
+ sudo apt-get install -y dotnet-sdk-5.0
121
+ displayName: "Install .NET CORE"
122
+
123
+ - ${{ each project in parameters.project_list }} :
105
124
# Python 2
106
125
- ${{ if eq(project.python2, true) }} :
107
126
- script : |
108
127
python2 setup.py test
109
128
workingDirectory: ${{ project.root_dir }}
110
- displayName: 'Test ${{ project.name }} (Python 2) '
129
+ displayName: '${{ project.name }}(Py2) Test '
111
130
112
131
- task : PublishTestResults@2
113
132
inputs :
114
133
testResultsFiles : ' $(System.DefaultWorkingDirectory)/${{ project.root_dir }}/test-results.xml'
115
134
testRunTitle : ${{ project.name }} (Python 2)
116
135
failTaskOnFailedTests : true
117
136
condition : succeededOrFailed()
118
- displayName : ' Publish ${{ project.name }} (Python 2) test results'
119
-
120
- - task : PublishCodeCoverageResults@1
121
- inputs :
122
- codeCoverageTool : Cobertura
123
- summaryFileLocation : ' $(System.DefaultWorkingDirectory)/${{ project.root_dir }}/coverage.xml'
124
- reportDirectory : ' $(System.DefaultWorkingDirectory)/${{ project.root_dir }}/htmlcov/'
125
- displayName : ' Publish ${{ project.name }} (Python 2) test coverage'
137
+ displayName : ' ${{ project.name }}(Py2) Publish test results'
126
138
127
139
- script : |
128
140
set -e
129
141
python2 setup.py bdist_wheel
130
142
workingDirectory: ${{ project.root_dir }}
131
- displayName: 'Build ${{ project.name }} (Python 2) '
143
+ displayName: '${{ project.name }}(Py2) Build '
132
144
133
145
# Python 3
134
146
- ${{ if eq(project.python3, true) }} :
135
147
- script : |
136
148
python3 setup.py test
137
149
workingDirectory: ${{ project.root_dir }}
138
- displayName: 'Test ${{ project.name }} (Python 3) '
150
+ displayName: '${{ project.name }}(Py3) Test '
139
151
140
152
- task : PublishTestResults@2
141
153
inputs :
142
154
testResultsFiles : ' $(System.DefaultWorkingDirectory)/${{ project.root_dir }}/test-results.xml'
143
155
testRunTitle : ${{ project.name }} (Python 3)
144
156
failTaskOnFailedTests : true
145
157
condition : succeededOrFailed()
146
- displayName : ' Publish ${{ project.name }} (Python 3) test results'
147
-
148
- - task : PublishCodeCoverageResults@1
149
- inputs :
150
- codeCoverageTool : Cobertura
151
- summaryFileLocation : ' $(System.DefaultWorkingDirectory)/${{ project.root_dir }}/coverage.xml'
152
- reportDirectory : ' $(System.DefaultWorkingDirectory)/${{ project.root_dir }}/htmlcov/'
153
- displayName : ' Publish ${{ project.name }} (Python 3) test coverage'
158
+ displayName : ' ${{ project.name }}(Py3) Publish test results'
154
159
155
160
- script : |
156
161
set -e
157
162
python3 setup.py bdist_wheel
158
163
workingDirectory: ${{ project.root_dir }}
159
- displayName: 'Build ${{ project.name }} (Python 3)'
160
-
161
- - publish : ' $(System.DefaultWorkingDirectory)/${{ project.root_dir }}/dist/'
162
- artifact : ${{ project.root_dir }}
163
- displayName : " Publish ${{ project.name }} wheels"
164
+ displayName: '${{ project.name }}(Py3) Build'
165
+
166
+ - publish : ' $(System.DefaultWorkingDirectory)/${{ project.root_dir }}/dist/'
167
+ artifact : ${{ project.root_dir }}
168
+ displayName : " ${{ project.name }}(Py3) Publish wheels"
169
+ - task : reportgenerator@4
170
+ inputs :
171
+ reports : ' $(Build.SourcesDirectory)/**/coverage.xml'
172
+ targetdir : ' $(Build.SourcesDirectory)/'
173
+ - task : PublishCodeCoverageResults@1
174
+ inputs :
175
+ codeCoverageTool : ' Cobertura'
176
+ summaryFileLocation : ' $(Build.SourcesDirectory)/Cobertura.xml'
177
+ pathToSources : $(System.DefaultWorkingDirectory)/
0 commit comments