Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
savoirfairelinux
jami-daemon
Commits
6d5ec1db
Commit
6d5ec1db
authored
Jul 30, 2012
by
Emmanuel Milou
Browse files
[#13281] Add jenkins script to launch packaging
parent
3accee4e
Changes
1
Show whitespace changes
Inline
Side-by-side
tools/build-system/launch-build-machine-jenkins.sh
0 → 100755
View file @
6d5ec1db
#!/bin/bash
#####################################################
# File Name: launch-build-machine.sh
#
# Purpose :
#
# Author: Julien Bonjean (julien@bonjean.info)
#
# Creation Date: 2009-10-20
# Last Modified: 2010-04-22 16:42:57 -0400
#####################################################
#set -x
# . `dirname $0`/setenv.sh
IS_RELEASE
=
VERSION_INDEX
=
"1"
IS_KDE_CLIENT
=
DO_PUSH
=
1
DO_LOGGING
=
1
DO_UPLOAD
=
1
SNAPSHOT_TAG
=
`
date
+%Y%m%d
`
TAG_NAME_PREFIX
=
VERSION_NUMBER
=
"2.1.0"
LAUNCHPAD_PACKAGES
=(
"sflphone-common"
"sflphone-client-kde"
"sflphone-plugins"
)
echo
echo
" /***********************
\\
"
echo
" | SFLPhone build system |"
echo
"
\\
***********************/"
echo
for
PARAMETER
in
$*
do
case
${
PARAMETER
}
in
--help
)
echo
echo
"Options :"
echo
" --skip-push"
echo
" --skip-upload"
echo
" --kde-client"
echo
" --no-logging"
echo
" --release"
echo
" --version-index=[1,2,...]"
echo
exit
0
;;
--skip-push
)
unset
DO_PUSH
;;
--skip-upload
)
unset
DO_UPLOAD
;;
--kde-client
)
IS_KDE_CLIENT
=
1
;;
--no-logging
)
unset
DO_LOGGING
;;
--release
)
IS_RELEASE
=
1
;;
--version-index
=
*
)
VERSION_INDEX
=(
${
PARAMETER
##*=
}
)
;;
*
)
echo
"Unknown parameter :
${
PARAMETER
}
"
exit
-1
;;
esac
done
#########################
# LAUNCHPAD
#########################
# change to working directory
cd
${
LAUNCHPAD_DIR
}
if
[
"
$?
"
-ne
"0"
]
;
then
echo
" !! Cannot cd to launchpad directory"
exit
-1
fi
# logging
if
[
${
DO_LOGGING
}
]
;
then
rm
-f
${
ROOT_DIR
}
/packaging.log
>
/dev/null 2>&1
# open file descriptor
exec
3<
>
${
ROOT_DIR
}
/packaging.log
# redirect outputs (stdout & stderr)
exec
1>&3
exec
2>&3
fi
if
[
${
RELEASE_MODE
}
]
;
then
echo
"Release mode"
else
echo
"Snapshot mode"
fi
if
[
${
IS_KDE_CLIENT
}
]
;
then
TAG_NAME_PREFIX
=
"kde."
fi
#########################
# COMMON PART
#########################
cd
${
REFERENCE_REPOSITORY
}
echo
"Update reference sources"
if
[
${
IS_RELEASE
}
]
;
then
git checkout
.
&&
git checkout
-f
release
&&
git pull
else
git checkout
.
&&
git checkout
-f
master
&&
git pull
fi
echo
"Retrieve build info"
# retrieve info we may need
if
[
${
IS_KDE_CLIENT
}
]
;
then
TAG_NAME_PREFIX
=
"kde."
LAUNCHPAD_PACKAGES
=(
"sflphone-client-kde"
)
fi
CURRENT_RELEASE_TAG_NAME
=
`
git describe
--tags
--abbrev
=
0
`
PREVIOUS_RELEASE_TAG_NAME
=
`
git describe
--tags
--abbrev
=
0
${
CURRENT_RELEASE_TAG_NAME
}
^
`
CURRENT_RELEASE_COMMIT_HASH
=
`
git show
--pretty
=
format:
"%H"
-s
${
CURRENT_RELEASE_TAG_NAME
}
|
tail
-n
1
`
PREVIOUS_RELEASE_COMMIT_HASH
=
`
git show
--pretty
=
format:
"%H"
-s
${
PREVIOUS_RELEASE_TAG_NAME
}
|
tail
-n
1
`
CURRENT_COMMIT
=
`
git show
--pretty
=
format:
"%H"
-s
|
tail
-n
1
`
CURRENT_RELEASE_TYPE
=
${
CURRENT_RELEASE_TAG_NAME
##*.
}
PREVIOUS_RELEASE_TYPE
=
${
PREVIOUS_RELEASE_TAG_NAME
##*.
}
if
[
${
IS_KDE_CLIENT
}
]
;
then
CURRENT_RELEASE_VERSION
=
${
CURRENT_RELEASE_TAG_NAME
%.*
}
CURRENT_RELEASE_VERSION
=
${
CURRENT_RELEASE_VERSION
#*.
}
PREVIOUS_VERSION
=
${
PREVIOUS_RELEASE_TAG_NAME
%.*
}
PREVIOUS_VERSION
=
${
PREVIOUS_VERSION
#*.
}
else
CURRENT_RELEASE_VERSION
=
${
CURRENT_RELEASE_TAG_NAME
}
PREVIOUS_VERSION
=
${
PREVIOUS_RELEASE_TAG_NAME
}
fi
cd
${
LAUNCHPAD_DIR
}
COMMIT_HASH_BEGIN
=
""
COMMIT_HASH_END
=
""
SOFTWARE_VERSION
=
""
LAUNCHPAD_CONF_PREFIX
=
""
if
[
${
IS_RELEASE
}
]
;
then
SOFTWARE_VERSION
=
"
${
CURRENT_RELEASE_VERSION
}
"
COMMIT_HASH_BEGIN
=
"
${
PREVIOUS_RELEASE_COMMIT_HASH
}
"
LAUNCHPAD_CONF_PREFIX
=
"sflphone-testing"
else
SOFTWARE_VERSION
=
"
${
VERSION_NUMBER
}
-rc
${
SNAPSHOT_TAG
}
"
COMMIT_HASH_BEGIN
=
"
${
CURRENT_RELEASE_COMMIT_HASH
}
"
LAUNCHPAD_CONF_PREFIX
=
"sflphone-testing"
fi
VERSION
=
"
${
SOFTWARE_VERSION
}
~ppa
${
VERSION_INDEX
}
~SYSTEM"
echo
"Clean build directory"
git clean
-f
-x
${
LAUNCHPAD_DIR
}
/
*
>
/dev/null
get_dir_name
()
{
case
$1
in
sflphone-common
)
echo
daemon
;;
sflphone-plugins
)
echo
plugins
;;
sflphone-client-gnome
)
echo
gnome
;;
sflphone-client-kde
)
echo
kde
;;
*
)
exit
1
;;
esac
}
for
LAUNCHPAD_PACKAGE
in
${
LAUNCHPAD_PACKAGES
[*]
}
do
echo
" Package:
${
LAUNCHPAD_PACKAGE
}
"
echo
" --> Clean old sources"
git clean
-f
-x
${
LAUNCHPAD_DIR
}
/
${
LAUNCHPAD_PACKAGE
}
/
*
>
/dev/null
DEBIAN_DIR
=
"
${
LAUNCHPAD_DIR
}
/
${
LAUNCHPAD_PACKAGE
}
/debian"
echo
" --> Clean debian directory"
git checkout
${
DEBIAN_DIR
}
echo
" --> Retrieve new sources"
DIRNAME
=
`
get_dir_name
${
LAUNCHPAD_PACKAGE
}
`
cp
-r
${
REFERENCE_REPOSITORY
}
/
${
DIRNAME
}
/
*
${
LAUNCHPAD_DIR
}
/
${
LAUNCHPAD_PACKAGE
}
echo
" --> Update software version number (
${
SOFTWARE_VERSION
}
)"
echo
"
${
SOFTWARE_VERSION
}
"
>
${
LAUNCHPAD_DIR
}
/
${
LAUNCHPAD_PACKAGE
}
/VERSION
echo
" --> Update debian changelog"
cat
<<
END
>
${
WORKING_DIR
}
/sfl-git-dch.conf
WORKING_DIR="
${
REFERENCE_REPOSITORY
}
"
SOFTWARE="
${
LAUNCHPAD_PACKAGE
}
"
VERSION="
${
VERSION
}
"
DISTRIBUTION="SYSTEM"
CHANGELOG_FILE="
${
DEBIAN_DIR
}
/changelog"
COMMIT_HASH_BEGIN="
${
COMMIT_HASH_BEGIN
}
"
COMMIT_HASH_END="
${
COMMIT_HASH_END
}
"
IS_RELEASE=
${
IS_RELEASE
}
export DEBFULLNAME="Emmanuel Milou"
export DEBEMAIL="emmanuel.milou@savoirfairelinux.com"
export EDITOR="echo"
END
${
WORKING_DIR
}
/sfl-git-dch-2.sh
${
WORKING_DIR
}
/sfl-git-dch.conf
${
REFERENCE_REPOSITORY
}
/
${
DIRNAME
}
/
if
[
"
$?
"
-ne
"0"
]
;
then
echo
"!! Cannot update debian changelogs"
exit
-1
fi
if
[
"
${
LAUNCHPAD_PACKAGE
}
"
==
"sflphone-client-kde"
]
;
then
version_kde
=
$(
echo
${
VERSION
}
|
grep
-e
'[0-9]*\.[0-9.]*'
-o
|
head
-n1
)
sed
-i
-e
"s/Standards-Version: [0-9.A-Za-z]*/Standards-Version:
${
version_kde
}
/"
${
LAUNCHPAD_DIR
}
/
${
LAUNCHPAD_PACKAGE
}
/debian/control
tar
-C
${
LAUNCHPAD_DIR
}
/
-cjf
${
LAUNCHPAD_DIR
}
/sflphone-client-kde_
${
version_kde
}
.orig.tar.bz2
${
LAUNCHPAD_PACKAGE
}
fi
rm
-f
${
WORKING_DIR
}
/sfl-git-dch.conf
>
/dev/null 2>&1
cd
${
LAUNCHPAD_DIR
}
cp
${
DEBIAN_DIR
}
/changelog
${
DEBIAN_DIR
}
/changelog.generic
for
LAUNCHPAD_DISTRIBUTION
in
${
LAUNCHPAD_DISTRIBUTIONS
[*]
}
do
LOCAL_VERSION
=
"
${
SOFTWARE_VERSION
}
~ppa
${
VERSION_INDEX
}
~
${
LAUNCHPAD_DISTRIBUTION
}
"
cp
${
DEBIAN_DIR
}
/changelog.generic
${
DEBIAN_DIR
}
/changelog
sed
-i
"s/SYSTEM/
${
LAUNCHPAD_DISTRIBUTION
}
/g"
${
DEBIAN_DIR
}
/changelog
cd
${
LAUNCHPAD_DIR
}
/
${
LAUNCHPAD_PACKAGE
}
if
[
"
$IS_KDE_CLIEN
"
!=
"1"
]
;
then
./autogen.sh
fi
debuild
-S
-sa
-kFDFE4451
cd
${
LAUNCHPAD_DIR
}
if
[
${
DO_UPLOAD
}
]
;
then
dput
-f
-c
${
LAUNCHPAD_DIR
}
/dput.conf
${
LAUNCHPAD_CONF_PREFIX
}
-
${
LAUNCHPAD_DISTRIBUTION
}
${
LAUNCHPAD_PACKAGE
}
_
${
LOCAL_VERSION
}
_source.changes
fi
done
cp
${
DEBIAN_DIR
}
/changelog.generic
${
DEBIAN_DIR
}
/changelog
done
# if push is activated
#if [[ ${DO_PUSH} && ${IS_RELEASE} ]];then
# echo " Doing commit"
# git commit -m "[#1262] Released ${SOFTWARE_VERSION}" .
#
# echo " Pushing commit"
# git push origin release
#fi
# close file descriptor
exec
3>&-
exit
0
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment