Skip to content

Commit f0e8d50

Browse files
author
Vasileios Karakasis
authored
Merge branch 'master' into nodelist
2 parents 5b69e45 + e8a81b3 commit f0e8d50

File tree

13 files changed

+151
-129
lines changed

13 files changed

+151
-129
lines changed
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
FROM ubuntu:20.04
2+
3+
ENV TZ=Europe/Zurich
4+
ENV DEBIAN_FRONTEND=noninteractive
5+
ENV _LMOD_VER=8.4.12
6+
7+
# ReFrame requirements
8+
RUN \
9+
apt-get -y update && \
10+
apt-get -y install ca-certificates && \
11+
update-ca-certificates && \
12+
apt-get -y install gcc make git python3 python3-pip
13+
14+
# Required utilities
15+
RUN apt-get -y install wget
16+
17+
# Install Lmod
18+
RUN \
19+
apt-get -y install lua5.3 lua-bit32:amd64 lua-posix:amd64 lua-posix-dev liblua5.3-0:amd64 liblua5.3-dev:amd64 tcl tcl-dev tcl8.6 tcl8.6-dev:amd64 libtcl8.6:amd64 && \
20+
wget -q https://github.com/TACC/Lmod/archive/${_LMOD_VER}.tar.gz -O lmod.tar.gz && \
21+
tar xzf lmod.tar.gz && \
22+
cd Lmod-${_LMOD_VER} && \
23+
./configure && make install && \
24+
cd .. && rm -rf lmod.tar.gz Lmod-${_LMOD_VER} && \
25+
apt-get clean && \
26+
rm -rf /var/lib/apt/lists/*
27+
28+
ENV BASH_ENV=/usr/local/lmod/lmod/init/profile

ci-scripts/dockerfiles/Lmod.dockerfile

Lines changed: 1 addition & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -2,38 +2,12 @@
22
# Execute this from the top-level ReFrame source directory
33
#
44

5-
FROM ubuntu:20.04
65

7-
ENV TZ=Europe/Zurich
8-
ENV DEBIAN_FRONTEND=noninteractive
9-
ENV _LMOD_VER=8.4.12
6+
FROM reframehpc/rfm-ci-base:lmod
107

118
# ReFrame user
129
RUN useradd -ms /bin/bash rfmuser
1310

14-
# ReFrame requirements
15-
RUN \
16-
apt-get -y update && \
17-
apt-get -y install ca-certificates && \
18-
update-ca-certificates && \
19-
apt-get -y install gcc && \
20-
apt-get -y install make && \
21-
apt-get -y install git && \
22-
apt-get -y install python3 python3-pip
23-
24-
# Required utilities
25-
RUN apt-get -y install wget
26-
27-
# Install Lmod
28-
RUN \
29-
apt-get -y install lua5.3 lua-bit32:amd64 lua-posix:amd64 lua-posix-dev liblua5.3-0:amd64 liblua5.3-dev:amd64 tcl tcl-dev tcl8.6 tcl8.6-dev:amd64 libtcl8.6:amd64 && \
30-
wget -q https://github.com/TACC/Lmod/archive/${_LMOD_VER}.tar.gz -O lmod.tar.gz && \
31-
tar xzf lmod.tar.gz && \
32-
cd Lmod-${_LMOD_VER} && \
33-
./configure && make install
34-
35-
ENV BASH_ENV=/usr/local/lmod/lmod/init/profile
36-
3711
USER rfmuser
3812

3913
# Install ReFrame from the current directory
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
#
2+
# LMod versions prior to 8.2 emitted Python commands differently, so we use this
3+
# Dockerfile to test the bindings of older versions
4+
#
5+
6+
7+
FROM ubuntu:20.04
8+
9+
ENV TZ=Europe/Zurich
10+
ENV DEBIAN_FRONTEND=noninteractive
11+
ENV _LMOD_VER=7.7
12+
13+
# ReFrame requirements
14+
RUN \
15+
apt-get -y update && \
16+
apt-get -y install ca-certificates && \
17+
update-ca-certificates && \
18+
apt-get -y install gcc make git python3 python3-pip
19+
20+
# Required utilities
21+
RUN apt-get -y install wget
22+
23+
# Install Lmod
24+
RUN \
25+
apt-get -y install lua5.3 lua-bit32:amd64 lua-posix:amd64 lua-posix-dev liblua5.3-0:amd64 liblua5.3-dev:amd64 tcl tcl-dev tcl8.6 tcl8.6-dev:amd64 libtcl8.6:amd64 lua-filesystem:amd64 lua-filesystem-dev:amd64 && \
26+
wget -q https://github.com/TACC/Lmod/archive/${_LMOD_VER}.tar.gz -O lmod.tar.gz && \
27+
tar xzf lmod.tar.gz && \
28+
cd Lmod-${_LMOD_VER} && \
29+
./configure && make install && \
30+
cd .. && rm -rf lmod.tar.gz Lmod-${_LMOD_VER} && \
31+
apt-get clean && \
32+
rm -rf /var/lib/apt/lists/*
33+
34+
ENV BASH_ENV=/usr/local/lmod/lmod/init/profile

ci-scripts/dockerfiles/Lmod77.dockerfile

Lines changed: 1 addition & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,44 +2,12 @@
22
# Execute this from the top-level ReFrame source directory
33
#
44

5-
#
6-
# LMod versions prior to 8.2 emitted Python commands differently, so we use this
7-
# Dockerfile to test the bindings of older versions
8-
#
9-
105

11-
FROM ubuntu:20.04
12-
13-
ENV TZ=Europe/Zurich
14-
ENV DEBIAN_FRONTEND=noninteractive
15-
ENV _LMOD_VER=7.7
6+
FROM reframehpc/rfm-ci-base:lmod77
167

178
# ReFrame user
189
RUN useradd -ms /bin/bash rfmuser
1910

20-
# ReFrame requirements
21-
RUN \
22-
apt-get -y update && \
23-
apt-get -y install ca-certificates && \
24-
update-ca-certificates && \
25-
apt-get -y install gcc && \
26-
apt-get -y install make && \
27-
apt-get -y install git && \
28-
apt-get -y install python3 python3-pip
29-
30-
# Required utilities
31-
RUN apt-get -y install wget
32-
33-
# Install Lmod
34-
RUN \
35-
apt-get -y install lua5.3 lua-bit32:amd64 lua-posix:amd64 lua-posix-dev liblua5.3-0:amd64 liblua5.3-dev:amd64 tcl tcl-dev tcl8.6 tcl8.6-dev:amd64 libtcl8.6:amd64 lua-filesystem:amd64 lua-filesystem-dev:amd64 && \
36-
wget -q https://github.com/TACC/Lmod/archive/${_LMOD_VER}.tar.gz -O lmod.tar.gz && \
37-
tar xzf lmod.tar.gz && \
38-
cd Lmod-${_LMOD_VER} && \
39-
./configure && make install
40-
41-
ENV BASH_ENV=/usr/local/lmod/lmod/init/profile
42-
4311
USER rfmuser
4412

4513
# Install ReFrame from the current directory
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
FROM centos:7
2+
3+
# ReFrame requirements
4+
RUN \
5+
yum -y install gcc make git python3
6+
7+
# Install Tmod 3.2
8+
RUN yum -y install environment-modules && \
9+
yum clean all && \
10+
rm -rf /var/cache/yum

ci-scripts/dockerfiles/Tmod32.dockerfile

Lines changed: 1 addition & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,24 +2,11 @@
22
# Execute this from the top-level ReFrame source directory
33
#
44

5-
FROM centos:7
5+
FROM reframehpc/rfm-ci-base:tmod32
66

77
# ReFrame user
88
RUN useradd -ms /bin/bash rfmuser
99

10-
# ReFrame requirements
11-
RUN \
12-
yum -y install gcc && \
13-
yum -y install make && \
14-
yum -y install git && \
15-
yum -y install python3
16-
17-
# # Required utilities
18-
# RUN apt-get -y install wget
19-
20-
# Install Tmod 3.2
21-
RUN yum -y install environment-modules
22-
2310
USER rfmuser
2411

2512
# Install ReFrame from the current directory
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
FROM ubuntu:20.04
2+
3+
ENV TZ=Europe/Zurich
4+
ENV DEBIAN_FRONTEND=noninteractive
5+
ENV _TMOD_VER=4.6.0
6+
7+
# ReFrame requirements
8+
RUN \
9+
apt-get -y update && \
10+
apt-get -y install ca-certificates && \
11+
update-ca-certificates && \
12+
apt-get -y install gcc make git python3 python3-pip
13+
14+
# Required utilities
15+
RUN apt-get -y install wget
16+
17+
# Install Tmod4
18+
RUN \
19+
apt-get -y install autoconf tcl-dev && \
20+
wget -q https://github.com/cea-hpc/modules/archive/v${_TMOD_VER}.tar.gz -O tmod.tar.gz && \
21+
tar xzf tmod.tar.gz && \
22+
cd modules-${_TMOD_VER} && \
23+
./configure && make install && \
24+
cd .. && rm -rf tmod.tar.gz modules-${_TMOD_VER} && \
25+
apt-get clean && \
26+
rm -rf /var/lib/apt/lists/*
27+
28+
ENV BASH_ENV=/usr/local/Modules/init/profile.sh

ci-scripts/dockerfiles/Tmod4.dockerfile

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,39 +2,11 @@
22
# Execute this from the top-level ReFrame source directory
33
#
44

5-
FROM ubuntu:20.04
6-
7-
ENV TZ=Europe/Zurich
8-
ENV DEBIAN_FRONTEND=noninteractive
9-
ENV _TMOD_VER=4.6.0
5+
FROM reframehpc/rfm-ci-base:tmod4
106

117
# ReFrame user
128
RUN useradd -ms /bin/bash rfmuser
139

14-
# ReFrame requirements
15-
RUN \
16-
apt-get -y update && \
17-
apt-get -y install ca-certificates && \
18-
update-ca-certificates && \
19-
apt-get -y install gcc && \
20-
apt-get -y install make && \
21-
apt-get -y install git && \
22-
apt-get -y install python3 python3-pip
23-
24-
# Required utilities
25-
RUN apt-get -y install wget
26-
27-
# Install Tmod4
28-
RUN \
29-
apt-get -y install autoconf && \
30-
apt-get -y install tcl-dev && \
31-
wget -q https://github.com/cea-hpc/modules/archive/v${_TMOD_VER}.tar.gz -O tmod.tar.gz && \
32-
tar xzf tmod.tar.gz && \
33-
cd modules-${_TMOD_VER} && \
34-
./configure && make install
35-
36-
ENV BASH_ENV=/usr/local/Modules/init/profile.sh
37-
3810
USER rfmuser
3911

4012
# Install ReFrame from the current directory

cscs-checks/tools/jupyter/jupyter_tests.py

Lines changed: 31 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -8,15 +8,35 @@
88

99

1010
@rfm.simple_test
11-
class JupyterHubSubmitTest(rfm.RunOnlyRegressionTest):
12-
def __init__(self):
13-
self.valid_systems = ['daint:jupyter_gpu', 'daint:jupyter_mc',
14-
'dom:jupyter_gpu', 'dom:jupyter_mc']
15-
self.valid_prog_environs = ['*']
16-
self.sourcesdir = None
17-
self.executable = 'hostname'
18-
self.time_limit = '1m'
19-
self.max_pending_time = '7m'
11+
class jupyterhub_submit_test(rfm.RunOnlyRegressionTest):
12+
valid_systems = ['daint:jupyter_gpu', 'daint:jupyter_mc',
13+
'dom:jupyter_gpu', 'dom:jupyter_mc']
14+
valid_prog_environs = ['builtin']
15+
sourcesdir = None
16+
executable = 'hostname'
17+
time_limit = '1m'
18+
max_pending_time = '7m'
19+
tags = {'production', 'post-maintenance', 'health'}
20+
maintainers = ['RS', 'TR']
21+
22+
@rfm.run_before('sanity')
23+
def set_sanity_check(self):
2024
self.sanity_patterns = sn.assert_found(r'nid\d+', self.stdout)
21-
self.tags = {'production', 'maintenance'}
22-
self.maintainers = ['RS', 'TR']
25+
26+
27+
@rfm.simple_test
28+
class jupyterhub_api_test(rfm.RunOnlyRegressionTest):
29+
descr = 'Check JupyterHub server status and version'
30+
valid_systems = ['daint:jupyter_gpu', 'daint:jupyter_mc',
31+
'dom:jupyter_gpu', 'dom:jupyter_mc']
32+
valid_prog_environs = ['builtin']
33+
sourcesdir = None
34+
executable = 'curl https://jupyter.cscs.ch/hub/api/'
35+
time_limit = '30s'
36+
tags = {'health'}
37+
maintainers = ['CB', 'TR']
38+
39+
@rfm.run_before('sanity')
40+
def set_sanity_check(self):
41+
self.sanity_patterns = sn.assert_found(r'{"version": "1.3.0"}',
42+
self.stdout)

docs/configure.rst

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,17 +68,17 @@ Each system is a different object inside the ``systems`` section.
6868
In our example we define three systems, a Mac laptop, Piz Daint and a generic fallback system:
6969

7070
.. literalinclude:: ../tutorials/config/settings.py
71-
:lines: 11-89
71+
:lines: 11-90
7272

7373
Each system is associated with a set of properties, which in this case are the following:
7474

7575
* ``name``: The name of the system.
7676
This should be an alphanumeric string (dashes ``-`` are allowed) and it will be used to refer to this system in other contexts.
7777
* ``descr``: A detailed description of the system.
7878
* ``hostnames``: This is a list of hostname patterns following the `Python Regular Expression Syntax <https://docs.python.org/3/library/re.html#regular-expression-syntax>`__, which will be used by ReFrame when it tries to automatically select a configuration entry for the current system.
79-
* ``modules_system``: In our example, this is only defined for Piz Daint and refers to the environment modules system that should be used for loading environment modules on this system.
80-
In this case, the classic Tcl implementation of the `environment modules <https://sourceforge.net/projects/modules/files/Modules/modules-3.2.10/>`__.
81-
For a complete list of the supported modules systems, see `here <config_reference.html#.systems[].modules_system>`__.
79+
* ``modules_system``: This refers to the modules management backend which should be used for loading environment modules on this system.
80+
Multiple backends are supported, as well as the special ``nomod`` backend which implements the different modules system operations as no-ops.
81+
For the complete list of the supported modules systems, see `here <config_reference.html#.systems[].modules_system>`__.
8282
* ``partitions``: The list of partitions that are defined for this system.
8383
Each partition is defined as a separate object.
8484
We devote the rest of this section in system partitions, since they are an essential part of ReFrame's configuration.
@@ -90,7 +90,7 @@ The ``login`` partition refers to the login nodes of the system, whereas the ``g
9090
Let's pick the ``gpu`` partition and look into it in more detail:
9191

9292
.. literalinclude:: ../tutorials/config/settings.py
93-
:lines: 38-58
93+
:lines: 39-59
9494

9595
The basic properties of a partition are the following:
9696

@@ -132,7 +132,7 @@ In our example, we define environments for all the basic compilers as well as a
132132
In certain contexts, it is useful to see a ReFrame environment as a wrapper of a programming toolchain (MPI + compiler combination):
133133

134134
.. literalinclude:: ../tutorials/config/settings.py
135-
:lines: 90-148
135+
:lines: 91-149
136136

137137
Each environment is associated with a name.
138138
This name will be used to reference this environment in different contexts, as for example in the ``environs`` property of the system partitions.
@@ -154,7 +154,7 @@ Additionally, it allows for logging performance data from performance tests into
154154
Let's see how logging is defined in our example configuration, which also represents a typical one for logging:
155155

156156
.. literalinclude:: ../tutorials/config/settings.py
157-
:lines: 149-184
157+
:lines: 150-185
158158

159159
Logging is configured under the ``logging`` section of the configuration, which is a list of logger objects.
160160
Unless you want to configure logging differently for different systems, a single logger object is enough.

0 commit comments

Comments
 (0)