750c8a8b31
Change-Id: Ia95837ef10546c786c57de8b6d91ce56c10f82bb
57 lines
1.8 KiB
Bash
57 lines
1.8 KiB
Bash
#!/bin/bash -xe
|
|
|
|
# This script store release meta information in the git repository for
|
|
# a project. It does so on an isolated, hidden branch called
|
|
# refs/meta/openstack/release. Because it's not under refs/heads, a
|
|
# standard clone won't retrieve it or cause it to show up in the list
|
|
# of remote branches. The branch shares no history with the project
|
|
# itself; it starts with its own root commit. Jenkins is permitted to
|
|
# push directly to refs/meta/openstack/*.
|
|
|
|
GIT_HOST="review.openstack.org:29418"
|
|
PROJECT_PREFIX="openstack"
|
|
|
|
if [[ ! -e ${PROJECT} ]]; then
|
|
git clone ssh://$GIT_HOST/$PROJECT_PREFIX/$PROJECT
|
|
fi
|
|
cd $PROJECT
|
|
git checkout master
|
|
|
|
# Get the list of meta refs
|
|
git fetch origin +refs/meta/*:refs/remotes/meta/*
|
|
|
|
# Checkout or create the meta/openstack/release branch
|
|
if ! { git branch -a |grep ^[[:space:]]*remotes/meta/openstack/release$; }
|
|
then
|
|
git checkout --orphan release
|
|
# Delete everything so the first commit is truly empty:
|
|
git rm -rf .
|
|
# git rm -rf leaves submodule directories:
|
|
find -maxdepth 1 -not -regex '\./\.git\(/.*\)?' -not -name . \
|
|
-exec rm -fr {} \;
|
|
ls -la
|
|
else
|
|
git branch -D release || /bin/true
|
|
git checkout -b release remotes/meta/openstack/release
|
|
fi
|
|
|
|
# Normally a branch name will just be a file, but we can have branches
|
|
# like stable/diablo, so in that case, make the "stable/" directory
|
|
# if needed:
|
|
mkdir -p $(dirname $BRANCH)
|
|
|
|
# Read and update the value for the branch
|
|
if [ -e "$BRANCH" ]; then
|
|
echo "Current contents of ${BRANCH}:"
|
|
cat "${BRANCH}"
|
|
else
|
|
echo "${BRANCH} does not exist. Creating it."
|
|
fi
|
|
|
|
echo "Updating ${BRANCH} to read $VALUE"
|
|
echo "$VALUE" > ${BRANCH}
|
|
git add ${BRANCH}
|
|
|
|
git commit -m "Milestone ${BRANCH} set to $VALUE"
|
|
git push origin HEAD:refs/meta/openstack/release
|