aboutsummaryrefslogtreecommitdiffstats
path: root/contrib/jenkins.sh
blob: 82cb6d910c562df9c089bc7a5cf12e06063c0696 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#!/bin/sh
# jenkins build helper script for pysim.  This is how we build on jenkins.osmocom.org
#
# environment variables:
# * WITH_MANUALS: build manual PDFs if set to "1"
# * PUBLISH: upload manuals after building if set to "1" (ignored without WITH_MANUALS = "1")
#

set -e

if [ ! -d "./pysim-testdata/" ] ; then
	echo "###############################################"
	echo "Please call from pySim-prog top directory"
	echo "###############################################"
	exit 1
fi

virtualenv -p python3 venv --system-site-packages
. venv/bin/activate
pip install pytlv
pip install pyyaml
pip install cmd2
pip install jsonpath-ng
pip install construct
pip install bidict
pip install gsm0338
pip install nose

# Execute automatically discovered unit tests first
# - cannot use "python -m ./setup.py test" here as that somehow doesn't work in venv
nosetests

# Run pylint to find potential errors
# Ignore E1102: not-callable
#   pySim/filesystem.py: E1102: method is not callable (not-callable)
# Ignore E0401: import-error
#   pySim/utils.py:276: E0401: Unable to import 'Crypto.Cipher' (import-error)
#   pySim/utils.py:277: E0401: Unable to import 'Crypto.Util.strxor' (import-error)
pip install pylint
python -m pylint --errors-only \
	--disable E1102 \
	--disable E0401 \
	pySim *.py

# attempt to build documentation
pip install sphinx
pip install sphinxcontrib-napoleon
pip3 install -e 'git+https://github.com/osmocom/sphinx-argparse@master#egg=sphinx-argparse'
(cd docs && make html latexpdf)

# run the test with physical cards
cd pysim-testdata
../tests/pysim-test.sh

if [ "$WITH_MANUALS" = "1" ] && [ "$PUBLISH" = "1" ]; then
	make -C "$base/docs" publish
fi