Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[ci]: Add yaml for azure pipeline official build #6588

Merged
merged 36 commits into from
Feb 5, 2021
Merged
Show file tree
Hide file tree
Changes from 31 commits
Commits
Show all changes
36 commits
Select commit Hold shift + click to select a range
5298dff
add azure pipeline for nightly build
liushilongbuaa Jan 28, 2021
2c43a47
try cron
liushilongbuaa Jan 28, 2021
b810f8e
update azure-pipelines.yml
liushilongbuaa Jan 28, 2021
de2310f
fix script
liushilongbuaa Jan 28, 2021
60144f2
change totally
liushilongbuaa Jan 28, 2021
32fb3aa
change totally
liushilongbuaa Feb 1, 2021
5faa2ad
Update official.yml for Azure Pipelines
liushilongbuaa Feb 1, 2021
1cce65d
Update official.yml for Azure Pipelines
liushilongbuaa Feb 1, 2021
607a100
Update official.yml for Azure Pipelines
liushilongbuaa Feb 1, 2021
a40428f
update
liushilongbuaa Feb 1, 2021
b9d1f9f
update
liushilongbuaa Feb 1, 2021
d76d876
update
liushilongbuaa Feb 1, 2021
486c8da
update
liushilongbuaa Feb 1, 2021
48d2733
update
liushilongbuaa Feb 1, 2021
5f33ba9
change directory
liushilongbuaa Feb 2, 2021
c564ca5
update
liushilongbuaa Feb 2, 2021
a47df6e
update
liushilongbuaa Feb 2, 2021
2a21fc1
update
liushilongbuaa Feb 2, 2021
8ffa54f
add post cleanup
liushilongbuaa Feb 2, 2021
e615a71
add post cleanup
liushilongbuaa Feb 2, 2021
4e7541d
add post cleanup
liushilongbuaa Feb 2, 2021
1c8dd8a
add post cleanup
liushilongbuaa Feb 2, 2021
0423ebf
update
liushilongbuaa Feb 2, 2021
6a47703
update
liushilongbuaa Feb 2, 2021
243cc3f
Update cleanup.yml
liushilongbuaa Feb 2, 2021
1d7790d
update
liushilongbuaa Feb 2, 2021
cb26972
Update official.yml for Azure Pipelines
liushilongbuaa Feb 3, 2021
d9fa028
update
liushilongbuaa Feb 3, 2021
eea9b3a
update
liushilongbuaa Feb 3, 2021
965d50a
update
liushilongbuaa Feb 3, 2021
307c888
update
liushilongbuaa Feb 4, 2021
8fdb258
update
liushilongbuaa Feb 4, 2021
8e11f3f
update
liushilongbuaa Feb 5, 2021
93dfbca
update
liushilongbuaa Feb 5, 2021
162958e
update
liushilongbuaa Feb 5, 2021
e799a2c
update
liushilongbuaa Feb 5, 2021
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
70 changes: 70 additions & 0 deletions .azure-pipelines/build-template.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,70 @@
parameters:
- name: platform
type: string
values:
- broadcom
- mellanox
- name: platform_short
type: string
values:
- brcm
- mlnx

- name: cache_mode
type: string
values:
- wcache
- rcache
- cache

- name: dbg_image
type: boolean

- name: swi_image
type: boolean

- name: raw_image
type: boolean

- name: sync_rpc_image
type: boolean

jobs:
- job:
displayName: ${{ parameters.platform }}
timeoutInMinutes: 600
steps:
- template: cleanup.yml
- checkout: self
submodules: recursive
displayName: 'Checkout code'
- script: |
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Add clean=true in checkout, so this block can be removed.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If fsroot exist, checkout with "clean=true" will fail because of permission.
Put clean steps together. Do cleaning job pre-build and post-build. This is more robust than build-in clean.

git submodule foreach --recursive git clean -xfdf
git submodule foreach --recursive git reset --hard
git submodule update --init --recursive
displayName: 'reset submodules'
- script: |
Copy link
Collaborator

@xumia xumia Feb 4, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

How about to move the script from the template to the official.yml, only keep the most common part in the template, like init, checkout, publish, cleanup.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

each plat form write their own script. this will make yml file more different with each other, like current Jenkinsfiles.

set -e
sudo modprobe overlay
liushilongbuaa marked this conversation as resolved.
Show resolved Hide resolved
CACHE_OPTIONS="SONIC_DPKG_CACHE_METHOD=${{ parameters.cache_mode }} SONIC_DPKG_CACHE_SOURCE=/nfs/dpkg_cache/${{ parameters.platform }}"
ENABLE_DOCKER_BASE_PULL=y make configure PLATFORM=${{ parameters.platform }}
if [ ${{ parameters.dbg_image }} ];then
make USERNAME=admin $CACHE_OPTIONS SONIC_BUILD_JOBS=$(nproc) INSTALL_DEBUG_TOOLS=y target/sonic-${{ parameters.platform }}.bin && \
mv target/sonic-${{ parameters.platform }}.bin target/sonic-${{ parameters.platform }}-dbg.bin
fi
if [ ${{ parameters.swi_image }} ];then
make USERNAME=admin $CACHE_OPTIONS SONIC_BUILD_JOBS=$(nproc) ENABLE_IMAGE_SIGNATURE=y target/sonic-aboot-${{ parameters.platform }}.swi
fi
if [ ${{ parameters.raw_image }} ];then
make USERNAME=admin $CACHE_OPTIONS SONIC_BUILD_JOBS=$(nproc) target/sonic-${{ parameters.platform }}.raw
fi
if [ ${{ parameters.sync_rpc_image }} ];then
make USERNAME=admin $CACHE_OPTIONS SONIC_BUILD_JOBS=$(nproc) ENABLE_SYNCD_RPC=y target/docker-syncd-${{ parameters.platform_short }}-rpc.gz
fi
make USERNAME=admin $CACHE_OPTIONS SONIC_BUILD_JOBS=$(nproc) target/sonic-${{ parameters.platform }}.bin
sudo rm -rf fsroot || true
displayName: 'Build sonic image'
- publish: $(System.DefaultWorkingDirectory)/
artifact: sonic-buildimage.${{ parameters.platform }}
displayName: "Archive sonic image"
- template: cleanup.yml
6 changes: 6 additions & 0 deletions .azure-pipelines/cleanup.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
steps:
- script: |
sudo kill -9 `sudo cat /var/run/march/docker.pid` || true
sudo rm -f /var/run/march/docker.pid || true
sudo rm -rf target || true
displayName: "Clean Workspace"
27 changes: 27 additions & 0 deletions .azure-pipelines/official.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
# 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

schedules:
- cron: "0 8 * * *"
displayName: Daily midnight build
branches:
include:
- master
always: true

stages:
- stage: Build
pool: sonicbld

jobs:
- template: build-template.yml
parameters:
platform: broadcom
platform_short: brcm
cache_mode: cache
dbg_image: true
swi_image: true
raw_image: true
sync_rpc_image: true