-
Notifications
You must be signed in to change notification settings - Fork 2
147 lines (116 loc) · 3.96 KB
/
FEProject_build.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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
name: build_FE-Project
on:
pull_request:
types: [opened, synchronize]
#push:
# branches:
# - feature/ci_*
jobs:
build:
name: Build
runs-on: ubuntu-latest
steps:
- name: Checkout FE-project repository
uses: actions/checkout@v1
- name: Install Fortran compiler & NetCDF & OpenMPI & lapack & openssh
run: |
sudo apt-get update
echo "Update information of package list.."
sudo apt-get update
echo "Install Fortran compiler .."
sudo apt-get install -y gfortran
echo "Install NetCDF library .."
sudo apt-get install -y libnetcdf-dev libnetcdff-dev
echo "Install OpenMPI library .."
sudo apt-get install -y openmpi-bin libopenmpi-dev
echo "Install lapack .."
sudo apt-get install -y libopenblas-dev liblapack-dev
echo "Install openssh .."
sudo apt-get install -y openssh-client
- name: Install SSH key
uses: shimataro/ssh-key-action@v2
with:
key: ${{ secrets.SSH_KEY }}
name: id_rsa
known_hosts: ${{ secrets.KNOWN_HOSTS }}
config: |
Host scalelib_host
HostName ${{ secrets.SCALELIB_SERVER_HOST }}
User ${{ secrets.SCALELIB_SERVER_USER }}
IdentityFile ~/.ssh/id_rsa
- name: Install SCALE library
run: |
cd ${GITHUB_WORKSPACE}/..
scp scalelib_host:FE-Project_GitActions/scalelib_ubuntu_latest.zip .
unzip scalelib_ubuntu_latest.zip && mv scalelib_ubuntu_latest scale
- name: Build FElib
run: |
echo "Build FE library .."
export SCALE_FE_SYS=Linux64-gnu-ompi
export SCALE=${GITHUB_WORKSPACE}/../scale
make -j 2 -C FElib/src
- name: unit test for common
run: |
echo "Perform unit tests .."
export SCALE_FE_SYS=Linux64-gnu-ompi
export SCALE=${GITHUB_WORKSPACE}/../scale
cd FElib/test/common
make -C linkedlist
make -C time_manager
make -C sparsemat
make -C timeint_rk
- name: unit test for FE
run: |
echo "Perform unit tests .."
export SCALE_FE_SYS=Linux64-gnu-ompi
export SCALE=${GITHUB_WORKSPACE}/../scale
cd FElib/test/FE
make -C polynominal
make -C mesh_linedom1d
make -C mesh_rectdom2d_quadrilateral
make -C mesh_cubedsphere2d
make -C mesh_cubedom3d_hexahedral
make -C mesh_cubedsphere3d
make -C field_linedom1d
make -C field_rectdom2d_quadrilateral
make -C field_cubedspheredom2d
make -C field_cubedom3d_hexahedral
make -C field_cubedspheredom3d
- name: unit test for framework
run: |
echo "Perform unit tests .."
export SCALE_FE_SYS=Linux64-gnu-ompi
export SCALE=${GITHUB_WORKSPACE}/../scale
cd FElib/test/framework
make -C model_framework
- name: samples
run: |
echo "Build samples .."
export SCALE_FE_SYS=Linux64-gnu-ompi
export SCALE=${GITHUB_WORKSPACE}/../scale
cd sample/
make -C advect1d
make -C advect1d_fvm
make -C advdiff1d
make -C advect2d
make -C advect2dGlobal
make -C advect2d_fvm
make -C advect3d
make -C advect3dGlobal
make -C advect3d_hevi
make -C euler3d_hevi
make -C eigen_analysis
- name: Build model
run: |
echo "Build models .."
cd model/
export SCALE_FE_SYS=Linux64-gnu-ompi
export SCALE=${GITHUB_WORKSPACE}/../scale
echo "Build global shallow water model"
make -C global_shallow_water/src
echo "Build 2D nonhydrostatic atmospheric model"
make -C atm_nonhydro2d/src
echo "Build 3D nonhydrostatic atmospheric model"
make -C atm_nonhydro3d/src
echo "Build 3D nonhydrostatic atmospheric model / utils"
make -C atm_nonhydro3d/util/regrid_tool