Commit Graph

126 Commits

Author SHA1 Message Date
mssonicbld
913f466cbb
[ci] Add OVERRIDE_BUILD_OPTIONS in image build template. (#15309) (#15481) 2023-06-16 03:48:52 +08:00
Ye Jianquan
336697d7f6
[CI/CD] Refine pr test definition, remove old test jobs and testbedv2 flags (#15304) 2023-06-02 16:33:38 +08:00
Ye Jianquan
a82895659f
[CI/CD] Refine PR test templates and test_plan.py to be ready to migrate to Elastictest (#15258) 2023-05-31 09:37:46 +08:00
Liu Shilong
0556b21188
[ci] Fix pipeline error caused by qemuOrCrossBuild missing. (#15139)
Why I did it
Fix pipeline issue which breaks 202205 official build.

Work item tracking
Microsoft ADO (number only): 23115245
How I did it
qemuOrCrossBuild was not cherry picked into 202205 branch.
Remove this feature.
2023-05-18 15:06:24 -07:00
xumia
f6d8d908ab [Ci] Support marvell/marvell-arm64 build (#14875)
Why I did it
Support marvell/marvell-arm64 build

Work item tracking
Microsoft ADO (number only): 19995559
How I did it
2023-05-16 16:26:56 +08:00
mssonicbld
4a6322d0dd
[Ci] Fix the wrong SONIC_BUILD_JOBS build variable used issue in Azp (#14071) (#14729)
Why I did it
[Ci] Fix the no parallel jobs in some of the platforms issue
We observed some of the pipelines running more time than expected. The issue is the SONIC_BUILD_JOBS using the wrong value 1. It is caused by the runtime variable issue, there is additional single quota mark character added in the make command line.

make 'SONIC_BUILD_JOBS=$(nproc)' targe/xxxx
Need to change to

make SONIC_BUILD_JOBS=$(nproc) targe/xxxx
It is to improve the build performance for some of the platforms using the variable SONIC_BUILD_JOBS=1.
Good one vs: https://dev.azure.com/mssonic/build/_build/results?buildId=227986&view=logs&j=cef3d8a9-152e-5193-620b-567dc18af272&t=cf595088-5c84-5cf1-9d7e-03331f31d795

"SONIC_BUILD_JOBS"                : "8"
Bad one barefoot: https://dev.azure.com/mssonic/build/_build/results?buildId=227379&view=logs&j=993d6e22-aeec-5c03-fa19-35ecba587dd9&t=7be0d2ec-661f-5569-462c-2d9b7ca4ca5d

"SONIC_BUILD_JOBS"                : "1"
How I did it
Expand the BUILD_OPTIONS variable for all platforms.

Co-authored-by: xumia <59720581+xumia@users.noreply.github.com>
2023-04-19 15:06:21 -07:00
Ye Jianquan
0200b2b675
Refine testbedv2 template output (#14461) 2023-03-31 17:13:52 -07:00
Liu Shilong
1ccad8f0b3
[ci] Remove dulplicated code, which is to avoid docker hanging. (#14064)
Why I did it
remove duplicated code for docker hanging issue.
These codes are included in daemon step.

How I did it
remove these codes.
2023-03-08 09:49:33 -08:00
Liu Shilong
b23f79f463
[ci] Fix docker hang issue and change template reference branch (#13894) (#13921)
Why I did it
Cherry pick PR(#13894)
Azure pipeline change.
Use common template to make it easy to change common steps. Fix docker hang issue.

How I did it
How to verify
2023-02-23 14:19:56 +08:00
mssonicbld
35a4410f86
[Ci] Support to use the same snapshot for all platform builds (#13913) (#13938) 2023-02-23 08:04:43 +08:00
Richard.Yu
cf5ca9d27c
[SAI-PTF][mlnx]Enable saiserver test container on mlnx platforms (#13311)
* Why I did it
Enable Test sai api on bfn container with a lightweight container(saiserver).
[SAI-PTF][mlnx]Enable saiserver test container on mlnx container

How I did it
enable saiserver container on mlnx platform.

add docker-saiserver-mlnx.mk for building saiserver container
in platform/barefoot/docker-saiserver-mlnx, add necessary files that needs in saiserver container
How to verify it

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>
2023-02-16 15:42:12 -08:00
Liu Shilong
648ce4b12d
[ci] Kill hanged docker build process to avoid build timeout issue. (#13729)
Why I did it
Docker build has a low rate of hanging up.
It hangs on different steps. So, it looks like a bug in docker daemon.

How I did it
Start a daemon process to scan running time more than 1 hours, and kill the process.
2023-02-10 09:14:28 -08:00
zitingguo-ms
b3424ea2e6
[202205][Marvell-armhf] Build saiserverv2 docker on marvell-armhf (#13713)
* Enable marvell-armhf saiserver docker

Signed-off-by: zitingguo-ms <zitingguo@microsoft.com>

* fix libsaithriift build env

Signed-off-by: zitingguo-ms <zitingguo@microsoft.com>

* fix thrift 014 dependent issue in armhf

* fix build env

Signed-off-by: zitingguo-ms <zitingguo@microsoft.com>

* [sai_ptf]fix thrift armhf build
in armhf buidl failed as no python command

how
add a checker for different python command, python/python3 and base on result use the right command

verify
container build

* [Thrift_014[armhf]]Fix libboost_unit_test_framework.a not found during build

Why
error happen build thirft in armhf

How
fix this issue, add a soft link for the dependent file

Verify
Build pipeline

Signed-off-by: richardyu-ms <richard.yu@microsoft.com>

* add metadata dependence

Signed-off-by: zitingguo-ms <zitingguo@microsoft.com>

* change build pipeline

Signed-off-by: zitingguo-ms <zitingguo@microsoft.com>

---------

Signed-off-by: zitingguo-ms <zitingguo@microsoft.com>
Signed-off-by: richardyu-ms <richard.yu@microsoft.com>
Co-authored-by: richardyu-ms <richard.yu@microsoft.com>
2023-02-10 09:12:12 -08:00
Yutong Zhang
ab397d04ed
[202205][TestbedV2] Add multi-asic test jobs using TestbedV2. (#12722)
Why I did it
Add multi-asic test jobs using TestbedV2 in 202205 branch.

How I did it
1. Add a job in azure-pipelines.yml to add a multi-asic test job using TestbedV2 in 202205 branch.
2. Add a parameter num_asic in .azure-pipelines/run-test-scheduler-template.yml to appiont the specific image version.
2023-01-30 10:25:14 +08:00
Yutong Zhang
5982f5e94a
Improve the display of pipeline. (#13125)
The display of azure pipeline is not specific now, such as when the step Run test fails, the display of itself shows successful, but the display of step Kvmdump shows fails, but actually, the step Kvmdump doesn't fail. I improve the display of azure pipeline in this pr, each step has its own success or failure, and is shown in azure pipeline.

Why I did it
The display of azure pipeline is not specific now, such as when the step Run test fails, the display of itself shows successful, but the display of step Kvmdump shows fails, but actually, the step Kvmdump doesn't fail. I improve the display of azure pipeline in this pr, each step has its own success or failure, and is shown in azure pipeline.

How I did it
Each step has its own signature of success or failure.
Using the chain of responsibility pattern to manage all status.
Modify the expected-state in each step.
2023-01-04 17:12:12 +08:00
Liu Shilong
cd16fc0b84
Fix sonic slave pipeline to set correct tag on sonic slave image. (#13177) (#13187)
Why I did it
Currently sonic-slave-* tag is confusing. Set correct tag on sonic-slave-* image.
Fix job name to fit the build.

How I did it
build amd image in amd64:
sonic-slave-bullseye:cfe29bff67c
sonic-slave-bullseye:latest
sonic-slave-bullseye:master

build armhf image in amd64:
sonic-slave-bullseye-march-armhf:33614806dc3
sonic-slave-bullseye-march-armhf:latest
sonic-slave-bullseye-march-armhf:master

build arm64 image in amd64:
sonic-slave-bullseye-march-arm64:f3b1b16c801
sonic-slave-bullseye-march-arm64:latest
sonic-slave-bullseye-march-arm64:master

build arm64 image in arm64:
sonic-slave-bullseye:75cb326c9a7
sonic-slave-bullseye-arm64:latest
sonic-slave-bullseye:master

build armhf image in armhf:
sonic-slave-bullseye:64d178951fc
sonic-slave-bullseye-armhf:latest
sonic-slave-bullseye:master

How to verify it
2022-12-28 16:34:12 +08:00
Liu Shilong
50e68daf50
[build] Add retry when make SONiC image to improve success rate. (#12325) (#13128)
Why I did it
Makefile needs some dependencies from the Internet. It will fail for network related issue.
Retries will fix most of these issues.

How I did it
Add retries when running commands which maybe related with networking.

How to verify it
2022-12-23 18:51:23 +08:00
mssonicbld
a42a7679f7
[ci] Disable Shallow fetch in pipeline build. (#12964) (#13028) 2022-12-13 06:40:53 +08:00
Yutong Zhang
8e4b9bc031
[TestbedV2][202205] Remove timeout in each step. (#12917)
Previously, we set timeout in each step such as Lock testbed, Prepare testbed, Run test and KVM dump. When some issue suck like retry happens in one step, it will cause timeout error, but actually, it only needs more time to success. In this pr, we remove the timeout limit in each step and control the timeout outside in each job. When the job runs more than four hours, it will be cancelled.

Why I did it
Previously, we set timeout in each step such as Lock testbed, Prepare testbed, Run test and KVM dump. When some issue suck like retry happens in one step, it will cause timeout error, but actually, it only needs more time to success. In this pr, we remove the timeout limit in each step and control the timeout outside in each job. When the job runs more than four hours, it will be cancelled.

How I did it
Remove the timeout parameter in each step, and control the timeout outside in each job.

How to verify it
Set the timeout of one job to 4 hours, and when timeout happens, azure pipeline will cancel this job.

Signed-off-by: Yutong Zhang <yutongzhang@microsoft.com>
2022-12-05 14:49:02 +08:00
zitingguo-ms
88ad1751da
Publish docker saiserverv2 in 202205 branch (#12882)
Why I did it
Publish docker saiserverv2 in the build pipeline.

How I did it
Cherry-pick #12842 from master to 202205 branch.

How to verify it
Run test in #12843 and it has been built out successfully.
2022-11-30 22:26:07 -08:00
Yutong Zhang
d14621563f
Support passing the instance numbers of a testplan. (#12881)
Previously, we hard code the min and max numbers of instance in a plan. In this pr, we support passing the instance numbers of a testplan.

Why I did it
Previously, we hard code the min and max numbers of instance in a plan. In this pr, we support passing the instance numbers of a testplan.

How I did it
Use a variable to set the instance number.
2022-12-01 08:48:57 +08:00
xumia
dd425f11a6 [ci] Upload the debian packages (#12582)
Why I did it
[ci] Upload the debian packages
2022-11-10 18:12:48 +00:00
Yutong Zhang
4e3a0bb4ab
[202205][TestbedV2] migrate t0-sonic test jobs to TestbedV2 (#12650)
Migrate t0-sonic test jobs to TestbedV2.

Why I did it
Migrate t0-sonic test jobs to TestbedV2.

How I did it
Add two parameters to create testplan.
Modify azure-pipelines.yml to run t0-sonic on tbv2.

Signed-off-by: Yutong Zhang <yutongzhang@microsoft.com>
2022-11-10 17:28:51 +08:00
Ye Jianquan
2cbe3bac10
[202205] use the pr_test_scripts.yaml from 202205 branch (#12505)
Signed-off-by: jianquanye@microsoft.com

Why I did it
use the pr_test_scripts.yaml from sonic-mgmt's 202205 branch

How I did it
use the pr_test_scripts.yaml from sonic-mgmt's 202205 branch
2022-10-27 08:14:26 +08:00
Ye Jianquan
e91e38810a Enable to cancel pipeline jobs during checkout code and tests (#12436)
co-authorized by: jianquanye@microsoft.com

Why I did it
Now, checkout code step and KVM test job can't be cancelled even though the whole build is cancelled.
That's because by using Azure Pipeline Conditions, we customized the running condition, and we need to react to the Cancel action explicitly by asserting 'succeeded'
https://learn.microsoft.com/en-us/azure/devops/pipelines/process/expressions?view=azure-devops#succeeded
https://learn.microsoft.com/en-us/azure/devops/pipelines/process/conditions?view=azure-devops&tabs=yaml#ive-got-a-conditional-step-that-runs-even-when-a-job-is-canceled-how-do-i-manage-to-cancel-all-jobs-at-once

How I did it
Assert 'succeeded' condition explicitly.

How to verify it
Verified by cancelling and rerunning the azure pipeline.
2022-10-25 20:46:33 +00:00
Ye Jianquan
ab8fc11a88
[TestbedV2]Migrate t0 and t1-lag to TestbedV2 (#12383) (#12474)
co-authorized by: jianquanye@microsoft.com

Migrate the t0 and t1-lag test jobs in buildimage repo to TestbedV2.

Why I did it
Migrate the t0 and t1-lag test jobs in buildimage repo to TestbedV2.

How I did it
Migrate the t0 and t1-lag test jobs in buildimage repo to TestbedV2.

Remove ceos type setting

Use 202205 branch as sonic-mgmt branch
2022-10-24 13:25:18 -07:00
mssonicbld
73805fb298
[ci] Use absolute template file path in docker-sonic-slave pipeline. (#12153) (#12345)
Co-authored-by: Liu Shilong <shilongliu@microsoft.com>
2022-10-13 12:41:58 +08:00
mssonicbld
d3612c12e3
[ci] Update docker sonic slave pipeline to build slave base docker (#11908) (#12340) 2022-10-10 21:55:22 +08:00
Saikrishna Arcot
9551ca20e7 Build the Broadcom DNX RPC container as part of the official build (#11829)
With the Broadcom syncd containers getting upgraded to Bullseye, the DNX
RPC container is no longer automatically built. Explicitly add a make
command to build it.

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>

Signed-off-by: Saikrishna Arcot <sarcot@microsoft.com>
2022-08-27 16:16:17 +00:00
Liu Shilong
6771f44f5c
[ci] Update azp reference to support transfering organization from Azure to sonic-net (#11602)
Why I did it
When transfer repo to another organization, azp reference also need change.
Change azp reference to avoid pipeline failure.
2022-08-02 16:24:46 +08:00
xumia
b41d516a9a [ci] Fix some not sai package removed issue (#11544)
Only replace the file name starts with "cisco-".
2022-07-28 20:38:05 +00:00
Liu Shilong
80ae988be4
[ci] Enable reproducible build in PR checks. (#11411)
* [ci] Enable reproducible build in PR checks.
2022-07-13 16:58:37 +08:00
Yakiv Huryk
fd287b7d24 [ci] add docker-sonic-vs with ASAN build (#11297)
The asan-enabled docker image will be used in other CIs that run DVS tests.

Why I did it
To add a possibility to run DVS tests with ASAN for other CIs (e.g. swss).

How I did it
Added the 'asan_image' flag to the vs job group.

How to verify it
Run the CI and check the docker-sonic-vs-asan.gz artifact.
2022-07-05 16:11:48 +00:00
Ze Gan
40f7cec98d [azurepipeline]: Add t0-sonic pool back to Azp checker (#11181)
Why I did it
The t0-sonic pool has been fixed, so add it back to azp checker.

How I did it
Remove continueOnError in run-test-template.yml.

Signed-off-by: Ze Gan <ganze718@gmail.com>
2022-06-22 23:09:26 +00:00
Liu Shilong
57244dd24a
[build] Add version files to docker image dependencies (#11195)
* [ci] Support to skip vstest using include/exclude config file. (#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

* [build] Add version files to docker image dependencies
2022-06-22 14:12:25 +08:00
xumia
90e56cc55b [Build] Improve docker build performance (#11111)
Why I did it
The docker storage driver vfs is not a good option for build, it uses the “deep copy” when building a new layer, leads to lower performance and more space used on disk than other storage drivers.
A better docker storage driver is the default one overlay2, it is a modern union filesystem.
2022-06-17 03:31:53 +00:00
Shilong Liu
edf5e445be
[build] Disable reproducible build in 202205. (#11071)
Why I did it
It seems that reproducible build and dood conflicts.
Disable reproducible build first. Investigate the issue later.
2022-06-08 17:54:00 +08:00
xumia
5072315c89
[Ci]: Fix the target directory not empty issue when publishing artifacts #10972
Why I did it
Fix the target directory not empty issue when publishing artifacts.
Some of the artifacts are published to $(Build.ArtifactStagingDirectory)/target/ before source code checked out.
2022-05-30 16:50:06 +08:00
Shilong Liu
650b00e41e
[ci] Publish logs when building image job is canceled by timeout. (#10919) 2022-05-30 16:02:27 +08:00
Ze Gan
2faa69eed2
[Azp]: Ignore the result of t0-sonic pool (#10905)
Signed-off-by: Ze Gan <ganze718@gmail.com>
2022-05-24 10:42:09 +08:00
Shilong Liu
b313563986
[ci] Add arm artifacts in common lib azure pipeline (#10817)
* [ci] Add arm artifacts in common lib azure pipeline
2022-05-23 17:52:56 +08:00
xumia
f6927606b3
[Ci]: Fix to trigger the publish pipeline in failure build issue (#10847)
Why I did it
It is not necessary to trigger the publish pipeline when build is failed.

How I did it
Remove the condition in the azp task, change to use template condition.
2022-05-20 14:32:53 +08:00
xumia
3567888b03
[Ci] Support to trigger a pipeline to download and publish artifacts to storage (#10820)
Why I did it
Support to trigger a pipeline to download and publish artifacts to storage and container registry.
Support to specify the patterns which docker images to upload.

How I did it
Pass the pipeline information and the artifact information by pipeline parameters to the pipeline which will be triggered a new build. It is to decouple the artifacts generation and the publish logic, how and where the artifacts/docker images will be published, depends on the triggered pipeline.

How to verify it
2022-05-16 08:57:26 +08:00
Ze Gan
992d233090
Add pool: sonictest-sonic-t0 (#10635)
Signed-off-by: Ze Gan <ganze718@gmail.com>

Existing pools cannot test MACsec scenario, So I add sonictest-sonic-t0 pool that can run MACsec testcases.
2022-05-12 13:21:25 +08:00
xumia
508dda6ad3
[Ci]: Support to sign image for cisco-8000 uefi secure boot (#10616)
Why I did it
[Ci]: Support to sign image for cisco-8000 uefi secure boot
2022-04-21 12:13:09 +08:00
Shilong Liu
0a99f87bec
[ci] Update common lib pipeline to build more distribute packages. (#10576) 2022-04-19 10:32:01 +08:00
xumia
f24a04fa3d
[Ci]: check if there is a sonic dirty version issue (#10445)
Why I did it
[Ci]: check if there is a sonic dirty version issue
If there is a dirty version issue in PR build, the build will be failed.
2022-04-08 10:49:21 +08:00
Shilong Liu
51e4e8068e
[ci] Fix a docker-sonic-slave pipeline format in variable reference. (#10494)
this issue affect official amd64 docker-sonic-slave build.
2022-04-08 10:46:59 +08:00
xumia
baa24b3cb1
[Ci]: exclude innovium build and increase broadcom build timeout (#10482)
Why I did it
Exclude the innovium build in upgrading version build, currently, the builds are always failed, exclude the build temporarily.
Increase the broadcom build timeout.
2022-04-07 20:04:43 +08:00
Shilong Liu
0330253fd7
[ci] Fix issues in docker-slave official build. (#10477)
only push latest tag on master build
2022-04-07 13:02:35 +08:00