[rtems-testing commit] release.sh: Add structure for repository specific actions
Joel Sherril
joel at rtems.org
Thu May 14 20:19:51 UTC 2015
Module: rtems-testing
Branch: master
Commit: a879868b1a014d5156460436d4d99ba2a45a34af
Changeset: http://git.rtems.org/rtems-testing/commit/?id=a879868b1a014d5156460436d4d99ba2a45a34af
Author: Joel Sherrill <joel.sherrill at oarcorp.com>
Date: Thu May 14 14:55:42 2015 -0500
release.sh: Add structure for repository specific actions
This should make it straightforward to update version.py in
the rtems-source-builder or odd actions required as part of
release by other repositories.
---
release-helpers/release.sh | 189 +++++++++++++++++++++++++++------------------
1 file changed, 112 insertions(+), 77 deletions(-)
diff --git a/release-helpers/release.sh b/release-helpers/release.sh
index 2cc3c3e..12f347c 100755
--- a/release-helpers/release.sh
+++ b/release-helpers/release.sh
@@ -186,24 +186,41 @@ fi
##### END OF ERROR CHECKING
-ACLOCAL_VERSION_M4=" \
-testsuites/aclocal/version.m4 \
-aclocal/version.m4 \
-cpukit/aclocal/version.m4 \
-c/src/aclocal/version.m4"
+# Determine the repository. This is used to trip special actions
+repo=`git rev-parse --show-toplevel`
+repo=`basename ${repo}`
+# For the RTEMS repository, update the aclocal.m4 and VERSION file
update_aclocal_version_for_version()
{
+ ACLOCAL_VERSION_M4=" testsuites/aclocal/version.m4 \
+ aclocal/version.m4 cpukit/aclocal/version.m4 c/src/aclocal/version.m4"
+
RV=${VERSION}
- for f in ${ACLOCAL_VERSION_M4}
- do
- sed -i -e "s|\[_RTEMS_VERSION\],\[.*\]|\[_RTEMS_VERSION\],\[${RV}\]|" ${f}
- done
- sed -i -e "s,\(^RTEMS Version\).*,\1 ${RV}," VERSION
- git add ${ACLOCAL_VERSION_M4} VERSION
- git commit -m "all version.m4, VERSION: Update to ${RV}"
+ case ${repo} in
+ rtems)
+ for f in ${ACLOCAL_VERSION_M4}
+ do
+ sed -i \
+ -e "s|\[_RTEMS_VERSION\],\[.*\]|\[_RTEMS_VERSION\],\[${RV}\]|" ${f}
+ done
+ sed -i -e "s,\(^RTEMS Version\).*,\1 ${RV}," VERSION
+ git add ${ACLOCAL_VERSION_M4} VERSION
+ git commit -m "all version.m4, VERSION: Update to ${RV}"
+ ;;
+ rtems-source-builder)
+ # XXX update version.py
+ check_error 1 "Need to update version.py"
+ ;;
+ *)
+ sed -i -e "s,\(^RTEMS Version\).*,\1 ${RV}," VERSION
+ git add VERSION
+ git commit -m "VERSION: Update to ${RV}"
+ ;;
+ esac
}
+# For the RTEMS repository, update the documentation versioning information
update_doc_versions()
{
date1=`date "+%d %B %Y"`
@@ -220,6 +237,7 @@ update_doc_versions()
git commit -m "doc/*/version.texi: Update to ${RV} and current date"
}
+# So far, this only occurs with the RTEMS repository
build_doxygen()
{
set -x
@@ -252,13 +270,15 @@ build_doxygen()
mv ${outdir}-tmp ${outdir}
}
-# Step 1: Update the various version files
+### Update the various version files
vecho "Updating aclocal version.m4 and VERSION files"
update_aclocal_version_for_version
-# Step 2: Update the documentation
-vecho "Updating version and dates in documentation"
-update_doc_versions
+### Update the documentation
+if [ ${repo} = "rtems" ] ; then
+ vecho "Updating version and dates in documentation"
+ update_doc_versions
+fi
# No further actions needed if bumping major version
if [ ${bump_major_version} = "yes" ] ; then
@@ -270,71 +290,86 @@ fi
### Set a BASE directory variable
BASE=`pwd`
+### Check that the tag does not exist
+git tag | grep ${VERSION} >/dev/null
+if [ $? -eq 0 ] ; then
+ check_error 1 "git tag of ${VERSION} already exists"
+fi
+
### Tag the source
git tag ${VERSION}
check_error $? "Unable to git tag"
-### Now generate the RTEMS tarball generation
-vecho "Generating the RTEMS tarball"
-rm -rf rtems-${VERSION} \
- rtems-${VERSION}-not_bootstrapped.tar \
- rtems-${VERSION}.tar.bz2
-git archive --format=tar --prefix=rtems-${VERSION}/ ${VERSION} \
- >rtems-${VERSION}-not_bootstrapped.tar
-check_error $? "Unable to perform git archive"
-
-tar xf rtems-${VERSION}-not_bootstrapped.tar
-cd rtems-${VERSION}/
-check_error $? "Unable to cd to untarred RTEMS source"
-
-# bootstrap and then remove unnecessary files
-sb-bootstrap >/dev/null 2>&1
-check_error $? "Unable to bootstrap the RTEMS source code"
-
-find . -name "stamp.*" \
- -o -name "autom4te.cache" \
- -o -name "rsb-log-*.txt" \
- | xargs -e rm -rf
-cd ..
-tar cjf rtems-${VERSION}.tar.bz2 rtems-${VERSION}
-check_error $? "Unable to create bootstrapped tar.bz2 for release"
-
-rm -f rtems-${VERSION}-not_bootstrapped.tar
-
-### Now generate the documentation
-vecho "Generating the RTEMS documentation tarball"
-rm -rf b-doc rtemsdocs-${VERSION} rtemsdocs-${VERSION}.tar.bz2
-mkdir b-doc
-cd b-doc
-../rtems-${VERSION}/doc/configure --enable-maintainer-mode \
- --prefix=/opt/rtems-${VERSION} >c.log 2>&1
-check_error $? "Unable to configure RTEMS documentation"
-
-make >b.log 2>&1
-check_error $? "Unable to build RTEMS documentation"
-
-make prefix=${BASE}/rtemsdocs-${VERSION} install >i.log 2>&1
-check_error $? "Unable to install RTEMS documentation"
-
-cd ..
-test -d rtemsdocs-${VERSION}
-check_error $? "Documentation was not installed into temporary location"
-
-tar cjf rtemsdocs-${VERSION}.tar.bz2 rtemsdocs-${VERSION}
-check_error $? "Unable to create RTEMS Documentation tar.bz2 for release"
-
-rm -rf b-docs
-
-### Now generate Doxygen
-doxyDir=rtems-doxygen-${VERSION}
-doxyOut=${BASE}/${doxyDir}
-rm -rf ${doxyOut}
-build_doxygen ${doxyOut}
-
-cd ${BASE}
-tar cjf ${doxyDir}.tar.bz2 ${doxyDir}
-check_error $? "Unable to create RTEMS Doxygen tar.bz2 for release"
-
+### Now generate the tarball
+if [ ${repo} = "rtems" ] ; then
+ vecho "Generating the RTEMS tarball"
+ rm -rf rtems-${VERSION} \
+ rtems-${VERSION}-not_bootstrapped.tar \
+ rtems-${VERSION}.tar.bz2
+ git archive --format=tar --prefix=rtems-${VERSION}/ ${VERSION} \
+ >rtems-${VERSION}-not_bootstrapped.tar
+ check_error $? "Unable to perform git archive"
+
+ tar xf rtems-${VERSION}-not_bootstrapped.tar
+ cd rtems-${VERSION}/
+ check_error $? "Unable to cd to untarred RTEMS source"
+
+ # bootstrap and then remove unnecessary files
+ sb-bootstrap >/dev/null 2>&1
+ check_error $? "Unable to bootstrap the RTEMS source code"
+
+ find . -name "stamp.*" \
+ -o -name "autom4te.cache" \
+ -o -name "rsb-log-*.txt" \
+ | xargs -e rm -rf
+ cd ..
+ tar cjf rtems-${VERSION}.tar.bz2 rtems-${VERSION}
+ check_error $? "Unable to create bootstrapped tar.bz2 for release"
+
+ rm -f rtems-${VERSION}-not_bootstrapped.tar
+
+else
+ vecho "Generating the ${repo} tarball"
+ git archive --format=tar --prefix=${repo}-${VERSION}/ ${VERSION} \
+ | bzip2 -9 >${repo}-${VERSION}.tar.bz2
+ check_error $? "Unable to perform git archive on ${repo}"
+fi
+### RTEMS has special actions after generating the tarball
+if [ ${repo} = "rtems" ] ; then
+ ### Now generate the documentation
+ vecho "Generating the RTEMS documentation tarball"
+ rm -rf b-doc rtemsdocs-${VERSION} rtemsdocs-${VERSION}.tar.bz2
+ mkdir b-doc
+ cd b-doc
+ ../rtems-${VERSION}/doc/configure --enable-maintainer-mode \
+ --prefix=/opt/rtems-${VERSION} >c.log 2>&1
+ check_error $? "Unable to configure RTEMS documentation"
+
+ make >b.log 2>&1
+ check_error $? "Unable to build RTEMS documentation"
+
+ make prefix=${BASE}/rtemsdocs-${VERSION} install >i.log 2>&1
+ check_error $? "Unable to install RTEMS documentation"
+
+ cd ..
+ test -d rtemsdocs-${VERSION}
+ check_error $? "Documentation was not installed into temporary location"
+
+ tar cjf rtemsdocs-${VERSION}.tar.bz2 rtemsdocs-${VERSION}
+ check_error $? "Unable to create RTEMS Documentation tar.bz2 for release"
+
+ rm -rf b-docs
+
+ ### Now generate Doxygen
+ doxyDir=rtems-doxygen-${VERSION}
+ doxyOut=${BASE}/${doxyDir}
+ rm -rf ${doxyOut}
+ build_doxygen ${doxyOut}
+
+ cd ${BASE}
+ tar cjf ${doxyDir}.tar.bz2 ${doxyDir}
+ check_error $? "Unable to create RTEMS Doxygen tar.bz2 for release"
+fi
exit 0
More information about the vc
mailing list