2020-11-26 06:18:25 -06:00
# Starter pipeline
# Start with a minimal pipeline that you can customize to build and deploy your code.
# Add steps that build, run tests, deploy, and more:
# https://aka.ms/yaml
trigger :
2021-01-26 17:42:04 -06:00
branches :
include :
- master
- 202012
2021-02-03 12:17:13 -06:00
paths :
exclude :
- .github
2020-11-26 06:18:25 -06:00
2021-01-07 21:50:11 -06:00
pr :
2021-02-03 12:17:13 -06:00
branches :
include :
- master
2021-04-22 10:36:25 -05:00
- 202012
2021-08-04 15:46:30 -05:00
- bullseye
2021-02-03 12:17:13 -06:00
paths :
exclude :
- .github
2020-11-26 06:18:25 -06:00
2021-01-07 21:50:11 -06:00
name : $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)
2020-11-26 06:18:25 -06:00
2021-01-07 21:50:11 -06:00
resources :
repositories :
- repository : sonic-mgmt
type : github
2022-07-28 01:54:25 -05:00
name : sonic-net/sonic-mgmt
endpoint : sonic-net
2022-04-01 18:48:44 -05:00
- repository : buildimage
type : github
2022-08-02 03:24:14 -05:00
name : sonic-net/sonic-buildimage
endpoint : sonic-net
2022-04-01 18:48:44 -05:00
ref : master
2021-01-07 21:50:11 -06:00
2022-03-23 09:36:53 -05:00
variables :
2022-07-13 04:30:23 -05:00
- template : .azure-pipelines/azure-pipelines-repd-build-variables.yml@buildimage
2022-08-28 22:26:15 -05:00
- template : .azure-pipelines/template-variables.yml@buildimage
2022-03-23 09:36:53 -05:00
- name : CACHE_MODE
2022-05-05 18:21:30 -05:00
value : rcache
- name : ENABLE_FIPS
value : y
2022-03-23 09:36:53 -05:00
2021-01-07 21:50:11 -06:00
stages :
2022-03-23 09:36:53 -05:00
- stage : BuildVS
2021-01-07 21:50:11 -06:00
pool : sonicbld
jobs :
2021-04-19 20:15:00 -05:00
- template : .azure-pipelines/azure-pipelines-build.yml
2021-02-12 01:34:05 -06:00
parameters :
2022-07-18 19:42:17 -05:00
buildOptions : 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) BUILD_MULTIASIC_KVM=y ${{ variables.VERSION_CONTROL_OPTIONS }}'
[ci] Fix the boolean value case sensitive issue in Azure Pipelines (#7399)
Why I did it
Fix the boolean value case sensitive issue in Azure Pipelines
When passing parameters to a template, the "true" or "false" will have case sensitive issue, it should be a type casting issue.
To fix it, we change the true/false to yes/no, to escape the trap.
Support to override the job groups in the template, so PR build has chance to use different build parameters, only build simple targets. For example, for broadcom, we only build target/sonic-broadcom.bin, the other images, such as swi, debug bin, etc, will not be built.
2021-04-22 20:26:16 -05:00
jobGroups :
- name : vs
2022-03-23 09:36:53 -05:00
- stage : Build
pool : sonicbld
dependsOn : [ ]
jobs :
- template : .azure-pipelines/azure-pipelines-build.yml
parameters :
buildOptions : 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) ${{ variables.VERSION_CONTROL_OPTIONS }}'
jobGroups :
[ci] Fix the boolean value case sensitive issue in Azure Pipelines (#7399)
Why I did it
Fix the boolean value case sensitive issue in Azure Pipelines
When passing parameters to a template, the "true" or "false" will have case sensitive issue, it should be a type casting issue.
To fix it, we change the true/false to yes/no, to escape the trap.
Support to override the job groups in the template, so PR build has chance to use different build parameters, only build simple targets. For example, for broadcom, we only build target/sonic-broadcom.bin, the other images, such as swi, debug bin, etc, will not be built.
2021-04-22 20:26:16 -05:00
- name : broadcom
2021-05-05 17:42:33 -05:00
variables :
swi_image : yes
[ci] Fix the boolean value case sensitive issue in Azure Pipelines (#7399)
Why I did it
Fix the boolean value case sensitive issue in Azure Pipelines
When passing parameters to a template, the "true" or "false" will have case sensitive issue, it should be a type casting issue.
To fix it, we change the true/false to yes/no, to escape the trap.
Support to override the job groups in the template, so PR build has chance to use different build parameters, only build simple targets. For example, for broadcom, we only build target/sonic-broadcom.bin, the other images, such as swi, debug bin, etc, will not be built.
2021-04-22 20:26:16 -05:00
- name : mellanox
2022-03-23 09:36:53 -05:00
- name : marvell-armhf
pool : sonicbld-armhf
timeoutInMinutes : 1200
variables :
PLATFORM_ARCH : armhf
2021-01-07 21:50:11 -06:00
- stage : Test
2022-03-23 09:36:53 -05:00
dependsOn : BuildVS
2022-10-18 23:26:50 -05:00
condition : and(succeeded(), and(ne(stageDependencies.BuildVS.outputs['vs.SetVar.SKIP_VSTEST'], 'YES'), in(dependencies.BuildVS.result, 'Succeeded', 'SucceededWithIssues')))
2021-01-07 21:50:11 -06:00
variables :
- name : inventory
value : veos_vtb
- name : testbed_file
value : vtestbed.csv
2022-09-02 17:53:54 -05:00
# For every test job:
# continueOnError: false means it's a required test job and will block merge if it fails
# continueOnError: true means it's an optional test job and will not block merge even though it fails(unless a required test job depends on its result)
2021-01-07 21:50:11 -06:00
jobs :
2021-01-24 23:01:19 -06:00
- job :
2021-01-31 21:47:10 -06:00
pool : sonictest
2021-01-24 23:01:19 -06:00
displayName : "vstest"
timeoutInMinutes : 60
steps :
- checkout : self
2021-01-31 21:47:10 -06:00
clean : true
2021-01-24 23:01:19 -06:00
submodules : recursive
displayName : 'Checkout code'
- task : DownloadPipelineArtifact@2
inputs :
source : specific
project : build
pipeline : 9
2021-08-21 16:30:04 -05:00
artifact : sonic-swss-common.amd64.ubuntu20_04
2021-01-24 23:01:19 -06:00
runVersion : 'latestFromBranch'
runBranch : 'refs/heads/master'
displayName : "Download sonic swss common deb packages"
2021-01-27 21:58:58 -06:00
- task : DownloadPipelineArtifact@2
inputs :
2021-02-12 01:34:05 -06:00
artifact : sonic-buildimage.vs
displayName : "Download sonic-buildimage.vs artifact"
2021-01-27 21:58:58 -06:00
2021-01-24 23:01:19 -06:00
- script : |
2021-01-27 21:58:58 -06:00
set -x
2022-09-30 02:56:46 -05:00
sudo apt-get update
sudo apt-get install libyang0.16 -y
2021-08-21 16:30:04 -05:00
sudo dpkg -i --force-confask,confnew ../libswsscommon_1.0.0_amd64.deb
sudo dpkg -i ../python3-swsscommon_1.0.0_amd64.deb
2021-01-27 21:58:58 -06:00
sudo docker load -i ../target/docker-sonic-vs.gz
2021-01-24 23:01:19 -06:00
docker tag docker-sonic-vs:latest docker-sonic-vs:$(Build.BuildNumber)
username=$(id -un)
trap "docker ps; docker images; ip netns list; \
docker rmi docker-sonic-vs:$(Build.BuildNumber); \
ip netns list | grep -E [-]srv[0-9]+ | awk '{print $1}' | xargs -I {} sudo ip netns delete {}; \
2021-01-25 21:05:01 -06:00
sudo chown -R ${username}.${username} .; \
sudo chown -R ${username}.${username} $(System.DefaultWorkingDirectory)" EXIT
2021-01-24 23:01:19 -06:00
pushd platform/vs/tests
2021-01-27 21:58:58 -06:00
sudo py.test -v --junitxml=tr.xml --imgname=docker-sonic-vs:$(Build.BuildNumber)
2021-01-24 23:01:19 -06:00
displayName : "Run vs tests"
- task : PublishTestResults@2
inputs :
testResultsFiles : '**/tr.xml'
testRunTitle : vstest
2022-02-23 20:20:24 -06:00
- job : t0_part1
2021-01-31 21:47:10 -06:00
pool : sonictest
2022-02-23 20:20:24 -06:00
displayName : "kvmtest-t0-part1"
2021-11-22 11:54:27 -06:00
timeoutInMinutes : 360
2022-09-29 19:17:01 -05:00
continueOnError : false
2021-01-07 21:50:11 -06:00
steps :
2021-01-31 21:47:10 -06:00
- template : .azure-pipelines/run-test-template.yml
parameters :
dut : vlab-01
tbname : vms-kvm-t0
ptf_name : ptf_vms6-1
tbtype : t0
2022-02-23 20:20:24 -06:00
section : part-1
- job : t0_part2
pool : sonictest
displayName : "kvmtest-t0-part2"
timeoutInMinutes : 360
2022-09-29 19:17:01 -05:00
continueOnError : false
2022-02-23 20:20:24 -06:00
steps :
- template : .azure-pipelines/run-test-template.yml
parameters :
dut : vlab-01
tbname : vms-kvm-t0
ptf_name : ptf_vms6-1
tbtype : t0
section : part-2
- job :
pool : sonictest
displayName : "kvmtest-t0"
timeoutInMinutes : 360
dependsOn :
- t0_part1
- t0_part2
condition : always()
2022-09-02 17:53:54 -05:00
continueOnError : false
2022-02-23 20:20:24 -06:00
variables :
resultOfPart1 : $[ dependencies.t0_part1.result ]
resultOfPart2 : $[ dependencies.t0_part2.result ]
steps :
- script : |
if [ $(resultOfPart1) == "Succeeded" ] && [ $(resultOfPart2) == "Succeeded" ]; then
echo "Both job kvmtest-t0-part1 and kvmtest-t0-part2 are passed."
exit 0
else
echo "Either job kvmtest-t0-part1 or job kvmtest-t0-part2 failed! Please check the detailed information."
exit 1
fi
2021-01-27 21:58:58 -06:00
2021-01-31 21:47:10 -06:00
- job :
pool : sonictest-t1-lag
displayName : "kvmtest-t1-lag"
2022-08-01 10:25:18 -05:00
timeoutInMinutes : 360
2022-09-02 17:53:54 -05:00
continueOnError : false
2021-01-31 21:47:10 -06:00
steps :
- template : .azure-pipelines/run-test-template.yml
parameters :
dut : vlab-03
tbname : vms-kvm-t1-lag
ptf_name : ptf_vms6-2
tbtype : t1-lag
2022-05-12 00:21:25 -05:00
- job :
pool : sonictest-sonic-t0
displayName : "kvmtest-t0-sonic"
timeoutInMinutes : 360
2022-09-02 17:53:54 -05:00
continueOnError : true
2022-05-12 00:21:25 -05:00
steps :
- template : .azure-pipelines/run-test-template.yml
parameters :
dut : vlab-02
tbname : vms-kvm-t0-64-32
ptf_name : ptf_vms6-1
tbtype : t0-sonic
vmtype : vsonic
2022-07-27 13:47:00 -05:00
- job :
pool : sonictest-ma
displayName : "kvmtest-multi-asic-t1-lag"
timeoutInMinutes : 240
2022-09-02 17:53:54 -05:00
continueOnError : true
2022-07-27 13:47:00 -05:00
steps :
- template : .azure-pipelines/run-test-template.yml
parameters :
dut : vlab-08
tbname : vms-kvm-four-asic-t1-lag
ptf_name : ptf_vms6-4
tbtype : multi-asic-t1-lag-pr
image : sonic-4asic-vs.img.gz