2
#####################################################
3
# File Name: launch-build-machine.sh
7
# Author: Julien Bonjean (julien@bonjean.info)
9
# Creation Date: 2009-10-20
10
# Last Modified: 2010-04-22 16:42:57 -0400
11
#####################################################
15
. `dirname $0`/setenv.sh
23
SNAPSHOT_TAG=`date +%Y%m%d`
25
VERSION_NUMBER="1.0.2"
27
LAUNCHPAD_PACKAGES=( "sflphone-client-gnome" "sflphone-common" "sflphone-plugins")
30
echo " /***********************\\"
31
echo " | SFLPhone build system |"
32
echo " \\***********************/"
46
echo " --version-index=[1,2,...]"
60
VERSION_INDEX=(${PARAMETER##*=});;
62
echo "Unknown parameter : ${PARAMETER}"
67
#########################
69
#########################
71
# change to working directory
74
if [ "$?" -ne "0" ]; then
75
echo " !! Cannot cd to launchpad directory"
80
if [ ${DO_LOGGING} ]; then
82
rm -f ${ROOT_DIR}/packaging.log >/dev/null 2>&1
84
# open file descriptor
85
exec 3<> ${ROOT_DIR}/packaging.log
87
# redirect outputs (stdout & stderr)
92
if [ ${RELEASE_MODE} ]; then
98
if [ ${IS_KDE_CLIENT} ]; then
99
TAG_NAME_PREFIX="kde."
102
#########################
104
#########################
106
cd ${REFERENCE_REPOSITORY}
108
echo "Update reference sources"
109
if [ ${IS_RELEASE} ]; then
110
git checkout . && git checkout -f release && git pull
112
git checkout . && git checkout -f master && git pull
115
echo "Retrieve build info"
116
# retrieve info we may need
117
if [ ${IS_KDE_CLIENT} ]; then
118
TAG_NAME_PREFIX="kde."
119
LAUNCHPAD_PACKAGES=( "sflphone-client-kde" )
121
CURRENT_RELEASE_TAG_NAME=$(git for-each-ref refs/tags --sort=-authordate --format='%(refname)' --count=1 | cut -d'/' -f3)
122
PREVIOUS_RELEASE_TAG_NAME=$(git for-each-ref refs/tags --sort=-authordate --format='%(refname)' --count=2 | cut -d'/' -f3 | tail -n1)
123
CURRENT_RELEASE_COMMIT_HASH=`git show --pretty=format:"%H" -s ${CURRENT_RELEASE_TAG_NAME} | tail -n 1`
124
PREVIOUS_RELEASE_COMMIT_HASH=`git show --pretty=format:"%H" -s ${PREVIOUS_RELEASE_TAG_NAME} | tail -n 1`
125
CURRENT_COMMIT=`git show --pretty=format:"%H" -s | tail -n 1`
126
CURRENT_RELEASE_TYPE=${CURRENT_RELEASE_TAG_NAME##*.}
127
PREVIOUS_RELEASE_TYPE=${PREVIOUS_RELEASE_TAG_NAME##*.}
128
if [ ${IS_KDE_CLIENT} ]; then
129
CURRENT_RELEASE_VERSION=${CURRENT_RELEASE_TAG_NAME%.*}
130
CURRENT_RELEASE_VERSION=${CURRENT_RELEASE_VERSION#*.}
131
PREVIOUS_VERSION=${PREVIOUS_RELEASE_TAG_NAME%.*}
132
PREVIOUS_VERSION=${PREVIOUS_VERSION#*.}
134
CURRENT_RELEASE_VERSION=${CURRENT_RELEASE_TAG_NAME}
135
PREVIOUS_VERSION=${PREVIOUS_RELEASE_TAG_NAME}
143
LAUNCHPAD_CONF_PREFIX=""
145
if [ ${IS_RELEASE} ]; then
146
SOFTWARE_VERSION="${CURRENT_RELEASE_VERSION}"
147
COMMIT_HASH_BEGIN="${PREVIOUS_RELEASE_COMMIT_HASH}"
148
LAUNCHPAD_CONF_PREFIX="sflphone"
150
SOFTWARE_VERSION="${VERSION_NUMBER}-rc${SNAPSHOT_TAG}"
151
COMMIT_HASH_BEGIN="${CURRENT_RELEASE_COMMIT_HASH}"
152
LAUNCHPAD_CONF_PREFIX="sflphone-nightly"
155
VERSION="${SOFTWARE_VERSION}~ppa${VERSION_INDEX}~SYSTEM"
157
echo "Clean build directory"
158
git clean -f -x ${LAUNCHPAD_DIR}/* >/dev/null
168
sflphone-client-gnome)
180
for LAUNCHPAD_PACKAGE in ${LAUNCHPAD_PACKAGES[*]}
182
echo " Package: ${LAUNCHPAD_PACKAGE}"
184
echo " --> Clean old sources"
185
git clean -f -x ${LAUNCHPAD_DIR}/${LAUNCHPAD_PACKAGE}/* >/dev/null
187
DEBIAN_DIR="${LAUNCHPAD_DIR}/${LAUNCHPAD_PACKAGE}/debian"
189
echo " --> Clean debian directory"
190
git checkout ${DEBIAN_DIR}
192
echo " --> Retrieve new sources"
193
DIRNAME=`get_dir_name ${LAUNCHPAD_PACKAGE}`
194
cp -r ${REFERENCE_REPOSITORY}/${DIRNAME}/* ${LAUNCHPAD_DIR}/${LAUNCHPAD_PACKAGE}
196
echo " --> Update software version number (${SOFTWARE_VERSION})"
197
echo "${SOFTWARE_VERSION}" > ${LAUNCHPAD_DIR}/${LAUNCHPAD_PACKAGE}/VERSION
199
echo " --> Update debian changelog"
201
cat << END > ${WORKING_DIR}/sfl-git-dch.conf
202
WORKING_DIR="${REFERENCE_REPOSITORY}"
203
SOFTWARE="${LAUNCHPAD_PACKAGE}"
205
DISTRIBUTION="SYSTEM"
206
CHANGELOG_FILE="${DEBIAN_DIR}/changelog"
207
COMMIT_HASH_BEGIN="${COMMIT_HASH_BEGIN}"
208
COMMIT_HASH_END="${COMMIT_HASH_END}"
209
IS_RELEASE=${IS_RELEASE}
210
export DEBFULLNAME="Julien Bonjean"
211
export DEBEMAIL="julien.bonjean@savoirfairelinux.com"
215
${WORKING_DIR}/sfl-git-dch-2.sh ${WORKING_DIR}/sfl-git-dch.conf
216
if [ "$?" -ne "0" ]; then
217
echo "!! Cannot update debian changelogs"
220
rm -f ${WORKING_DIR}/sfl-git-dch.conf >/dev/null 2>&1
224
cp ${DEBIAN_DIR}/changelog ${DEBIAN_DIR}/changelog.generic
226
for LAUNCHPAD_DISTRIBUTION in ${LAUNCHPAD_DISTRIBUTIONS[*]}
229
LOCAL_VERSION="${SOFTWARE_VERSION}~ppa${VERSION_INDEX}~${LAUNCHPAD_DISTRIBUTION}"
231
cp ${DEBIAN_DIR}/changelog.generic ${DEBIAN_DIR}/changelog
233
sed -i "s/SYSTEM/${LAUNCHPAD_DISTRIBUTION}/g" ${DEBIAN_DIR}/changelog
235
cd ${LAUNCHPAD_DIR}/${LAUNCHPAD_PACKAGE}
237
debuild -S -sa -kFDFE4451
240
if [ ${DO_UPLOAD} ] ; then
241
dput -f -c ${LAUNCHPAD_DIR}/dput.conf ${LAUNCHPAD_CONF_PREFIX}-${LAUNCHPAD_DISTRIBUTION} ${LAUNCHPAD_PACKAGE}_${LOCAL_VERSION}_source.changes
245
cp ${DEBIAN_DIR}/changelog.generic ${DEBIAN_DIR}/changelog
248
# if push is activated
249
#if [[ ${DO_PUSH} && ${IS_RELEASE} ]];then
250
# echo " Doing commit"
251
# git commit -m "[#1262] Released ${SOFTWARE_VERSION}" .
253
# echo " Pushing commit"
254
# git push origin release
257
# close file descriptor