[build] Fix reproducible build issues (#8548)
* [build] Fix reproducible build issues
This commit is contained in:
parent
ed64eb94d9
commit
c44dbf0fe0
@ -46,9 +46,9 @@ parameters:
|
||||
default: sonicdev
|
||||
|
||||
variables:
|
||||
- ${{ if and(startsWith(variables['Build.SourceBranchName'], '202'), eq(length(variables['Build.SourceBranchName']), 6)) }}:
|
||||
- ${{ if eq(variables['Build.SourceBranchName'], '202012' }}:
|
||||
- name: BUILD_OPTIONS
|
||||
value: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web'
|
||||
value: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web,git,docker'
|
||||
|
||||
stages:
|
||||
- stage: Build
|
||||
|
@ -37,7 +37,7 @@ stages:
|
||||
variables:
|
||||
CACHE_MODE: rcache
|
||||
${{ if eq(variables['Build.SourceBranchName'], '202012') }}:
|
||||
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web'
|
||||
VERSION_CONTROL_OPTIONS: 'SONIC_VERSION_CONTROL_COMPONENTS=deb,py2,py3,web,git,docker'
|
||||
jobs:
|
||||
- template: .azure-pipelines/azure-pipelines-build.yml
|
||||
parameters:
|
||||
|
@ -21,7 +21,7 @@ tag=`echo $image_tag | cut -f2 -d:`
|
||||
|
||||
if [[ ",$SONIC_VERSION_CONTROL_COMPONENTS," == *,all,* ]] || [[ ",$SONIC_VERSION_CONTROL_COMPONENTS," == *,docker,* ]]; then
|
||||
# if docker image not in white list, exit
|
||||
if [[ "$IMAGENAME" != sonic-slave-* ]] && [[ "$IMAGENAME" != docker-base* ]] && [[ "$IMAGENAME" != debian:* ]] && [[ "$IMAGENAME" != multiarch/debian-debootstrap:* ]];then
|
||||
if [[ "$image_tag" != */debian:* ]] && [[ "$image_tag" != multiarch/debian-debootstrap:* ]];then
|
||||
exit 0
|
||||
fi
|
||||
if [ -f $version_file ];then
|
||||
@ -29,12 +29,15 @@ if [[ ",$SONIC_VERSION_CONTROL_COMPONENTS," == *,all,* ]] || [[ ",$SONIC_VERSION
|
||||
fi
|
||||
if [ -z $hash_value ];then
|
||||
hash_value=unknown
|
||||
echo "$image_tag sha256 value is unknown" >> ${new_version_file}.log
|
||||
exit 0
|
||||
fi
|
||||
oldimage=${image_tag//\//\\/}
|
||||
newimage="${oldimage}@$hash_value"
|
||||
echo "sed -i \"s/$oldimage/$newimage/\" $DOCKERFILE" >> ${new_version_file}.log
|
||||
sed -i "s/$oldimage/$newimage/" $DOCKERFILE
|
||||
else
|
||||
hash_value=`docker pull $image_tag | grep Digest | awk '{print$2}'`
|
||||
hash_value=`docker pull $image_tag 2> ${new_version_file}.log | grep Digest | awk '{print$2}'`
|
||||
if [ -z hash_value ];then
|
||||
hash_value=unknown
|
||||
fi
|
||||
|
@ -39,7 +39,8 @@ get_clone_path(){
|
||||
done
|
||||
|
||||
# if not specific clone path, get default clone path
|
||||
[ -z $clone_PATH ] && clone_PATH=`echo $URL | rev | awk -F/ '{print$1}' | rev | awk -F. '{print$1}'`
|
||||
# 1. trim tail slash sign. 2. trim all charactors before the last slash. 3.trim tail '.git'
|
||||
[ -z $clone_PATH ] && clone_PATH=`echo $URL | sed 's/\/$//' | awk -F/ '{print$NF}' | awk -F. '{print$1}'`
|
||||
}
|
||||
|
||||
main(){
|
||||
@ -62,7 +63,8 @@ main(){
|
||||
# control version or record version file
|
||||
if [[ $ENABLE_VERSION_CONTROL_GIT == "y" ]];then
|
||||
# control version
|
||||
[ ! -z $commit ] && $REAL_COMMAND reset --hard $commit &> /dev/null
|
||||
[ -n $commit ] && echo "git reset --hard $commit" >> ${new_version_file}.log
|
||||
[ -n $commit ] && $REAL_COMMAND reset --hard $commit &> ${new_version_file}.log
|
||||
else
|
||||
# record version file
|
||||
echo "$URL==$commit_latest" >> $new_version_file
|
||||
|
Loading…
Reference in New Issue
Block a user