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

[Build]: Support to use the base image version when a package version not specified #10974

Merged
merged 1 commit into from
May 31, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
53 changes: 53 additions & 0 deletions src/sonic-build-hooks/scripts/buildinfo_base.sh
Original file line number Diff line number Diff line change
Expand Up @@ -256,6 +256,59 @@ release_apt_installation_lock()
rm -f $DPKG_INSTALLTION_LOCK_FILE
}

update_preference_deb()
{
local version_file="$VERSION_PATH/versions-deb"
if [ -f "$version_file" ]; then
rm -f $VERSION_DEB_PREFERENCE
for pacakge_version in $(cat "$version_file"); do
package=$(echo $pacakge_version | awk -F"==" '{print $1}')
version=$(echo $pacakge_version | awk -F"==" '{print $2}')
echo -e "Package: $package\nPin: version $version\nPin-Priority: 999\n\n" >> $VERSION_DEB_PREFERENCE
done
fi
}

update_version_file()
{
local version_name=$1
local pre_version_file="$(ls $PRE_VERSION_PATH/${version_name}-* 2>/dev/null | head -n 1)"
local version_file="$VERSION_PATH/$1"
if [ ! -f "$pre_version_file" ]; then
return 0
fi
local pacakge_versions="$(cat $pre_version_file)"
[ -f "$version_file" ] && pacakge_versions="$pacakge_versions $(cat $version_file)"
declare -A versions
for pacakge_version in $pacakge_versions; do
package=$(echo $pacakge_version | awk -F"==" '{print $1}')
version=$(echo $pacakge_version | awk -F"==" '{print $2}')
if [ -z "$package" ] || [ -z "$version" ]; then
continue
fi
versions[$package]=$version
done

tmp_file=$(mktemp)
for package in "${!versions[@]}"; do
echo "$package==${versions[$package]}" >> $tmp_file
done
sort -u $tmp_file > $version_file
rm -f $tmp_file

if [[ "${version_name}" == *-deb ]]; then
update_preference_deb
fi
}

update_version_files()
{
local version_names="versions-deb versions-py2 versions-py3"
for version_name in $version_names; do
update_version_file $version_name
done
}

ENABLE_VERSION_CONTROL_DEB=$(check_version_control "deb")
ENABLE_VERSION_CONTROL_PY2=$(check_version_control "py2")
ENABLE_VERSION_CONTROL_PY3=$(check_version_control "py3")
Expand Down
1 change: 1 addition & 0 deletions src/sonic-build-hooks/scripts/pre_run_buildinfo
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@ mkdir -p $LOG_PATH
[ -d $POST_VERSION_PATH ] && rm -rf $POST_VERSION_PATH
mkdir -p $POST_VERSION_PATH
collect_version_files $PRE_VERSION_PATH
update_version_files
symlink_build_hooks
set_reproducible_mirrors

Expand Down