Revert some mistakenly merged/pushed code
* Revert "fix" This reverts commit93585b0a0a
. * Revert "Version control git (#6562)" This reverts commit52b87753db
. * Revert "Revert "[files/build/versions]: support reproduceable build for git (#5774)"" This reverts commit1cb8daf585
. * Revert "[files/build/versions]: support reproduceable build for git (#5774)" This reverts commit547aa9b2c7
.
This commit is contained in:
parent
7e4d42eb88
commit
8b7091ff51
@ -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'
|
||||
|
@ -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 := \
|
||||
|
@ -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 "$@"
|
Reference in New Issue
Block a user