package.sh 2.97 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#!/bin/bash

# This script is to package the nMolDyn package for Mac OS X

#############################
# CONFIGURATION
#############################

## Add some colors
VERT="\\033[1;32m"
NORMAL="\\033[0;39m"
ROUGE="\\033[1;31m"
ROSE="\\033[1;35m"
BLEU="\\033[1;34m"
BLANC="\\033[0;02m"
BLANCLAIR="\\033[1;08m"
JAUNE="\\033[1;33m"
CYAN="\\033[1;36m"

##Select the build target
BUILD_TARGET=darwin

eric pellegrini's avatar
eric pellegrini committed
23
24
echo ${CI_BUILD_TAG}

Jamie Hall's avatar
Jamie Hall committed
25
cd ../../../
26

27
28
# old way to get MDANSE version
#declare -x MDANSE_VERSION=$(perl -pe '($_)=/([0-9]+([.][0-9]+)+)/' MDANSE/__pkginfo__.py)
Jamie Hall's avatar
Jamie Hall committed
29
30

# Which version name are we appending to the final archive
31
TARGET_DIR=MDANSE-${CI_BUILD_TAG}-${BUILD_TARGET}
Jamie Hall's avatar
Jamie Hall committed
32
33
34
35
36

# take the latest version of nmoldyn available on the forge
echo -e "$BLEU""Getting last MDANSE revision" "$NORMAL"

# Get revision number from git (without trailing newline)
37
38
REV_NUMBER=$(git rev-list --count HEAD)
echo "$BLEU""Revision number is -->${REV_NUMBER}<--" "$NORMAL"
Jamie Hall's avatar
Jamie Hall committed
39
40
41

# Add current revision number to python source code (will appear in "About..." dialog)
# see http://stackoverflow.com/questions/7648328/getting-sed-error
42
43
sed -i "/__version__/c\__version__ = '${CI_BUILD_TAG}'" MDANSE/__pkginfo__.py
sed -i "/__revision__/c\__revision__ = '${REV_NUMBER}'/" MDANSE/__pkginfo__.py
Jamie Hall's avatar
Jamie Hall committed
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73

# Now build last version and install it in our homebrewed python
echo -e "$BLEU""Building MDANSE" "$NORMAL"

# Clean up temporary build directories
rm -rf build
rm -rf dist

# Remove previous install of MDANSE
rm /usr/local/bin/mdanse*
rm /usr/local/lib/python2.7/site-packages/MDANSE*.egg-info
rm -rf /usr/local/lib/python2.7/site-packages/MDANSE

# Build and install MDANSE to the homebrewed python
/usr/local/bin/python setup.py build
/usr/local/bin/python setup.py install

# Performs the unit tests
cd Tests/UnitTests
nosetests --verbosity=3 -P .
cd ../..

cd Tests/FunctionalTests/Jobs
python BuildJobTests.py
nosetests --verbosity=3 --exe -P .
cd ../../..

echo -e "$BLEU""Packaging MDANSE" "$NORMAL"
rm -rf BuildServer/Darwin/Build
mkdir BuildServer/Darwin/Build
74

Jamie Hall's avatar
Jamie Hall committed
75
76
77
78
79
80
81
82
83
84
85
# debug option for py2app, if needed
export DISTUTILS_DEBUG=0

cd BuildServer/Darwin/Scripts

/usr/local/bin/python build.py py2app

rc=$?
if [[ $rc != 0 ]]; then
	echo -e "$ROUGE""Cannot build app." "$NORMAL"
	exit 1
86
87
fi

Jamie Hall's avatar
Jamie Hall committed
88
89
90
91
92
cd ../Build

# Do some manual cleanup, e.g.
# matplotlib/tests ==> 45.2 Mb
rm -rf dist/MDANSE.app/Contents/Resources/lib/python2.7/matplotlib/tests
93
rm -rf dist/MDANSE.app/Contents/Resources/mpl-data/sample_data
Jamie Hall's avatar
Jamie Hall committed
94
95

#Add MDANSE version file (should read the version from the bundle with pyobjc, but will figure that out later)
96
echo "${CI_BUILD_TAG"> dist/MDANSE.app/Contents/Resources/version
Jamie Hall's avatar
Jamie Hall committed
97

98
MDANSE_DMG=MDANSE-${CI_BUILD_TAG}-${BUILD_TARGET}.dmg
Jamie Hall's avatar
Jamie Hall committed
99
100
101
102
103
104
105
106

rm -f ./${MDANSE_DMG}
rm -f ./rw.${MDANSE_DMG}

hdiutil unmount /Volumes/MDANSE -force -quiet

sleep 5

Jamie Hall's avatar
Jamie Hall committed
107
../Tools/create-dmg/create-dmg --background "../Resources/background.jpg" --volname "MDANSE" --window-pos 200 120 --window-size 800 400 --icon MDANSE.app 200 190 --hide-extension MDANSE.app --app-drop-link 600 185 ${MDANSE_DMG} ./dist
Jamie Hall's avatar
Jamie Hall committed
108
109

exit