1313 setup :
1414 runs-on : ubuntu-20.04
1515 outputs :
16- lmod7 : Lmod-7.8.22
1716 lmod8 : Lmod-8.7.6
18- modulesTcl : modules-tcl-1.147
19- modules3 : modules-3.2.10
20- modules4 : modules-4.1.4
17+ modules4 : modules-4.5.3
18+ modules5 : modules-5.3.1
2119 steps :
2220 - run : " true"
2321 build :
2927 modules_tool :
3028 # use variables defined by 'setup' job above, see also
3129 # https://docs.github.com/en/actions/reference/context-and-expression-syntax-for-github-actions#needs-context
32- - ${{needs.setup.outputs.lmod7}}
3330 - ${{needs.setup.outputs.lmod8}}
34- - ${{needs.setup.outputs.modulesTcl}}
35- - ${{needs.setup.outputs.modules3}}
3631 - ${{needs.setup.outputs.modules4}}
32+ - ${{needs.setup.outputs.modules5}}
3733 lc_all : [""]
3834 include :
3935 # Test different Python 3 versions with Lmod 8.x (with both Lua and Tcl module syntax)
4743 modules_tool : ${{needs.setup.outputs.lmod8}}
4844 - python : ' 3.11'
4945 modules_tool : ${{needs.setup.outputs.lmod8}}
46+ - python : ' 3.12'
47+ modules_tool : ${{needs.setup.outputs.lmod8}}
5048 # There may be encoding errors in Python 3 which are hidden when an UTF-8 encoding is set
5149 # Hence run the tests (again) with LC_ALL=C and Python 3.6 (or any < 3.7)
5250 - python : 3.6
8987 pip install --upgrade pip
9088 pip --version
9189 pip install -r requirements.txt
90+ if ! python -c "import distutils" 2> /dev/null; then
91+ # we need setuptools for distutils in Python 3.12+, needed for python setup.py sdist
92+ pip install --upgrade setuptools
93+ fi
9294 # git config is required to make actual git commits (cfr. tests for GitRepository)
9395 git config --global user.name "Travis CI"
9496 git config --global user.email "[email protected] " @@ -101,12 +103,12 @@ jobs:
101103 # and are only run after the PR gets merged
102104 GITHUB_TOKEN : ${{secrets.CI_UNIT_TESTS_GITHUB_TOKEN}}
103105 run : |
104- # only install GitHub token when testing with Lmod 8.x + Python 3.6 or 3.9, to avoid hitting GitHub rate limit;
106+ # only install GitHub token when testing with Lmod 8.x + Python 3.6 or 3.9, to avoid hitting GitHub rate limit
105107 # tests that require a GitHub token are skipped automatically when no GitHub token is available
106108 if [[ "${{matrix.modules_tool}}" =~ 'Lmod-8' ]] && [[ "${{matrix.python}}" =~ 3.[69] ]]; then
107109 if [ ! -z $GITHUB_TOKEN ]; then
108- SET_KEYRING="import keyrings.alt.file; keyring.set_keyring(keyrings.alt.file.PlaintextKeyring())";
109- python -c "import keyring; $SET_KEYRING; keyring.set_password('github_token', 'easybuild_test', '$GITHUB_TOKEN')";
110+ SET_KEYRING="import keyrings.alt.file; keyring.set_keyring(keyrings.alt.file.PlaintextKeyring())"
111+ python -c "import keyring; $SET_KEYRING; keyring.set_password('github_token', 'easybuild_test', '$GITHUB_TOKEN')"
110112 fi
111113 echo "GitHub token installed!"
112114 else
@@ -138,7 +140,7 @@ jobs:
138140 python setup.py sdist
139141 ls dist
140142 export PREFIX=/tmp/$USER/$GITHUB_SHA
141- pip install --prefix $PREFIX dist/easybuild- framework*tar.gz
143+ pip install --prefix $PREFIX dist/easybuild[-_] framework*tar.gz
142144
143145 - name : run test suite
144146 env :
@@ -158,11 +160,7 @@ jobs:
158160 export PYTHONPATH=$PREFIX/lib/python${{matrix.python}}/site-packages:$PYTHONPATH
159161 eb --version
160162 # tell EasyBuild which modules tool is available
161- if [[ ${{matrix.modules_tool}} =~ ^modules-tcl- ]]; then
162- export EASYBUILD_MODULES_TOOL=EnvironmentModulesTcl
163- elif [[ ${{matrix.modules_tool}} =~ ^modules-3 ]]; then
164- export EASYBUILD_MODULES_TOOL=EnvironmentModulesC
165- elif [[ ${{matrix.modules_tool}} =~ ^modules-4 ]]; then
163+ if [[ ${{matrix.modules_tool}} =~ ^modules- ]]; then
166164 export EASYBUILD_MODULES_TOOL=EnvironmentModules
167165 else
168166 export EASYBUILD_MODULES_TOOL=Lmod
@@ -176,7 +174,7 @@ jobs:
176174 echo "Not testing with '${module_syntax}' as module syntax with '${EASYBUILD_MODULES_TOOL}' as modules tool"
177175 continue
178176 fi
179- printf ' \n\n=====================> Using $module_syntax module syntax <=====================\n\n'
177+ printf " \n\n=====================> Using $module_syntax module syntax <=====================\n\n"
180178 export EASYBUILD_MODULE_SYNTAX="${module_syntax}"
181179 export TEST_EASYBUILD_MODULE_SYNTAX="${EASYBUILD_MODULE_SYNTAX}"
182180
@@ -191,7 +189,17 @@ jobs:
191189 # run test suite
192190 python -O -m test.framework.suite 2>&1 | tee test_framework_suite.log
193191 # try and make sure output of running tests is clean (no printed messages/warnings)
194- IGNORE_PATTERNS="no GitHub token available|skipping SvnRepository test|requires Lmod as modules tool|stty: 'standard input': Inappropriate ioctl for device|CryptographyDeprecationWarning: Python 3.[56]|from cryptography.* import |CryptographyDeprecationWarning: Python 2|Blowfish|GC3Pie not available, skipping test"
192+ IGNORE_PATTERNS="no GitHub token available"
193+ IGNORE_PATTERNS+="|skipping SvnRepository test"
194+ IGNORE_PATTERNS+="|requires Lmod as modules tool"
195+ IGNORE_PATTERNS+="|stty: 'standard input': Inappropriate ioctl for device"
196+ IGNORE_PATTERNS+="|CryptographyDeprecationWarning: Python 3.[56]"
197+ IGNORE_PATTERNS+="|from cryptography.* import "
198+ IGNORE_PATTERNS+="|CryptographyDeprecationWarning: Python 2"
199+ IGNORE_PATTERNS+="|Blowfish"
200+ IGNORE_PATTERNS+="|GC3Pie not available, skipping test"
201+ IGNORE_PATTERNS+="|CryptographyDeprecationWarning: TripleDES has been moved"
202+ IGNORE_PATTERNS+="|algorithms.TripleDES"
195203 # '|| true' is needed to avoid that GitHub Actions stops the job on non-zero exit of grep (i.e. when there are no matches)
196204 PRINTED_MSG=$(egrep -v "${IGNORE_PATTERNS}" test_framework_suite.log | grep '\.\n*[A-Za-z]' || true)
197205 test "x$PRINTED_MSG" = "x" || (echo "ERROR: Found printed messages in output of test suite" && echo "${PRINTED_MSG}" && exit 1)
0 commit comments