Revert some mistakenly merged/pushed code

* Revert "fix"

This reverts commit 93585b0a0a.

* Revert "Version control git (#6562)"

This reverts commit 52b87753db.

* Revert "Revert "[files/build/versions]: support reproduceable build for git (#5774)""

This reverts commit 1cb8daf585.

* Revert "[files/build/versions]: support reproduceable build for git (#5774)"

This reverts commit 547aa9b2c7.
This commit is contained in:
Qi Luo 2021-06-20 23:11:38 -07:00
parent 7e4d42eb88
commit 8b7091ff51
3 changed files with 56 additions and 77 deletions

View File

@ -57,6 +57,14 @@ stages:
pool:
vmImage: 'ubuntu-20.04'
steps:
- script: |
if [ -z "$(which gh)" ]; then
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-key C99B11DEB97541F0
sudo apt-add-repository https://cli.github.com/packages
sudo apt update
sudo apt install gh
fi
displayName: 'Install gh'
- checkout: self
displayName: 'Checkout code'
- download: current
@ -83,6 +91,53 @@ stages:
done
git diff files/build/versions
displayName: 'Freeze Versions'
- script: |
if [ -z "$GIT_USER" ]; then
echo "Skipped to send the pull request, GIT_USER not set."
exit 0
fi
GIT_STATUS=$(git status --porcelain files/build/versions)
if [ -z "$GIT_STATUS" ]; then
echo "Skipped to send the pull request, no version change in files/build/versions"
exit 0
fi
if [ ! -d "$HOME" ]; then
sudo mkdir -p $HOME
sudo chown -R $(id -un):$(id -gn) $HOME
fi
SOURCE_BRANCH=$(Build.SourceBranch)
REPO_NAME=$(Build.Repository.Name)
[ -z "$GIT_REPO" ] && GIT_REPO=${REPO_NAME#*/}
BRANCH_NAME=repd/versions/${SOURCE_BRANCH#refs/heads/}
echo '#!/bin/bash' > git_env_password.sh
echo 'echo $GIT_PASSWORD' >> git_env_password.sh
chmod a+x git_env_password.sh
export GIT_ASKPASS=./git_env_password.sh
git config user.name $GIT_USER
git config credential.https://github.com.username $GIT_USER
git add files/build/versions
git commit -m "[ci/build]: Upgrade SONiC package versions"
git checkout -b $BRANCH_NAME
git remote add remote https://github.com/$GIT_USER/$GIT_REPO
git push remote HEAD:refs/heads/$BRANCH_NAME -f
git branch -u remote/$BRANCH_NAME
echo $GIT_PASSWORD | gh auth login --with-token
TITLE="Upgrade SONiC Versions"
BODY="Upgrade SONiC Versions"
RET=0
if ! gh pr create -t "$TITLE" -b "$BODY" -B $(Build.SourceBranch) -R $(Build.Repository.Name) > pr.log 2>&1; then
if ! grep -q "already exists" pr.log; then
RET=1
fi
fi
cat pr.log
exit $RET
env:
GIT_USER: $(GIT_USER)
GIT_PASSWORD: $(GIT_PASSWORD)
displayName: 'Send Pull Request'
- publish: $(System.DefaultWorkingDirectory)/files/build/versions
artifact: 'sonic-buildimage.versions'
displayName: 'Archive SONiC versions'

View File

@ -136,7 +136,7 @@ $(shell CONFIGURED_ARCH=$(CONFIGURED_ARCH) MULTIARCH_QEMU_ENVIRON=$(MULTIARCH_QE
$(shell BUILD_SLAVE=y scripts/prepare_docker_buildinfo.sh $(SLAVE_BASE_IMAGE) $(SLAVE_DIR)/Dockerfile $(CONFIGURED_ARCH) "" $(BLDENV))
# Add the versions in the tag, if the version change, need to rebuild the slave
SLAVE_BASE_TAG = $(shell cat $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* src/sonic-build-hooks/hooks/* | sha1sum | awk '{print substr($$1,0,11);}')
SLAVE_BASE_TAG = $(shell cat $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* | sha1sum | awk '{print substr($$1,0,11);}')
SLAVE_TAG = $(shell cat $(SLAVE_DIR)/Dockerfile.user $(SLAVE_DIR)/Dockerfile $(SLAVE_DIR)/buildinfo/versions/versions-* | sha1sum | awk '{print substr($$1,0,11);}')
OVERLAY_MODULE_CHECK := \

View File

@ -1,76 +0,0 @@
#!/bin/bash
parse_config(){
. /usr/local/share/buildinfo/scripts/buildinfo_base.sh
REAL_COMMAND=$(get_command git)
version_file=$VERSION_PATH/versions-git
new_version_file=$BUILD_VERSION_PATH/versions-git
MODE_CLONE=0
# parse input parameters
for i in "$@"
do
if [[ $i == "clone" ]];then
MODE_CLONE=1
fi
done
}
get_clone_path(){
# get paremater of clone path
while (( "$#" )); do
case $1 in
-b|--branch|--reference|--reference-if-able|-c|--config|--origin|-u|--upload-pack|-j|--jobs|--depth|--dissociate)
shift 2
;;
clone|-l|--local|--no-hardlinks|-s|--shared|--dissociate|-q|--quiet|-v|--verbose|--progress|--server-option=*|--bare|--sparse|--filter=*|--template=*|--mirror|--reference|--shallow-*|--no-tags|--recurse-submodules*|--remote-submodules|--no-remote-submodules|--separate-git-dir*)
shift 1
;;
*)
if [[ $URL == "" ]];then
URL=$1
else
clone_PATH=$1
fi
shift 1
;;
esac
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}'`
}
main(){
parse_config "$@"
# execute git.
$REAL_COMMAND "$@"
result=$?
# if sub command is not "clone", exit
if [[ $MODE_CLONE != 1 ]];then
exit $result
fi
get_clone_path "$@"
pushd $clone_PATH &> /dev/null
commit_latest=`$REAL_COMMAND log -n 1 | head -n 1| awk '{print$2}'`
[ -f $version_file ] && commit=`grep $URL $version_file | awk -F, '{print$2}'`
# control version or record version file
if [[ $ENABLE_VERSION_CONTROL_GIT == "y" ]];then
# control version
[ ! -z $commit ] && $REAL_COMMAND reset --hard $commit &> /dev/null
else
# record version file
echo "$URL==$commit_latest" >> $new_version_file
sort $new_version_file -o $new_version_file -u &> /dev/null
fi
popd &> /dev/null
exit $result
}
main "$@"