mirror of
https://gitea.osmocom.org/sim-card/pysim.git
synced 2026-03-16 18:38:32 +03:00
Remove the previous workaround that set cmd2==2.4.3 in jenkins.sh. The bug this worked around has been fixed in 2.6.2. 3.0 will break unless we use some new additional decorator. Related: OS#6776 Change-Id: I4ba65ed486247c5670313b75f43a242d264df14b
99 lines
2.5 KiB
Bash
Executable File
99 lines
2.5 KiB
Bash
Executable File
#!/bin/sh -xe
|
|
# 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")
|
|
# * JOB_TYPE: one of 'test', 'distcheck', 'pylint', 'docs'
|
|
# * SKIP_CLEAN_WORKSPACE: don't run osmo-clean-workspace.sh (for pyosmocom CI)
|
|
#
|
|
|
|
export PYTHONUNBUFFERED=1
|
|
|
|
if [ ! -d "./tests/" ] ; then
|
|
echo "###############################################"
|
|
echo "Please call from pySim-prog top directory"
|
|
echo "###############################################"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$SKIP_CLEAN_WORKSPACE" ]; then
|
|
osmo-clean-workspace.sh
|
|
fi
|
|
|
|
case "$JOB_TYPE" in
|
|
"test")
|
|
virtualenv -p python3 venv --system-site-packages
|
|
. venv/bin/activate
|
|
|
|
pip install -r requirements.txt
|
|
pip install pyshark
|
|
|
|
# Execute automatically discovered unit tests first
|
|
python -m unittest discover -v -s tests/unittests
|
|
|
|
# Run pySim-prog integration tests (requires physical cards)
|
|
cd tests/pySim-prog_test/
|
|
./pySim-prog_test.sh
|
|
cd ../../
|
|
|
|
# Run pySim-trace test
|
|
tests/pySim-trace_test/pySim-trace_test.sh
|
|
|
|
# Run pySim-shell integration tests (requires physical cards)
|
|
python3 -m unittest discover -v -s ./tests/pySim-shell_test/
|
|
;;
|
|
"distcheck")
|
|
virtualenv -p python3 venv --system-site-packages
|
|
. venv/bin/activate
|
|
|
|
pip install .
|
|
pip install pyshark
|
|
|
|
for prog in venv/bin/pySim-*.py; do
|
|
$prog --help > /dev/null
|
|
done
|
|
;;
|
|
"pylint")
|
|
# Print pylint version
|
|
pip3 freeze | grep pylint
|
|
|
|
virtualenv -p python3 venv --system-site-packages
|
|
. venv/bin/activate
|
|
|
|
pip install .
|
|
|
|
# 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)
|
|
python3 -m pylint -j0 --errors-only \
|
|
--disable E1102 \
|
|
--disable E0401 \
|
|
--enable W0301 \
|
|
pySim tests/unittests/*.py *.py \
|
|
contrib/*.py
|
|
;;
|
|
"docs")
|
|
virtualenv -p python3 venv --system-site-packages
|
|
. venv/bin/activate
|
|
|
|
pip install -r requirements.txt
|
|
|
|
rm -rf docs/_build
|
|
make -C "docs" html latexpdf
|
|
|
|
if [ "$WITH_MANUALS" = "1" ] && [ "$PUBLISH" = "1" ]; then
|
|
make -C "docs" publish publish-html
|
|
fi
|
|
;;
|
|
*)
|
|
set +x
|
|
echo "ERROR: JOB_TYPE has unexpected value '$JOB_TYPE'."
|
|
exit 1
|
|
esac
|
|
|
|
osmo-clean-workspace.sh
|