Merge pull request #3 from smoors/pr_to_pr205 #392
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions | |
name: Test installation of EESSI test suite with 'pip install' | |
on: [push, pull_request, workflow_dispatch] | |
permissions: read-all | |
jobs: | |
test_pip_install: | |
# ubuntu <= 20.04 is required for python 3.6 | |
runs-on: ubuntu-20.04 | |
strategy: | |
fail-fast: false | |
matrix: | |
python-version: ['3.6', '3.7', '3.8', '3.9', '3.10', '3.11'] | |
steps: | |
- name: Check out repository | |
uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1 | |
with: | |
persist-credentials: false | |
fetch-depth: 0 | |
- name: Set up Python | |
uses: actions/setup-python@61a6322f88396a6271a6ee3565807d608ecaddd1 # v4.7.0 | |
with: | |
python-version: ${{ matrix.python-version }} | |
- name: Install setuptools | |
run: | | |
if [[ "${{ matrix.python-version }}" == "3.6" ]]; then | |
# system installed setuptools version in RHEL8 and CO7 | |
python -m pip install --user setuptools==39.2.0 | |
fi | |
- name: Install ReFrame | |
run: | | |
python -m pip install --user ReFrame-HPC | |
- name: Install EESSI test suite with 'pip install' | |
run: | | |
# Make it easier to figure out CI issues in case of CI failures related to SCM versioning | |
export SETUPTOOLS_SCM_DEBUG=1 | |
# install from source distribution tarball, to test release as published on PyPI | |
rm -rf dist | |
echo "Running python setup.py sdist" | |
python setup.py sdist | |
ls dist | |
echo "Running python -m pip install --user dist/eessi*.tar.gz" | |
python -m pip install --user dist/eessi*.tar.gz | |
echo "Checking contents of .local" | |
find $HOME/.local | |
# make sure we are not in the source directory | |
cd $HOME | |
python --version | |
python -m pip --version | |
python -c 'import setuptools; print("setuptools", setuptools.__version__)' | |
echo "Checking if file 'eessi/testsuite/_version.py' was generated by setuptools_scm": | |
cat $HOME/.local/lib/python${{ matrix.python-version}}/site-packages/eessi/testsuite/_version.py | |
echo "Checking if version can be imported directly from the version file" | |
if [[ "${{ matrix.python-version }}" == "3.6" ]]; then | |
versionfile_version=$(python -c 'from eessi.testsuite._version import version; print(version)') | |
else | |
versionfile_version=$(python -c 'from eessi.testsuite._version import __version__; print(__version__)') | |
fi | |
echo "Version from version file: $versionfile_version" | |
echo "Checking if we can import the __version__ from eessi.testsuite" | |
testsuite_version=$(python -c 'import eessi.testsuite; print(eessi.testsuite.__version__)') | |
echo "Version imported from eessi.testsuite: $testsuite_version" | |
echo "Checking if the version imported from eessi.testsuite matches that from the version file ..." | |
if [[ "$versionfile_version" != "$testsuite_version" ]]; then | |
echo "Version $versionfile_version not equal to $testsuite_version" | |
exit 1 | |
else | |
echo "... yes!" | |
fi | |
echo "Checking if we can import eessi.testsuite.utils" | |
python -c 'import eessi.testsuite.utils' | |
echo "Checking if we can import eessi.testsuite.tests.apps" | |
python -c 'import eessi.testsuite.tests.apps' | |
- name: Install EESSI test suite with 'pip install git+https' | |
run: | | |
# Get version from the installation in the previous step | |
testsuite_version=$(python -c 'import eessi.testsuite; print(eessi.testsuite.__version__)') | |
# Cleanup installation from previous step | |
echo "Uninstalling testsuite for next step" | |
python -m pip uninstall -y eessi-testsuite | |
pip install --user "git+$GITHUB_SERVER_URL/$GITHUB_REPOSITORY.git@$GITHUB_SHA" | |
echo "Checking contents of .local" | |
find $HOME/.local | |
echo "Checking if file 'eessi/testsuite/_version.py' was generated by setuptools_scm": | |
cat $HOME/.local/lib/python${{ matrix.python-version}}/site-packages/eessi/testsuite/_version.py | |
echo "Checking if version can be imported directly from the version file" | |
if [[ "${{ matrix.python-version }}" == "3.6" ]]; then | |
githttps_versionfile_version=$(python -c 'from eessi.testsuite._version import version; print(version)') | |
else | |
githttps_versionfile_version=$(python -c 'from eessi.testsuite._version import __version__; print(__version__)') | |
fi | |
echo "Version from version file: $githttps_versionfile_version" | |
echo "Checking if we can import the __version__ from eessi.testsuite" | |
githttps_testsuite_version=$(python -c 'import eessi.testsuite; print(eessi.testsuite.__version__)') | |
echo "Version imported from eessi.testsuite: $githttps_testsuite_version" | |
echo "Checking if the version imported from eessi.testsuite matches that from the version file ..." | |
if [[ "$githttps_versionfile_version" != "$githttps_testsuite_version" ]]; then | |
echo "Version $githttps_versionfile_version not equal to $githttps_testsuite_version" | |
exit 1 | |
else | |
echo "... yes!" | |
fi | |
echo "Checking if the version import from a regular pip install and the git+https based install are the same ..." | |
if [[ "$githttps_testsuite_version" != "$testsuite_version" ]]; then | |
echo "Version $githttps_testsuite_version not equal to $testsuite_version" | |
exit 1 | |
else | |
echo "... yes!" | |
fi | |
echo "Checking if we can import eessi.testsuite.utils" | |
python -c 'import eessi.testsuite.utils' | |
echo "Checking if we can import eessi.testsuite.tests.apps" | |
python -c 'import eessi.testsuite.tests.apps' | |