99 python : [2.7, 3.5, 3.6, 3.7, 3.8, 3.9]
1010 modules_tool : [Lmod-7.8.22, Lmod-8.2.9, modules-tcl-1.147, modules-3.2.10, modules-4.1.4]
1111 module_syntax : [Lua, Tcl]
12+ lc_all : [""]
1213 # exclude some configuration for non-Lmod modules tool:
1314 # - don't test with Lua module syntax (only supported in Lmod)
1415 # - exclude Python 3.x versions other than 3.6, to limit test configurations
5152 python : 3.8
5253 - modules_tool : Lmod-7.8.22
5354 python : 3.9
55+ # There may be encoding errors in Python 3 which are hidden when an UTF-8 encoding is set
56+ # Hence run the tests (again) with LC_ALL=C and Python 3.6 (or any < 3.7)
57+ include :
58+ - python : 3.6
59+ modules_tool : Lmod-8.2.9
60+ module_syntax : Lua
61+ lc_all : C
5462 fail-fast : false
5563 steps :
5664 - uses : actions/checkout@v2
6977 # for modules tool
7078 sudo apt-get install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev
7179 # fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082
72- sudo ln -s /usr/lib/x86_64-linux-gnu/lua/5.2/posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so
80+ # needed for Ubuntu 18.04, but not for Ubuntu 20.04, so skipping symlinking if posix.so already exists
81+ if [ ! -e /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so ] ; then
82+ sudo ln -s /usr/lib/x86_64-linux-gnu/lua/5.2/posix_c.so /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so
83+ fi
7384 # for GitPython, python-hglib
7485 sudo apt-get install git mercurial
7586 # dep for GC3Pie
@@ -129,7 +140,11 @@ jobs:
129140 EB_VERBOSE : 1
130141 EASYBUILD_MODULE_SYNTAX : ${{matrix.module_syntax}}
131142 TEST_EASYBUILD_MODULE_SYNTAX : ${{matrix.module_syntax}}
143+ LC_ALL : ${{matrix.lc_all}}
132144 run : |
145+ # run tests *outside* of checked out easybuild-framework directory,
146+ # to ensure we're testing installed version (see previous step)
147+ cd $HOME
133148 # initialize environment for modules tool
134149 if [ -f $HOME/moduleshome ]; then export MODULESHOME=$(cat $HOME/moduleshome); fi
135150 source $(cat $HOME/mod_init); type module
@@ -161,15 +176,12 @@ jobs:
161176 # run test suite
162177 python -O -m test.framework.suite 2>&1 | tee test_framework_suite.log
163178 # try and make sure output of running tests is clean (no printed messages/warnings)
164- IGNORE_PATTERNS="no GitHub token available|skipping SvnRepository test|requires Lmod as modules tool|stty: 'standard input': Inappropriate ioctl for device|CryptographyDeprecationWarning: Python 3.5|from cryptography.*default_backend"
179+ IGNORE_PATTERNS="no GitHub token available|skipping SvnRepository test|requires Lmod as modules tool|stty: 'standard input': Inappropriate ioctl for device|CryptographyDeprecationWarning: Python 3.5|from cryptography.*default_backend|CryptographyDeprecationWarning: Python 2 "
165180 # '|| true' is needed to avoid that Travis stops the job on non-zero exit of grep (i.e. when there are no matches)
166181 PRINTED_MSG=$(egrep -v "${IGNORE_PATTERNS}" test_framework_suite.log | grep '\.\n*[A-Za-z]' || true)
167182 test "x$PRINTED_MSG" = "x" || (echo "ERROR: Found printed messages in output of test suite\n${PRINTED_MSG}" && exit 1)
168183
169184 - name : test bootstrap script
170- # skip testing of bootstrap script with Python 3.9,
171- # until an EasyBuild release that is compatible with Python 3.9 is available
172- if : ${{ matrix.python != 3.9 }}
173185 run : |
174186 # (re)initialize environment for modules tool
175187 if [ -f $HOME/moduleshome ]; then export MODULESHOME=$(cat $HOME/moduleshome); fi
@@ -189,7 +201,7 @@ jobs:
189201 EB_BOOTSTRAP_VERSION=$(grep '^EB_BOOTSTRAP_VERSION' easybuild/scripts/bootstrap_eb.py | sed 's/[^0-9.]//g')
190202 EB_BOOTSTRAP_SHA256SUM=$(sha256sum easybuild/scripts/bootstrap_eb.py | cut -f1 -d' ')
191203 EB_BOOTSTRAP_FOUND="$EB_BOOTSTRAP_VERSION $EB_BOOTSTRAP_SHA256SUM"
192- EB_BOOTSTRAP_EXPECTED="20200820 .01 d490d229a18bd5eaa717bb8d5684d754729143d5e995e35a40c84d03ffb1de50 "
204+ EB_BOOTSTRAP_EXPECTED="20210106 .01 c2d93de0dd91123eb4f51cfc16d1f5efb80f1d238b3d6cd100994086887a1ae0 "
193205 test "$EB_BOOTSTRAP_FOUND" = "$EB_BOOTSTRAP_EXPECTED" || (echo "Version check on bootstrap script failed $EB_BOOTSTRAP_FOUND" && exit 1)
194206
195207 # test bootstrap script
0 commit comments