@@ -14,15 +14,55 @@ parameters:
1414- name : swss_artifact_name
1515 type : string
1616
17- - name : sairedis_artifact_name
17+ - name : swss_common_artifact_name
1818 type : string
1919
20- - name : swss_common_artifact_name
20+ - name : swss_common_branch
2121 type : string
22+ default : ' $(BUILD_BRANCH)'
2223
2324- name : artifact_name
2425 type : string
2526
27+ - name : buildimage_artifact_name
28+ type : string
29+ default : ' sonic-buildimage.vs'
30+
31+ - name : buildimage_artifact_project
32+ type : string
33+ default : ' build'
34+
35+ - name : buildimage_artifact_pipeline
36+ type : string
37+ default : ' Azure.sonic-buildimage.official.vs'
38+
39+ - name : buildimage_artifact_branch
40+ type : string
41+ default : ' $(BUILD_BRANCH)'
42+
43+ - name : sairedis_artifact_name
44+ type : string
45+
46+ - name : sairedis_artifact_project
47+ type : string
48+ default : ' build'
49+
50+ - name : sairedis_artifact_pipeline
51+ type : string
52+ default : ' Azure.sonic-sairedis'
53+
54+ - name : sairedis_artifact_branch
55+ type : string
56+ default : ' $(BUILD_BRANCH)'
57+
58+ - name : sairedis_artifact_pattern
59+ type : string
60+ default : ' **'
61+
62+ - name : asan
63+ type : boolean
64+ default : false
65+
2666jobs :
2767- job :
2868 displayName : ${{ parameters.arch }}
@@ -36,50 +76,92 @@ jobs:
3676 inputs :
3777 source : specific
3878 project : build
39- pipeline : 9
79+ pipeline : Azure.sonic-swss-common
4080 artifact : ${{ parameters.swss_common_artifact_name }}
4181 runVersion : ' latestFromBranch'
42- runBranch : ' refs/heads/master'
82+ runBranch : ' refs/heads/${{ parameters.swss_common_branch }}'
83+ path : $(Build.ArtifactStagingDirectory)/download
4384 displayName : " Download sonic swss common deb packages"
4485 - task : DownloadPipelineArtifact@2
4586 inputs :
4687 source : specific
47- project : build
48- pipeline : 12
88+ project : ${{ parameters.sairedis_artifact_project }}
89+ pipeline : ${{ parameters.sairedis_artifact_pipeline }}
4990 artifact : ${{ parameters.sairedis_artifact_name }}
5091 runVersion : ' latestFromBranch'
51- runBranch : ' refs/heads/master'
92+ runBranch : ' refs/heads/${{ parameters.sairedis_artifact_branch }}'
93+ allowPartiallySucceededBuilds : true
94+ path : $(Build.ArtifactStagingDirectory)/download/sairedis
95+ patterns : |
96+ ${{ parameters.sairedis_artifact_pattern }}/libsaivs_*.deb
97+ ${{ parameters.sairedis_artifact_pattern }}/libsaivs-dev_*.deb
98+ ${{ parameters.sairedis_artifact_pattern }}/libsairedis_*.deb
99+ ${{ parameters.sairedis_artifact_pattern }}/libsairedis-dev_*.deb
100+ ${{ parameters.sairedis_artifact_pattern }}/libsaimetadata_*.deb
101+ ${{ parameters.sairedis_artifact_pattern }}/libsaimetadata-dev_*.deb
102+ ${{ parameters.sairedis_artifact_pattern }}/syncd-vs_*.deb
52103 displayName : " Download sonic sairedis deb packages"
104+ - task : DownloadPipelineArtifact@2
105+ inputs :
106+ source : specific
107+ project : build
108+ pipeline : sonic-net.sonic-dash-api
109+ ${{ if eq(parameters.arch, 'amd64') }} :
110+ artifact : sonic-dash-api
111+ ${{ else }} :
112+ artifact : sonic-dash-api.${{ parameters.arch }}
113+ runVersion : ' latestFromBranch'
114+ runBranch : ' refs/heads/$(BUILD_BRANCH)'
115+ path : $(Build.ArtifactStagingDirectory)/download
116+ patterns : |
117+ libdashapi*.deb
118+ displayName : " Download dash api"
53119 - task : DownloadPipelineArtifact@2
54120 inputs :
55121 artifact : ${{ parameters.swss_artifact_name }}
56- displayName : " Download sonic swss artifact"
122+ path : $(Build.ArtifactStagingDirectory)/download
123+ displayName : " Download pre-stage built ${{ parameters.swss_artifact_name }}"
57124 - task : DownloadPipelineArtifact@2
58125 inputs :
59126 source : specific
60- project : build
61- pipeline : 1
62- artifact : sonic-buildimage.vs
127+ project : ${{ parameters.buildimage_artifact_project }}
128+ pipeline : ${{ parameters.buildimage_artifact_pipeline }}
129+ artifact : ${{ parameters.buildimage_artifact_name }}
63130 runVersion : ' latestFromBranch'
64- runBranch : ' refs/heads/master'
65- displayName : " Download sonic buildimage"
131+ runBranch : ' refs/heads/${{ parameters.buildimage_artifact_branch }}'
132+ path : $(Build.ArtifactStagingDirectory)/download
133+ patterns : ' **/target/${{ parameters.artifact_name }}.gz'
134+ displayName : " Download sonic-buildimage ${{ parameters.artifact_name }}"
66135 - script : |
136+ set -ex
67137 echo $(Build.DefinitionName).$(Build.BuildNumber)
68138
69- docker load < ../ target/docker-sonic-vs .gz
139+ docker load < $(Build.ArtifactStagingDirectory)/download/ target/${{ parameters.artifact_name }} .gz
70140
71141 mkdir -p .azure-pipelines/docker-sonic-vs/debs
72142
73- cp -v ../*.deb .azure-pipelines/docker-sonic-vs/debs
143+ find $(Build.ArtifactStagingDirectory)/download/sairedis -name '*.deb' -exec cp "{}" .azure-pipelines/docker-sonic-vs/debs \;
144+ cp -v $(Build.ArtifactStagingDirectory)/download/*.deb .azure-pipelines/docker-sonic-vs/debs
145+ if [ -f $(Build.ArtifactStagingDirectory)/download/coverage.info ]; then
146+ cp -v $(Build.ArtifactStagingDirectory)/download/coverage.info $(Build.ArtifactStagingDirectory)/
147+ cp -v $(Build.ArtifactStagingDirectory)/download/coverage.xml $(Build.ArtifactStagingDirectory)/
148+ fi
74149
75150 pushd .azure-pipelines
76151
77- docker build --no-cache -t docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber) docker-sonic-vs
152+ build_dir=$(grep BUILD_DIR $(Build.ArtifactStagingDirectory)/download/build.info | cut -d= -f2)
153+ build_args="--build-arg build_dir=$build_dir"
154+ if [ '${{ parameters.asan }}' == True ]; then
155+ build_args="$build_args --build-arg need_dbg=y"
156+ fi
78157
79- popd
158+ docker build $build_args --no-cache -t docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber).asan-${{ parameters.asan }} docker-sonic-vs
80159
81- docker save docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber) | gzip -c > $(Build.ArtifactStagingDirectory)/docker-sonic-vs.gz
160+ popd
82161
162+ docker save docker-sonic-vs:$(Build.DefinitionName).$(Build.BuildNumber).asan-${{ parameters.asan }} | gzip -c > $(Build.ArtifactStagingDirectory)/docker-sonic-vs.gz
163+ rm -rf $(Build.ArtifactStagingDirectory)/download
164+ displayName: "Build ${{ parameters.artifact_name }}"
83165 - publish : $(Build.ArtifactStagingDirectory)/
84166 artifact : ${{ parameters.artifact_name }}
85167 displayName : " Archive sonic docker vs image"
0 commit comments