[build] Add a parameter to specify sonic version during build (#5278)
Introduced a new build parameter 'SONIC_IMAGE_VERSION' that allows build system users to build SONiC image with a specific version string. If 'SONIC_IMAGE_VERSION' was not passed by the user, SONIC_IMAGE_VERSION will be set to the output of functions.sh:sonic_get_version function. Signed-off-by: Stepan Blyschak <stepanb@nvidia.com>
This commit is contained in:
parent
f494ff1890
commit
6de9390bb0
@ -190,6 +190,7 @@ SONIC_BUILD_INSTRUCTION := make \
|
||||
PLATFORM_ARCH=$(PLATFORM_ARCH) \
|
||||
BUILD_NUMBER=$(BUILD_NUMBER) \
|
||||
BUILD_TIMESTAMP=$(BUILD_TIMESTAMP) \
|
||||
SONIC_IMAGE_VERSION=$(SONIC_IMAGE_VERSION) \
|
||||
ENABLE_DHCP_GRAPH_SERVICE=$(ENABLE_DHCP_GRAPH_SERVICE) \
|
||||
ENABLE_ZTP=$(ENABLE_ZTP) \
|
||||
SHUTDOWN_BGP_ON_START=$(SHUTDOWN_BGP_ON_START) \
|
||||
|
@ -449,7 +449,7 @@ fi
|
||||
## Version file
|
||||
sudo mkdir -p $FILESYSTEM_ROOT/etc/sonic
|
||||
sudo tee $FILESYSTEM_ROOT/etc/sonic/sonic_version.yml > /dev/null <<EOF
|
||||
build_version: '$(sonic_get_version)'
|
||||
build_version: '${SONIC_IMAGE_VERSION}'
|
||||
debian_version: '$(cat $FILESYSTEM_ROOT/etc/debian_version)'
|
||||
kernel_version: '$kversion'
|
||||
asic_type: $sonic_asic_platform
|
||||
|
@ -23,7 +23,7 @@ fi
|
||||
exit 1
|
||||
}
|
||||
|
||||
IMAGE_VERSION=$(. functions.sh && sonic_get_version)
|
||||
IMAGE_VERSION="${SONIC_IMAGE_VERSION}"
|
||||
|
||||
generate_onie_installer_image()
|
||||
{
|
||||
|
@ -480,10 +480,10 @@ sudo chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS info
|
||||
{% set imagefilename = image.split('/')|last -%}
|
||||
{% set imagename = imagefilename.split('.')|first -%}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS load -i {{image}}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS tag {{imagename}}:latest {{imagename}}:$(sonic_get_version)
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS tag {{imagename}}:latest {{imagename}}:"${SONIC_IMAGE_VERSION}"
|
||||
{% if imagename.endswith('-dbg') %}
|
||||
{% set imagebasename = imagename.replace('-dbg', '') -%}
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS tag {{imagename}}:latest {{imagebasename}}:$(sonic_get_version)
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS tag {{imagename}}:latest {{imagebasename}}:"${SONIC_IMAGE_VERSION}"
|
||||
sudo LANG=C chroot $FILESYSTEM_ROOT docker $SONIC_NATIVE_DOCKERD_FOR_DOCKERFS tag {{imagename}}:latest {{imagebasename}}:latest
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
|
13
slave.mk
13
slave.mk
@ -9,7 +9,10 @@ SHELL = /bin/bash
|
||||
USER = $(shell id -un)
|
||||
UID = $(shell id -u)
|
||||
GUID = $(shell id -g)
|
||||
SONIC_GET_VERSION=$(shell export BUILD_TIMESTAMP=$(BUILD_TIMESTAMP) && export BUILD_NUMBER=$(BUILD_NUMBER) && . functions.sh && sonic_get_version)
|
||||
|
||||
ifeq ($(SONIC_IMAGE_VERSION),)
|
||||
override SONIC_IMAGE_VERSION = $(shell export BUILD_TIMESTAMP=$(BUILD_TIMESTAMP) && export BUILD_NUMBER=$(BUILD_NUMBER) && . functions.sh && sonic_get_version)
|
||||
endif
|
||||
|
||||
.SECONDEXPANSION:
|
||||
|
||||
@ -51,6 +54,7 @@ IMAGE_DISTRO_FILES_PATH = $(TARGET_PATH)/files/$(IMAGE_DISTRO)
|
||||
|
||||
export BUILD_NUMBER
|
||||
export BUILD_TIMESTAMP
|
||||
export SONIC_IMAGE_VERSION
|
||||
export CONFIGURED_PLATFORM
|
||||
export CONFIGURED_ARCH
|
||||
export PYTHON_WHEELS_PATH
|
||||
@ -221,6 +225,7 @@ $(info "SONIC_PROFILING_ON" : "$(SONIC_PROFILING_ON)")
|
||||
$(info "KERNEL_PROCURE_METHOD" : "$(KERNEL_PROCURE_METHOD)")
|
||||
$(info "BUILD_TIMESTAMP" : "$(BUILD_TIMESTAMP)")
|
||||
$(info "BUILD_LOG_TIMESTAMP" : "$(BUILD_LOG_TIMESTAMP)")
|
||||
$(info "SONIC_IMAGE_VERSION" : "$(SONIC_IMAGE_VERSION)")
|
||||
$(info "BLDENV" : "$(BLDENV)")
|
||||
$(info "VS_PREPARE_MEM" : "$(VS_PREPARE_MEM)")
|
||||
$(info "INCLUDE_MGMT_FRAMEWORK" : "$(INCLUDE_MGMT_FRAMEWORK)")
|
||||
@ -625,7 +630,7 @@ $(addprefix $(TARGET_PATH)/, $(SONIC_SIMPLE_DOCKER_IMAGES)) : $(TARGET_PATH)/%.g
|
||||
--build-arg uid=$(UID) \
|
||||
--build-arg guid=$(GUID) \
|
||||
--build-arg docker_container_name=$($*.gz_CONTAINER_NAME) \
|
||||
--label Tag=$(SONIC_GET_VERSION) \
|
||||
--label Tag=$(SONIC_IMAGE_VERSION) \
|
||||
-t $* $($*.gz_PATH) $(LOG)
|
||||
docker save $* | gzip -c > $@
|
||||
# Clean up
|
||||
@ -710,7 +715,7 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_IMAGES)) : $(TARGET_PATH)/%.gz : .platform
|
||||
--build-arg docker_container_name=$($*.gz_CONTAINER_NAME) \
|
||||
--build-arg frr_user_uid=$(FRR_USER_UID) \
|
||||
--build-arg frr_user_gid=$(FRR_USER_GID) \
|
||||
--label Tag=$(SONIC_GET_VERSION) \
|
||||
--label Tag=$(SONIC_IMAGE_VERSION) \
|
||||
-t $* $($*.gz_PATH) $(LOG)
|
||||
docker save $* | gzip -c > $@
|
||||
# Clean up
|
||||
@ -750,7 +755,7 @@ $(addprefix $(TARGET_PATH)/, $(DOCKER_DBG_IMAGES)) : $(TARGET_PATH)/%-$(DBG_IMAG
|
||||
--build-arg http_proxy=$(HTTP_PROXY) \
|
||||
--build-arg https_proxy=$(HTTPS_PROXY) \
|
||||
--build-arg docker_container_name=$($*.gz_CONTAINER_NAME) \
|
||||
--label Tag=$(SONIC_GET_VERSION) \
|
||||
--label Tag=$(SONIC_IMAGE_VERSION) \
|
||||
--file $($*.gz_PATH)/Dockerfile-dbg \
|
||||
-t $*-dbg $($*.gz_PATH) $(LOG)
|
||||
docker save $*-dbg | gzip -c > $@
|
||||
|
Loading…
Reference in New Issue
Block a user