cd897b40cc
Why I did it When we change k8s script file to trigger k8s master image build, there's error reported. /agent/_work/_temp/433f6aca-4fd0-4a79-898e-49d7d0fc7465.sh: line 19: unexpected EOF while looking for matching `'' The main reason is something wrong with passing k8s_options variable(in file template-skipvstest.yml) to build pipeline. Need to fix and improve the passing variable process. Work item tracking Microsoft ADO (number only): 25063800 How I did it Separate the job of checking if k8s image build is needed from skipvstest checking job Build a VHDX k8s master image for convenient How to verify it No error found when k8s master image build is triggered We have a VHDX k8s master image in the build result.
182 lines
6.1 KiB
YAML
182 lines
6.1 KiB
YAML
# The azure pipeline template for Official build, and upgrade version build
|
|
|
|
parameters:
|
|
- name: 'jobFilters'
|
|
type: object
|
|
default: ''
|
|
- name: 'buildOptions'
|
|
type: string
|
|
default: 'SONIC_CONFIG_BUILD_JOBS=1'
|
|
- name: 'preSteps'
|
|
type: stepList
|
|
default: []
|
|
- name: 'postSteps'
|
|
type: stepList
|
|
default: []
|
|
- name: 'jobGroups'
|
|
type: object
|
|
default: ''
|
|
- name: 'qemuOrCrossBuild'
|
|
type: boolean
|
|
default: false
|
|
|
|
jobs:
|
|
- template: azure-pipelines-image-template.yml
|
|
parameters:
|
|
jobFilters: ${{ parameters.jobFilters }}
|
|
preSteps: ${{ parameters.preSteps }}
|
|
postSteps: ${{ parameters.postSteps }}
|
|
jobVariables:
|
|
PLATFORM_AZP: $(GROUP_NAME)
|
|
PLATFORM_ARCH: amd64
|
|
BUILD_NUMBER: $(Build.BuildId)
|
|
BUILD_OPTIONS: ${{ parameters.buildOptions }}
|
|
DOCKER_DATA_ROOT_FOR_MULTIARCH: /data/march/docker
|
|
dbg_image: no
|
|
asan_image: no
|
|
swi_image: no
|
|
docker_syncd_rpc_image: no
|
|
syncd_rpc_image: no
|
|
platform_rpc: no
|
|
${{ if parameters.qemuOrCrossBuild }}:
|
|
SONIC_SLAVE_DOCKER_DRIVER: 'vfs'
|
|
CACHE_MODE: 'none'
|
|
${{ if ne(parameters.jobGroups, '') }}:
|
|
jobGroups: ${{ parameters.jobGroups }}
|
|
${{ if eq(parameters.jobGroups, '') }}:
|
|
jobGroups:
|
|
- name: vs
|
|
variables:
|
|
dbg_image: yes
|
|
asan_image: yes
|
|
|
|
- name: barefoot
|
|
variables:
|
|
docker_syncd_rpc_image: yes
|
|
platform_rpc: bfn
|
|
swi_image: yes
|
|
|
|
- name: broadcom
|
|
timeoutInMinutes: 1440
|
|
variables:
|
|
dbg_image: yes
|
|
swi_image: yes
|
|
docker_syncd_rpc_image: yes
|
|
platform_rpc: brcm
|
|
|
|
- name: centec
|
|
variables:
|
|
dbg_image: yes
|
|
docker_syncd_rpc_image: yes
|
|
platform_rpc: centec
|
|
|
|
- name: centec-arm64
|
|
${{ if not(parameters.qemuOrCrossBuild) }}:
|
|
pool: sonicbld-arm64
|
|
timeoutInMinutes: 2880
|
|
variables:
|
|
PLATFORM_ARCH: arm64
|
|
|
|
- name: generic
|
|
variables:
|
|
dbg_image: yes
|
|
|
|
- name: innovium
|
|
variables:
|
|
dbg_image: yes
|
|
|
|
- name: marvell-armhf
|
|
${{ if not(parameters.qemuOrCrossBuild) }}:
|
|
pool: sonicbld-armhf
|
|
timeoutInMinutes: 2880
|
|
variables:
|
|
PLATFORM_ARCH: armhf
|
|
|
|
- name: marvell-arm64
|
|
${{ if not(parameters.qemuOrCrossBuild) }}:
|
|
pool: sonicbld-arm64
|
|
timeoutInMinutes: 2880
|
|
variables:
|
|
PLATFORM_ARCH: arm64
|
|
|
|
- name: marvell
|
|
|
|
- name: mellanox
|
|
variables:
|
|
dbg_image: yes
|
|
docker_syncd_rpc_image: yes
|
|
syncd_rpc_image: yes
|
|
platform_rpc: mlnx
|
|
|
|
- name: nephos
|
|
variables:
|
|
dbg_image: yes
|
|
docker_syncd_rpc_image: yes
|
|
platform_rpc: nephos
|
|
|
|
- name: pensando
|
|
pool: sonicbld-arm64
|
|
variables:
|
|
PLATFORM_ARCH: arm64
|
|
|
|
buildSteps:
|
|
- template: .azure-pipelines/template-skipvstest.yml@buildimage
|
|
- template: .azure-pipelines/template-daemon.yml@buildimage
|
|
- bash: |
|
|
set -ex
|
|
if [ $(GROUP_NAME) == pensando ]; then
|
|
make $BUILD_OPTIONS target/sonic-pensando.tar
|
|
elif [ $(GROUP_NAME) == vs ]; 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
|
|
if [ $(asan_image) == yes ]; then
|
|
make $BUILD_OPTIONS ENABLE_ASAN=y target/docker-sonic-vs.gz
|
|
mv target/docker-sonic-vs.gz target/docker-sonic-vs-asan.gz
|
|
fi
|
|
if [ "$(K8S_MASTER_CHANGED)" == 'YES' ]; then
|
|
make $BUILD_OPTIONS INCLUDE_KUBERNETES_MASTER=y target/sonic-vs.img.gz
|
|
gzip -d target/sonic-vs.img.gz
|
|
SONIC_RUN_CMDS="qemu-img convert target/sonic-vs.img -O vhdx -o subformat=dynamic target/sonic-vs.vhdx" make $BUILD_OPTIONS sonic-slave-run
|
|
gzip target/sonic-vs.vhdx
|
|
mv target/sonic-vs.vhdx.gz target/sonic-vs-k8s.vhdx.gz
|
|
rm target/sonic-vs.img
|
|
fi
|
|
make $BUILD_OPTIONS target/docker-sonic-vs.gz target/sonic-vs.img.gz target/docker-ptf.gz
|
|
make $BUILD_OPTIONS target/docker-ptf-sai.gz
|
|
if [ $(Build.Reason) != 'PullRequest' ];then
|
|
gzip -kd target/sonic-vs.img.gz
|
|
SONIC_RUN_CMDS="qemu-img convert target/sonic-vs.img -O vhdx -o subformat=dynamic target/sonic-vs.vhdx" make $BUILD_OPTIONS sonic-slave-run
|
|
rm target/sonic-vs.img
|
|
fi
|
|
else
|
|
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) == yes ]; then
|
|
make $BUILD_OPTIONS ENABLE_IMAGE_SIGNATURE=y target/sonic-aboot-$(GROUP_NAME).swi
|
|
fi
|
|
if [ $(docker_syncd_rpc_image) == yes ]; then
|
|
# workaround for issue in rules/sairedis.dep, git ls-files will list un-exist files for cache
|
|
make $BUILD_OPTIONS ENABLE_SYNCD_RPC=y target/docker-syncd-$(platform_rpc)-rpc.gz
|
|
pushd ./src/sonic-sairedis/SAI
|
|
git stash
|
|
popd
|
|
if [ $(GROUP_NAME) == broadcom ]; then
|
|
make $BUILD_OPTIONS ENABLE_SYNCD_RPC=y target/docker-syncd-$(platform_rpc)-dnx-rpc.gz
|
|
pushd ./src/sonic-sairedis/SAI
|
|
git stash
|
|
popd
|
|
fi
|
|
fi
|
|
if [ $(syncd_rpc_image) == yes ]; then
|
|
make $BUILD_OPTIONS ENABLE_SYNCD_RPC=y target/sonic-$(GROUP_NAME).bin
|
|
mv target/sonic-mellanox.bin target/sonic-$(GROUP_NAME)-rpc.bin
|
|
fi
|
|
make $BUILD_OPTIONS target/sonic-$(GROUP_NAME).bin
|
|
fi
|
|
displayName: "Build sonic image"
|
|
- template: .azure-pipelines/check-dirty-version.yml@buildimage
|