-
Notifications
You must be signed in to change notification settings - Fork 50
111 lines (88 loc) · 3.36 KB
/
fesom2.1.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
name: FESOM2 main test
# Controls when the action will run. Triggers the workflow on push or pull request.
on: [push, pull_request]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
general_test:
# Containers must run in Linux based operating systems
runs-on: ubuntu-latest
# Docker Hub image that `container-job` executes in
container: ghcr.io/fesom/fesom2_docker:fesom2_test_refactoring-master
# Service containers to run with `gfortran_ubuntu`
steps:
# NK: this changes working directory to fesom2
- uses: actions/checkout@v2
- name: Git safe directory
run: |
git config --global --add safe.directory ${PWD}
- name: Compile model (binary)
run: |
./configure.sh ubuntu
- name: Compile model (ifs_interface)
run: |
export BUILD_DIR=$PWD/build.ifs_interface
./configure.sh ubuntu -DENABLE_IFS_INTERFACE=ON -DCMAKE_INSTALL_PREFIX=$PWD/install.ifs_interface
- name: Test downstream from install-dir
run: |
export fesom_ROOT=${PWD}
rm -rf test_downstream/build
cmake -S test_downstream -B test_downstream/build -DASSERT_HAVE_IFS_INTERFACE=OFF -DASSERT_FESOM_DIR=${fesom_ROOT}
cmake --build test_downstream/build
test_downstream/build/main
- name: Test downstream from ifs_interface build-dir
run: |
export fesom_ROOT=$PWD/build.ifs_interface
rm -rf test_downstream/build
cmake -S test_downstream -B test_downstream/build -DASSERT_HAVE_IFS_INTERFACE=ON -DASSERT_FESOM_DIR=${fesom_ROOT}
cmake --build test_downstream/build
test_downstream/build/main
- name: Test downstream from ifs_interface install-dir
run: |
export fesom_ROOT=$PWD/install.ifs_interface
rm -rf test_downstream/build
cmake -S test_downstream -B test_downstream/build -DASSERT_HAVE_IFS_INTERFACE=ON -DASSERT_FESOM_DIR=${fesom_ROOT}
cmake --build test_downstream/build
test_downstream/build/main
- name: Create global test run
run: |
mkrun pi test_pi -m docker
- name: FESOM2 global test run
run: |
cd work_pi
chmod +x job_docker_new
./job_docker_new
- name: Check global results
run: |
cd work_pi
fcheck .
- name: Check UGRID Compliance
run: |
pip install ugrid-checks xarray
# Needed to combine the mesh diag and output
python3 -c "import xarray as xr; ds1 = xr.open_dataset('./test/output_pi/sst.fesom.1948.nc'); ds2 = xr.open_dataset('./test/output_pi/fesom.mesh.diag.nc'); xr.merge([ds1, ds2]).to_netcdf('./test/output_pi/merged_ugrid_check.nc')"
ugrid-checker ./test/output_pi/merged_ugrid_check.nc
- name: Check restarts
run: |
cd work_pi
./job_docker_new
- name: Create channel test run
run: |
mkrun souf test_souf -m docker
- name: FESOM2 channel test run
run: |
cd work_souf
chmod +x job_docker_new
./job_docker_new
- name: Check channel results
run: |
cd work_souf
fcheck .
- name: Check partitioner compilation
run: |
cd mesh_part
bash -l configure.sh ubuntu
- name: Run partitioner
run: |
cd work_pi
cp ../bin/fesom_ini.x .
./fesom_ini.x