[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.
This commit is contained in:
xumia 2021-04-23 09:26:16 +08:00 committed by GitHub
parent 38f65c8fd0
commit 39d877c1ad
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 65 additions and 59 deletions

View File

@ -13,6 +13,9 @@ parameters:
- name: 'postSteps'
type: stepList
default: []
- name: 'jobGroups'
type: object
default: []
jobs:
- template: azure-pipelines-image-template.yml
@ -25,75 +28,78 @@ jobs:
PLATFORM_ARCH: amd64
BUILD_OPTIONS: ${{ parameters.buildOptions }}
DOCKER_DATA_ROOT_FOR_MULTIARCH: /data/march/docker
dbg_image: false
swi_image: false
raw_image: false
sync_rpc_image: false
platform_rpc: false
jobGroups:
- name: vs
variables:
dbg_image: true
- name: barefoot
variables:
swi_image: true
- name: broadcom
variables:
dbg_image: true
swi_image: true
raw_image: true
sync_rpc_image: true
platform_rpc: brcm
- name: centec
variables:
dbg_image: true
sync_rpc_image: true
platform_rpc: centec
- name: centec-arm64
pool: sonicbld_8c
timeoutInMinutes: 1800
variables:
PLATFORM_ARCH: arm64
- name: generic
variables:
dbg_image: true
- name: innovium
variables:
swi_image: true
- name: marvell-armhf
pool: sonicbld_8c
timeoutInMinutes: 1800
variables:
PLATFORM_ARCH: armhf
- name: mellanox
variables:
dbg_image: true
sync_rpc_image: true
platform_rpc: mlnx
- name: nephos
variables:
dbg_image: true
sync_rpc_image: true
platform_rpc: nephos
dbg_image: no
swi_image: no
raw_image: no
sync_rpc_image: no
platform_rpc: no
${{ if ne(parameters.jobGroups, '') }}:
jobGroups: ${{ parameters.jobGroups }}
${{ if eq(parameters.jobGroups, '') }}:
jobGroups:
- name: vs
variables:
dbg_image: yes
- name: barefoot
variables:
swi_image: yes
- name: broadcom
variables:
dbg_image: yes
swi_image: yes
raw_image: yes
sync_rpc_image: yes
platform_rpc: brcm
- name: centec
variables:
dbg_image: yes
sync_rpc_image: yes
platform_rpc: centec
- name: centec-arm64
pool: sonicbld_8c
timeoutInMinutes: 1800
variables:
PLATFORM_ARCH: arm64
- name: generic
variables:
dbg_image: yes
- name: innovium
variables:
swi_image: yes
- name: marvell-armhf
pool: sonicbld_8c
timeoutInMinutes: 1800
variables:
PLATFORM_ARCH: armhf
- name: mellanox
variables:
dbg_image: yes
sync_rpc_image: yes
platform_rpc: mlnx
- name: nephos
variables:
dbg_image: yes
sync_rpc_image: yes
platform_rpc: nephos
buildSteps:
- bash: |
if [ $(GROUP_NAME) == vs ]; then
if [ $(dbg_image) == true ]; then
if [ $(dbg_image) == yes ]; then
make $BUILD_OPTIONS INSTALL_DEBUG_TOOLS=y target/sonic-vs.img.gz && mv target/sonic-vs.img.gz target/sonic-vs-dbg.img.gz
fi
make $BUILD_OPTIONS target/docker-sonic-vs.gz target/sonic-vs.img.gz target/docker-ptf.gz
else
if [ $(dbg_image) == true ]; then
if [ $(dbg_image) == yes ]; then
make $BUILD_OPTIONS INSTALL_DEBUG_TOOLS=y target/sonic-$(GROUP_NAME).bin && \
mv target/sonic-$(GROUP_NAME).bin target/sonic-$(GROUP_NAME)-dbg.bin
fi
if [ $(swi_image) == true ]; then
if [ $(swi_image) == yes ]; then
make $BUILD_OPTIONS ENABLE_IMAGE_SIGNATURE=y target/sonic-aboot-$(GROUP_NAME).swi
fi
if [ $(raw_image) == true ]; then
if [ $(raw_image) == yes ]; then
make $BUILD_OPTIONS target/sonic-$(GROUP_NAME).raw
fi
if [ $(sync_rpc_image) == true ]; then
if [ $(sync_rpc_image) == yes ]; then
make $BUILD_OPTIONS ENABLE_SYNCD_RPC=y target/docker-syncd-$(platform_rpc)-rpc.gz
fi
make $BUILD_OPTIONS target/sonic-$(GROUP_NAME).bin

View File

@ -41,10 +41,10 @@ stages:
- template: .azure-pipelines/azure-pipelines-build.yml
parameters:
buildOptions: 'USERNAME=admin SONIC_BUILD_JOBS=$(nproc) ${{ variables.VERSION_CONTROL_OPTIONS }}'
jobFilters:
- vs
- broadcom
- mellanox
jobGroups:
- name: vs
- name: broadcom
- name: mellanox
- stage: Test
variables: