Skip to content

Commit 21d8ebc

Browse files
authored
Merge pull request #4265 from easybuilders/4.7.x
release EasyBuild v4.7.2
2 parents 8430804 + bad9a0e commit 21d8ebc

File tree

25 files changed

+380
-268
lines changed

25 files changed

+380
-268
lines changed

.github/workflows/bootstrap_script.yml

Lines changed: 0 additions & 137 deletions
This file was deleted.

.github/workflows/container_tests.yml

Lines changed: 5 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions
2-
name: Tests for container support
2+
name: Tests for Singularity container support
33
on: [push, pull_request]
44

55
permissions:
@@ -11,11 +11,10 @@ concurrency:
1111

1212
jobs:
1313
build:
14-
# stick to Ubuntu 18.04, where we can still easily install yum via 'apt install'
15-
runs-on: ubuntu-18.04
14+
runs-on: ubuntu-22.04
1615
strategy:
1716
matrix:
18-
python: [2.7, 3.6]
17+
python: [2.7, 3.7]
1918
fail-fast: false
2019
steps:
2120
- uses: actions/checkout@v3
@@ -31,7 +30,7 @@ jobs:
3130
# for modules tool
3231
APT_PKGS="lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev"
3332
# for building Singularity images
34-
APT_PKGS+=" rpm yum"
33+
APT_PKGS+=" rpm dnf"
3534
3635
# Avoid apt-get update, as we don't really need it,
3736
# and it does more harm than good (it's fairly expensive, and it results in flaky test runs)
@@ -41,12 +40,6 @@ jobs:
4140
sudo apt-get install $APT_PKGS
4241
fi
4342
44-
# fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082
45-
# needed for Ubuntu 18.04, but not for Ubuntu 20.04, so skipping symlinking if posix.so already exists
46-
if [ ! -e /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so ] ; then
47-
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
48-
fi
49-
5043
- name: install Lmod
5144
run: |
5245
# avoid downloading modules tool sources into easybuild-framework dir
@@ -104,7 +97,7 @@ jobs:
10497
# see https://docs.easybuild.io/en/latest/Containers.html
10598
curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
10699
export EASYBUILD_CONTAINERPATH=$PWD
107-
export EASYBUILD_CONTAINER_CONFIG='bootstrap=yum,osversion=7'
100+
export EASYBUILD_CONTAINER_CONFIG='bootstrap=docker,from=ghcr.io/easybuilders/centos-7.9-python3-amd64'
108101
eb bzip2-1.0.8.eb --containerize --experimental --container-build-image
109102
singularity exec bzip2-1.0.8.sif command -v bzip2 | grep '/app/software/bzip2/1.0.8/bin/bzip2' || (echo "Path to bzip2 '$which_bzip2' is not correct" && exit 1)
110103
singularity exec bzip2-1.0.8.sif bzip2 --help
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# documentation: https://help.github.com/en/articles/workflow-syntax-for-github-actions
2+
name: Tests for Apptainer container support
3+
on: [push, pull_request]
4+
5+
permissions:
6+
contents: read # to fetch code (actions/checkout)
7+
8+
concurrency:
9+
group: ${{format('{0}:{1}:{2}', github.repository, github.ref, github.workflow)}}
10+
cancel-in-progress: true
11+
12+
jobs:
13+
build:
14+
runs-on: ubuntu-22.04
15+
strategy:
16+
matrix:
17+
python: [2.7, 3.7]
18+
apptainer: [1.0.0, 1.1.7]
19+
fail-fast: false
20+
steps:
21+
- uses: actions/checkout@v2
22+
23+
- name: set up Python
24+
uses: actions/setup-python@v2
25+
with:
26+
python-version: ${{matrix.python}}
27+
architecture: x64
28+
29+
- name: install OS & Python packages
30+
run: |
31+
# for building CentOS 7 container images
32+
sudo apt-get install rpm
33+
sudo apt-get install dnf
34+
# for modules tool
35+
sudo apt-get install lua5.2 liblua5.2-dev lua-filesystem lua-posix tcl tcl-dev
36+
# fix for lua-posix packaging issue, see https://bugs.launchpad.net/ubuntu/+source/lua-posix/+bug/1752082
37+
# needed for Ubuntu 18.04, but not for Ubuntu 20.04, so skipping symlinking if posix.so already exists
38+
if [ ! -e /usr/lib/x86_64-linux-gnu/lua/5.2/posix.so ] ; then
39+
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
40+
fi
41+
42+
- name: install Lmod
43+
run: |
44+
# avoid downloading modules tool sources into easybuild-framework dir
45+
cd $HOME
46+
export INSTALL_DEP=$GITHUB_WORKSPACE/easybuild/scripts/install_eb_dep.sh
47+
# install Lmod
48+
source $INSTALL_DEP Lmod-8.4.27 $HOME
49+
# changes in environment are not passed to other steps, so need to create files...
50+
echo $MOD_INIT > mod_init
51+
echo $PATH > path
52+
if [ ! -z $MODULESHOME ]; then echo $MODULESHOME > moduleshome; fi
53+
54+
- name: install Apptainer
55+
run: |
56+
curl -OL https://github.com/apptainer/apptainer/releases/download/v${{matrix.apptainer}}/apptainer_${{matrix.apptainer}}_amd64.deb
57+
sudo apt install ./apptainer*.deb
58+
# Apptainer provides both apptainer and singularity commands
59+
apptainer --version
60+
singularity --version
61+
62+
- name: install sources
63+
run: |
64+
# install from source distribution tarball, to test release as published on PyPI
65+
python setup.py sdist
66+
ls dist
67+
export PREFIX=/tmp/$USER/$GITHUB_SHA
68+
pip install --prefix $PREFIX dist/easybuild-framework*tar.gz
69+
pip install --prefix $PREFIX https://github.com/easybuilders/easybuild-easyblocks/archive/develop.tar.gz
70+
71+
- name: run test
72+
run: |
73+
# run tests *outside* of checked out easybuild-framework directory,
74+
# to ensure we're testing installed version (see previous step)
75+
cd $HOME
76+
# initialize environment for modules tool
77+
if [ -f $HOME/moduleshome ]; then export MODULESHOME=$(cat $HOME/moduleshome); fi
78+
source $(cat $HOME/mod_init); type module
79+
# make sure 'eb' is available via $PATH, and that $PYTHONPATH is set (some tests expect that);
80+
# also pick up changes to $PATH set by sourcing $MOD_INIT
81+
export PREFIX=/tmp/$USER/$GITHUB_SHA
82+
export PATH=$PREFIX/bin:$(cat $HOME/path)
83+
export PYTHONPATH=$PREFIX/lib/python${{matrix.python}}/site-packages:$PYTHONPATH
84+
eb --version
85+
# create $HOME/.rpmmacros, see also https://github.com/apptainer/singularity/issues/241
86+
echo '%_var /var' > $HOME/.rpmmacros
87+
echo '%_dbpath %{_var}/lib/rpm' >> $HOME/.rpmmacros
88+
# build CentOS 7 container image for bzip2 1.0.8 using EasyBuild;
89+
# see https://docs.easybuild.io/en/latest/Containers.html
90+
curl -OL https://raw.githubusercontent.com/easybuilders/easybuild-easyconfigs/develop/easybuild/easyconfigs/b/bzip2/bzip2-1.0.8.eb
91+
export EASYBUILD_CONTAINERPATH=$PWD
92+
export EASYBUILD_CONTAINER_CONFIG='bootstrap=docker,from=ghcr.io/easybuilders/centos-7.9-python3-amd64'
93+
export EASYBUILD_CONTAINER_TYPE='apptainer'
94+
eb bzip2-1.0.8.eb --containerize --experimental --container-build-image
95+
apptainer exec bzip2-1.0.8.sif command -v bzip2 | grep '/app/software/bzip2/1.0.8/bin/bzip2' || (echo "Path to bzip2 '$which_bzip2' is not correct" && exit 1)
96+
apptainer exec bzip2-1.0.8.sif bzip2 --help

.github/workflows/unit_tests.yml

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -120,14 +120,16 @@ jobs:
120120
121121
- name: install GitHub token (if available)
122122
env:
123-
# see https://github.com/<username>/easybuild-framework/settings/secrets
124-
GITHUB_TOKEN: ${{secrets.TEST_GITHUB_TOKEN}}
123+
# token (owned by @boegelbot) with gist permissions (required for some of the tests for GitHub integration);
124+
# this token is not available in pull requests, so tests that require it are skipped in PRs,
125+
# and are only run after the PR gets merged
126+
GITHUB_TOKEN: ${{secrets.CI_UNIT_TESTS_GITHUB_TOKEN}}
125127
run: |
126128
# don't install GitHub token when testing with Lmod 7.x or non-Lmod module tools,
127129
# and only when testing with Lua as module syntax,
128130
# to avoid hitting GitHub rate limit;
129131
# tests that require a GitHub token are skipped automatically when no GitHub token is available
130-
if [[ ! "${{matrix.modules_tool}}" =~ 'Lmod-7' ]] && [[ ! "${{matrix.modules_tool}}" =~ 'modules-' ]] && [[ "${{matrix.modules_syntax}}" == 'Lua' ]]; then
132+
if [[ ! "${{matrix.modules_tool}}" =~ 'Lmod-7' ]] && [[ ! "${{matrix.modules_tool}}" =~ 'modules-' ]] && [[ "${{matrix.module_syntax}}" == 'Lua' ]]; then
131133
if [ ! -z $GITHUB_TOKEN ]; then
132134
if [ "x${{matrix.python}}" == 'x2.6' ];
133135
then SET_KEYRING="keyring.set_keyring(keyring.backends.file.PlaintextKeyring())";

RELEASE_NOTES

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,27 @@ For more detailed information, please see the git log.
44
These release notes can also be consulted at https://easybuild.readthedocs.io/en/latest/Release_notes.html.
55

66

7+
v4.7.2 (27 May 2023)
8+
--------------------
9+
10+
update/bugfix release
11+
12+
- various enhancements, including:
13+
- extend (experimental) support for generating container images with Apptainer (#3975)
14+
- add default download timeout (#4226)
15+
- make the RPATH section check with `readelf -d` in sanity check optional (#4249)
16+
- various bug fixes, including:
17+
- add `make_extension_string` and `_make_extension_list` methods to `EasyBlock` class, so easyblocks can customize them (#3697)
18+
- fix typo in condition guarding installation of GitHub token in CI workflow to run unit tests + fix broken tests related to GitHub integration features (#4216)
19+
- fix --check-github as gist url now includes username (#4231)
20+
- switch to Ubuntu 22.04 in GitHub Actions workflow to run container tests (#4238)
21+
- use "/usr/bin/env python" in test_run_cmd_script (#4241)
22+
- other changes:
23+
- print potential errors after running a command only once (#4065)
24+
- change github_* template descriptions to be somewhat clearer (#4251)
25+
- remove workflow to test bootstrap script (#4255)
26+
27+
728
v4.7.1 (March 20th 2023)
829
------------------------
930

0 commit comments

Comments
 (0)