8ef37946cd
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.
136 lines
4.3 KiB
YAML
136 lines
4.3 KiB
YAML
# 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:
|
|
- main
|
|
|
|
name: $(TeamProject)_$(Build.DefinitionName)_$(SourceBranchName)_$(Date:yyyyMMdd)$(Rev:.r)
|
|
|
|
resources:
|
|
repositories:
|
|
- repository: sonic-mgmt
|
|
type: github
|
|
name: Azure/sonic-mgmt
|
|
endpoint: build
|
|
|
|
stages:
|
|
- stage: Build
|
|
pool: sonicbld
|
|
variables:
|
|
CACHE_MODE: rcache
|
|
${{ if eq(variables['Build.SourceBranchName'], '202012') }}:
|
|
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web'
|
|
jobs:
|
|
- template: .azure-pipelines/azure-pipelines-build.yml
|
|
parameters:
|
|
buildOptions: 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) ${{ variables.VERSION_CONTROL_OPTIONS }}'
|
|
jobGroups:
|
|
- name: vs
|
|
- name: broadcom
|
|
- name: mellanox
|
|
|
|
- stage: Test
|
|
variables:
|
|
- name: inventory
|
|
value: veos_vtb
|
|
- name: testbed_file
|
|
value: vtestbed.csv
|
|
|
|
jobs:
|
|
- job:
|
|
displayName: "broadcom"
|
|
timeoutInMinutes: 600
|
|
steps:
|
|
- script: |
|
|
set -x
|
|
sudo rm -rf fsroot
|
|
username=$(id -un)
|
|
sudo chown -cR ${username}.${username} .
|
|
displayName: 'Cleanup'
|
|
- checkout: self
|
|
clean: true
|
|
submodules: recursive
|
|
displayName: 'Checkout code'
|
|
- script: |
|
|
git submodule foreach --recursive git clean -xfdf
|
|
git submodule foreach --recursive git reset --hard
|
|
git submodule update --init --recursive
|
|
displayName: 'reset submodules'
|
|
- script: |
|
|
sudo modprobe overlay
|
|
CACHE_OPTIONS="SONIC_DPKG_CACHE_METHOD=rcache SONIC_DPKG_CACHE_SOURCE=/nfs/dpkg_cache/broadcom"
|
|
make configure PLATFORM=broadcom
|
|
trap "sudo rm -rf fsroot" EXIT
|
|
make USERNAME=admin SONIC_BUILD_JOBS=$(nproc) $CACHE_OPTIONS target/sonic-broadcom.bin
|
|
displayName: 'Build sonic image'
|
|
- publish: $(System.DefaultWorkingDirectory)/
|
|
artifact: sonic-buildimage.broadcom.201911
|
|
displayName: "Archive sonic image"
|
|
|
|
- job:
|
|
displayName: "mellanox"
|
|
timeoutInMinutes: 600
|
|
steps:
|
|
- script: |
|
|
set -x
|
|
sudo rm -rf fsroot
|
|
username=$(id -un)
|
|
sudo chown -cR ${username}.${username} .
|
|
displayName: 'Cleanup'
|
|
- checkout: self
|
|
clean: true
|
|
submodules: recursive
|
|
displayName: 'Checkout code'
|
|
|
|
- script: |
|
|
git submodule foreach --recursive git clean -xfdf
|
|
git submodule foreach --recursive git reset --hard
|
|
git submodule update --init --recursive
|
|
displayName: 'reset submodules'
|
|
- script: |
|
|
sudo modprobe overlay
|
|
CACHE_OPTIONS="SONIC_DPKG_CACHE_METHOD=rcache SONIC_DPKG_CACHE_SOURCE=/nfs/dpkg_cache/mellanox"
|
|
make configure PLATFORM=mellanox
|
|
trap "sudo rm -rf fsroot" EXIT
|
|
make USERNAME=admin SONIC_BUILD_JOBS=$(nproc) $CACHE_OPTIONS target/sonic-mellanox.bin
|
|
displayName: 'Build sonic image'
|
|
- publish: $(System.DefaultWorkingDirectory)/
|
|
artifact: sonic-buildimage.mellanox.201911
|
|
displayName: "Archive sonic image"
|
|
|
|
- job:
|
|
displayName: "kvm"
|
|
timeoutInMinutes: 600
|
|
steps:
|
|
- script: |
|
|
set -x
|
|
sudo rm -rf fsroot
|
|
username=$(id -un)
|
|
sudo chown -cR ${username}.${username} .
|
|
displayName: 'Cleanup'
|
|
- checkout: self
|
|
clean: true
|
|
submodules: recursive
|
|
displayName: 'Checkout code'
|
|
|
|
- script: |
|
|
git submodule foreach --recursive git clean -xfdf
|
|
git submodule foreach --recursive git reset --hard
|
|
git submodule update --init --recursive
|
|
displayName: 'reset submodules'
|
|
- script: |
|
|
echo $(Build.BuildNumber)
|
|
sudo modprobe overlay
|
|
CACHE_OPTIONS="SONIC_DPKG_CACHE_METHOD=rcache SONIC_DPKG_CACHE_SOURCE=/nfs/dpkg_cache/vs"
|
|
make configure PLATFORM=vs
|
|
trap "sudo rm -rf fsroot" EXIT
|
|
make USERNAME=admin SONIC_BUILD_JOBS=$(nproc) $CACHE_OPTIONS \
|
|
target/docker-sonic-vs.gz target/sonic-vs.img.gz && \
|
|
sudo cp target/sonic-vs.img.gz /nfs/azpl/kvmimage/sonic-vs.$(Build.BuildNumber).img.gz
|
|
displayName: 'Build sonic image'
|
|
- publish: $(System.DefaultWorkingDirectory)/
|
|
artifact: sonic-buildimage.kvm.201911
|
|
displayName: "Archive sonic image"
|