python $APPLY_BOT_FILTER_SCRIPT || exit 0
before_script:
+ - source tools/ci/setup_python.sh
- *git_clean_stale_submodules
# apply bot filter in before script
- *apply_bot_filter
# used for check scripts which we want to run unconditionally
.do_nothing_before_no_filter:
before_script: &do_nothing_before_no_filter
+ - source tools/ci/setup_python.sh
- *git_clean_stale_submodules
# used for everything else where we want to do no prep, except for bot filter
.do_nothing_before:
before_script: &do_nothing_before
+ - source tools/ci/setup_python.sh
- *git_clean_stale_submodules
# apply bot filter in before script
- *apply_bot_filter
.add_gitlab_key_before:
before_script: &add_gitlab_key_before
+ - source tools/ci/setup_python.sh
- *git_clean_stale_submodules
# apply bot filter in before script
- *apply_bot_filter
--- /dev/null
+#! /bin/bash
+
+# Regexp for matching job names which are incompatible with Python 3
+py3_incomp='assign_test|UT|IT'
+
+if [ -z ${PYTHON_VER+x} ] || [[ $CI_JOB_NAME =~ $py3_incomp ]]; then
+ # Use this version of the Python interpreter if it was not defined before or
+ # the given job is not compatible with Python 3
+ PYTHON_VER=2.7.15
+fi
+
+if [ -f /opt/pyenv/activate ];
+then
+ source /opt/pyenv/activate
+ pyenv global $PYTHON_VER || {
+ echo 'Python' $PYTHON_VER 'is not installed.'
+ INSTALLED_PY_VERS=$(pyenv versions --bare)
+
+ while [ ${#PYTHON_VER} -gt 0 ]
+ do
+ echo 'Tring to locate a match for' $PYTHON_VER
+
+ for ver in ${INSTALLED_PY_VERS[@]}
+ do
+ if [[ $ver == $PYTHON_VER* ]];
+ then
+ pyenv global $ver
+ break 2
+ fi
+ done
+
+ # Removing last character and trying to find some match.
+ # For example, if 3.4.8 was selected but isn't installed then it will try to
+ # find some other installed 3.4.X version, and then some 3.X.X version.
+ PYTHON_VER=${PYTHON_VER: : -1}
+ done
+ }
+ python --version || {
+ echo 'No matching Python interpreter is found!'
+ exit 1
+ }
+elif command -v python -V 1>/dev/null 2>&1;
+then
+ python --version
+ echo 'No /opt/pyenv/activate exists and Python from path is used.'
+else
+ echo 'No /opt/pyenv/activate exists and no Python interpreter is found!'
+ exit 1
+fi