-
Notifications
You must be signed in to change notification settings - Fork 203
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'easybuilders:develop' into deprecate_template_failure
- Loading branch information
Showing
51 changed files
with
1,497 additions
and
335 deletions.
There are no files selected for viewing
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
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,61 @@ | ||
name: End-to-end test of EasyBuild in different distros | ||
on: [push, pull_request] | ||
jobs: | ||
build_publish: | ||
name: End-to-end test | ||
runs-on: ubuntu-latest | ||
strategy: | ||
matrix: | ||
container: | ||
- centos-7.9 | ||
- centos-8.5 | ||
- fedora-36 | ||
- opensuse-15.4 | ||
- rockylinux-8.8 | ||
- rockylinux-9.2 | ||
- ubuntu-20.04 | ||
- ubuntu-22.04 | ||
fail-fast: false | ||
container: | ||
image: ghcr.io/easybuilders/${{ matrix.container }}-amd64 | ||
steps: | ||
- name: Check out the repo | ||
uses: actions/checkout@v3 | ||
|
||
- name: download and unpack easyblocks and easyconfigs repositories | ||
run: | | ||
cd $HOME | ||
for pkg in easyblocks easyconfigs; do | ||
curl -OL https://github.com/easybuilders/easybuild-${pkg}/archive/develop.tar.gz | ||
tar xfz develop.tar.gz | ||
rm -f develop.tar.gz | ||
done | ||
- name: Set up environment | ||
shell: bash | ||
run: | | ||
# collect environment variables to be set in subsequent steps in script that can be sourced | ||
echo "export PATH=$PWD:$PATH" > /tmp/eb_env | ||
echo "export PYTHONPATH=$PWD:$HOME/easybuild-easyblocks-develop:$HOME/easybuild-easyconfigs-develop" >> /tmp/eb_env | ||
- name: Run commands to check test environment | ||
shell: bash | ||
run: | | ||
cmds=( | ||
"whoami" | ||
"pwd" | ||
"env | sort" | ||
"eb --version" | ||
"eb --show-system-info" | ||
"eb --check-eb-deps" | ||
"eb --show-config" | ||
) | ||
for cmd in "${cmds[@]}"; do | ||
echo ">>> $cmd" | ||
sudo -u easybuild bash -l -c "source /tmp/eb_env; $cmd" | ||
done | ||
- name: End-to-end test of installing bzip2 with EasyBuild | ||
shell: bash | ||
run: | | ||
sudo -u easybuild bash -l -c "source /tmp/eb_env; eb bzip2-1.0.8.eb --trace --robot" |
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
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
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,81 @@ | ||
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions | ||
name: EasyBuild framework unit tests (python2) | ||
on: [push, pull_request] | ||
|
||
permissions: | ||
contents: read # to fetch code (actions/checkout) | ||
|
||
concurrency: | ||
group: ${{format('{0}:{1}:{2}', github.repository, github.ref, github.workflow)}} | ||
cancel-in-progress: true | ||
|
||
jobs: | ||
test_python2: | ||
runs-on: ubuntu-20.04 | ||
container: | ||
# CentOS 7.9 container that already includes Lmod & co, | ||
# see https://github.com/easybuilders/easybuild-containers | ||
image: ghcr.io/easybuilders/centos-7.9-amd64 | ||
steps: | ||
- uses: actions/checkout@v3 | ||
|
||
- name: install Python packages | ||
run: | | ||
# Python packages | ||
python2 -V | ||
python2 -m pip --version | ||
python2 -m pip install --upgrade pip | ||
python2 -m pip --version | ||
# strip out GC3Pie since installation with ancient setuptools (0.9.8) fails | ||
sed -i '/GC3Pie/d' requirements.txt | ||
python2 -m pip install -r requirements.txt | ||
# git config is required to make actual git commits (cfr. tests for GitRepository) | ||
sudo -u easybuild git config --global user.name "GitHub Actions" | ||
sudo -u easybuild git config --global user.email "actions@github.com" | ||
sudo -u easybuild git config --get-regexp 'user.*' | ||
- name: install GitHub token (if available) | ||
env: | ||
# token (owned by @boegelbot) with gist permissions (required for some of the tests for GitHub integration); | ||
# this token is not available in pull requests, so tests that require it are skipped in PRs, | ||
# and are only run after the PR gets merged | ||
GITHUB_TOKEN: ${{secrets.CI_UNIT_TESTS_GITHUB_TOKEN}} | ||
run: | | ||
# tests that require a GitHub token are skipped automatically when no GitHub token is available | ||
if [ ! -z $GITHUB_TOKEN ]; then | ||
sudo -u easybuild python2 -c "import keyring; import keyrings.alt.file; keyring.set_keyring(keyrings.alt.file.PlaintextKeyring()); keyring.set_password('github_token', 'easybuild_test', '$GITHUB_TOKEN')"; | ||
echo "GitHub token installed!" | ||
else | ||
echo "Installation of GitHub token skipped!" | ||
fi | ||
- name: install sources | ||
run: | | ||
# install from source distribution tarball, to test release as published on PyPI | ||
python2 setup.py sdist | ||
ls dist | ||
export PREFIX=/tmp/$USER/$GITHUB_SHA | ||
python2 -m pip install --prefix $PREFIX dist/easybuild-framework*tar.gz | ||
- name: run test suite | ||
run: | | ||
# run tests *outside* of checked out easybuild-framework directory, | ||
# to ensure we're testing installed version (see previous step) | ||
cd $HOME | ||
# make sure 'eb' is available via $PATH, and that $PYTHONPATH is set (some tests expect that) | ||
export PREFIX=/tmp/$USER/$GITHUB_SHA | ||
ENV_CMDS="export PATH=$PREFIX/bin:$PATH; export PYTHONPATH=$PREFIX/lib/python2.7/site-packages:$PYTHONPATH" | ||
ENV_CMDS="${ENV_CMDS}; export EB_VERBOSE=1; export EB_PYTHON=python2; export TEST_EASYBUILD_SILENCE_DEPRECATION_WARNINGS=python2" | ||
# run EasyBuild command via (non-root) easybuild user + login shell | ||
sudo -u easybuild bash -l -c "${ENV_CMDS}; module --version; eb --version" | ||
# show active EasyBuild configuration | ||
sudo -u easybuild bash -l -c "${ENV_CMDS}; eb --show-config" | ||
# gather some useful info on test system | ||
sudo -u easybuild bash -l -c "${ENV_CMDS}; eb --show-system-info" | ||
# check GitHub configuration | ||
sudo -u easybuild bash -l -c "${ENV_CMDS}; eb --check-github --github-user=easybuild_test" | ||
# create file owned by root but writable by anyone (used by test_copy_file) | ||
sudo touch /tmp/file_to_overwrite_for_easybuild_test_copy_file.txt | ||
sudo chmod o+w /tmp/file_to_overwrite_for_easybuild_test_copy_file.txt | ||
# run test suite (via easybuild user + login shell) | ||
sudo -u easybuild bash -l -c "${ENV_CMDS}; python2 -O -m test.framework.suite" |
Oops, something went wrong.