Skip to content

9th Dec# with '#' will be ignored, and an empty message aborts the co… #1451

9th Dec# with '#' will be ignored, and an empty message aborts the co…

9th Dec# with '#' will be ignored, and an empty message aborts the co… #1451

Workflow file for this run

# Run these tests automatically on Github
# on every push and pull request.
name: StellaTests
on: [push, pull_request]
# We run the in a bash shell
defaults:
run:
shell: bash
# Define the tests, for now we only have <standard_tests>
# where we define 3 seperate workflows in matrix/config/name
# For each of these workflows we need to perform the same
# initial steps: <Install dependencies>, <System information>
# Next, only the step corresponding to the test will be executed.
jobs:
# Build stella with Make in debug mode, here the python tests do not work!
# Specifically, the flush statement in mini_libstell's
# read_wout_mod.F module in the readw_and_open() routine breaks
# when reading a VMEC equilibirium during the python tests.
test1:
runs-on: ubuntu-latest
env:
OMPI_MCA_rmaps_base_oversubscribe: yes
MPIRUN: mpiexec -np
strategy:
fail-fast: false
matrix:
config:
- name: "Make stella in debug mode"
steps:
- name: Install dependencies
run: sudo apt update &&
sudo apt install -y
gfortran
make
libfftw3-dev
libnetcdf-dev
libnetcdff-dev
netcdf-bin
python3
python3-pip
openmpi-bin
libopenmpi-dev
- name: System information
run: |
cat /etc/*release
gfortran --version
nf-config --all
- uses: actions/checkout@v2
- name: Build stella in debug mode
run: |
set -ex
export GK_SYSTEM=gnu_ubuntu_debug
make -I Makefiles -j4
# Build stella with Make and run automatic fortran tests
test2:
runs-on: ubuntu-latest
env:
OMPI_MCA_rmaps_base_oversubscribe: yes
MPIRUN: mpiexec -np
strategy:
fail-fast: false
matrix:
config:
- name: "Perform fortran tests of the stella code"
steps:
- name: Install dependencies
run: sudo apt update &&
sudo apt install -y
gfortran
make
libfftw3-dev
libnetcdf-dev
libnetcdff-dev
netcdf-bin
python3
python3-pip
openmpi-bin
libopenmpi-dev
- name: System information
run: |
cat /etc/*release
gfortran --version
nf-config --all
- uses: actions/checkout@v2
- name: Build stella
run: |
set -ex
export GK_SYSTEM=gnu_ubuntu
make -I Makefiles -j4
- name: Perform automated Fortran tests
run: |
set -ex
export GK_SYSTEM=gnu_ubuntu
make -I Makefiles -j4 build-pfunit-library
make -I Makefiles -j4 run-automated-fortran-tests
# Build stella with Make and run automatic python tests
test3:
runs-on: ubuntu-latest
env:
OMPI_MCA_rmaps_base_oversubscribe: yes
MPIRUN: mpiexec -np
strategy:
fail-fast: false
matrix:
config:
- name: "Run stella and check the outputs numerically"
steps:
- name: Install dependencies
run: sudo apt update &&
sudo apt install -y
gfortran
make
libfftw3-dev
libnetcdf-dev
libnetcdff-dev
netcdf-bin
python3
python3-pip
openmpi-bin
libopenmpi-dev
- name: System information
run: |
cat /etc/*release
gfortran --version
nf-config --all
- uses: actions/checkout@v2
- name: Install automated stella test dependencies
run: pip3 install --user -r tests/requirements.txt
- name: Build stella
run: |
set -ex
export GK_SYSTEM=gnu_ubuntu
make -I Makefiles -j4
- name: Perform numerical tests for stella with Python
run: |
set -ex
export GK_SYSTEM=gnu_ubuntu
make -I Makefiles run-automated-numerical-tests-for-stella
# Build stella with CMake and run automatic Fortran tests
# Cmake has to run on 1 node or it will run into parallelisation errors
test4:
runs-on: ubuntu-latest
env:
OMPI_MCA_rmaps_base_oversubscribe: yes
MPIRUN: mpiexec -np
strategy:
fail-fast: false
matrix:
config:
- name: "CMake stella"
steps:
- name: Install dependencies
run: sudo apt update &&
sudo apt install -y
gfortran
make
libfftw3-dev
libnetcdf-dev
libnetcdff-dev
netcdf-bin
python3
python3-pip
openmpi-bin
libopenmpi-dev
- name: System information
run: |
cat /etc/*release
gfortran --version
nf-config --all
- uses: actions/checkout@v2
- name: Build stella (CMake)
run: |
set -ex
cmake . -B build -DSTELLA_ENABLE_TESTS=on
cmake --build build -j1 --target check