Skip to content

Commit 42a5a81

Browse files
authored
Release v3.0.0 (#754)
2 parents bbbb1ca + 8f1d45e commit 42a5a81

252 files changed

Lines changed: 96722 additions & 22818 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/PULL_REQUEST_TEMPLATE.md

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -16,3 +16,17 @@
1616

1717
**Test results, if applicable**
1818
<!-- Add the results from unit tests and regression tests here along with justification for any failing test cases. -->
19+
20+
<!-- Release checklist:
21+
- [ ] Update the documentation version in docs/conf.py
22+
- [ ] Update the versions in docs/source/user/api_change.rst
23+
- [ ] Verify readthedocs builds correctly
24+
- [ ] Create a tag in OpenFAST
25+
- [ ] Create a merge commit in r-test and add a corresponding tag
26+
- [ ] Compile executables for Windows builds
27+
- [ ] FAST_SFunc.mexw64
28+
- [ ] MAP_X64.dll
29+
- [ ] OpenFAST-Simulink_x64.dll
30+
- [ ] openfast_x64.exe
31+
- [ ] DISCON.dll
32+
-->
Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,25 @@
11
name: 'AeroDyn module tests'
22
description: 'Run tests specific to the AeroDyn module'
33
author: 'Rafael Mudafort https://github.com/rafmudaf'
4+
5+
6+
inputs:
7+
test-target:
8+
description: 'Which tests to run: unit | regression | all'
9+
default: 'all'
10+
411
runs:
512
using: "composite"
613
steps:
7-
- run: ctest -VV -R fvw_utest
14+
- run: |
15+
16+
if [[ ${{ inputs.test-target }} == "unit" ]] || [[ ${{ inputs.test-target }} == "all" ]]; then
17+
ctest -VV -R fvw_utest
18+
fi
19+
20+
if [[ ${{ inputs.test-target }} == "regression" ]] || [[ ${{ inputs.test-target }} == "all" ]]; then
21+
ctest -VV -j7 -R ad_
22+
fi
23+
824
working-directory: ${{runner.workspace}}/build
925
shell: bash
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
name: 'SubDyn module tests'
2+
description: 'Run tests specific to the SubDyn module'
3+
author: 'Rafael Mudafort https://github.com/rafmudaf'
4+
runs:
5+
using: "composite"
6+
steps:
7+
- run: ctest -VV -j7 -R SD_
8+
working-directory: ${{runner.workspace}}/build
9+
shell: bash
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
2+
from shutil import copyfile
3+
4+
# Open existing meta.yaml and another one
5+
metayaml = open('meta.yaml')
6+
outyaml = open('out.yaml', 'w')
7+
8+
# Find the build number, increment it, and write to the new yaml
9+
found = False
10+
for line in metayaml:
11+
if "number:" in line:
12+
found = True
13+
# For the line containing the build number, parse the number and increment
14+
elements = [e.strip() for e in line.split(":")]
15+
if not elements[1].isnumeric():
16+
raise ValueError("Build number is not parsable: {}".format(line))
17+
18+
old_build_number = int(elements[1])
19+
new_build_number = old_build_number + 1
20+
21+
# Write new build number to new yaml
22+
outyaml.write(line.replace(str(old_build_number), str(new_build_number)))
23+
else:
24+
# Write all other lines to new yaml
25+
outyaml.write(line)
26+
27+
if not found:
28+
raise Exception("Error incrementing the build number.")
29+
30+
# Clean up
31+
metayaml.close()
32+
outyaml.close()
33+
34+
# Replace original meta.yaml with the new one
35+
copyfile('out.yaml', 'meta.yaml')

.github/workflows/automated-dev-tests.yml

Lines changed: 183 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,16 +4,16 @@ name: 'Development Pipeline'
44
on:
55
push:
66
paths-ignore:
7+
- 'LICENSE'
8+
- 'README.rst'
79
- 'docs/**'
810
- 'share/**'
911
- 'vs-build/**'
1012

1113
pull_request:
12-
types: [opened, synchronize] #labeled, assigned]
13-
paths-ignore:
14-
- 'docs/**'
15-
- 'share/**'
16-
- 'vs-build/**'
14+
types: [opened, synchronize, edited, reopened] #labeled, assigned]
15+
# Pull request event triggers are unrelated to paths
16+
# paths-ignore:
1717

1818
env:
1919
FORTRAN_COMPILER: gfortran-10
@@ -25,7 +25,7 @@ env:
2525
# os: [macOS-10.14, ubuntu-18.04]
2626

2727
jobs:
28-
regression-test:
28+
regression-tests-release:
2929
runs-on: ubuntu-20.04
3030
steps:
3131
- name: Checkout
@@ -59,12 +59,18 @@ jobs:
5959
working-directory: ${{runner.workspace}}/build
6060
run: cmake --build . --target install -- -j ${{env.NUM_PROCS}}
6161

62+
- name: Run AeroDyn tests
63+
uses: ./.github/actions/tests-module-aerodyn
64+
with:
65+
test-target: regression
6266
- name: Run BeamDyn tests
6367
uses: ./.github/actions/tests-module-beamdyn
6468
with:
6569
test-target: regression
6670
- name: Run HydroDyn tests
6771
uses: ./.github/actions/tests-module-hydrodyn
72+
- name: Run SubDyn tests
73+
uses: ./.github/actions/tests-module-subdyn
6874
- name: Run OpenFAST tests
6975
# if: contains(github.event.head_commit.message, 'Action - Test All') || contains(github.event.pull_request.labels.*.name, 'Action - Test All')
7076
uses: ./.github/actions/tests-gluecode-openfast
@@ -73,7 +79,7 @@ jobs:
7379
uses: actions/upload-artifact@v2
7480
if: failure()
7581
with:
76-
name: test-results
82+
name: regression-tests-release
7783
path: |
7884
${{runner.workspace}}/build/reg_tests/modules
7985
${{runner.workspace}}/build/reg_tests/glue-codes/openfast
@@ -84,6 +90,118 @@ jobs:
8490
!${{runner.workspace}}/build/reg_tests/glue-codes/openfast/UAE_VI
8591
!${{runner.workspace}}/build/reg_tests/glue-codes/openfast/WP_Baseline
8692
93+
regression-tests-debug:
94+
runs-on: ubuntu-20.04
95+
steps:
96+
- name: Checkout
97+
uses: actions/checkout@main
98+
with:
99+
submodules: recursive
100+
101+
- name: Setup Python
102+
uses: actions/setup-python@v2
103+
with:
104+
python-version: '3.7'
105+
- name: Install dependencies
106+
run: |
107+
python -m pip install --upgrade pip
108+
pip install numpy Bokeh==1.4
109+
110+
- name: Setup Workspace
111+
run: cmake -E make_directory ${{runner.workspace}}/build
112+
- name: Configure Build
113+
working-directory: ${{runner.workspace}}/build
114+
run: |
115+
cmake \
116+
-DCMAKE_INSTALL_PREFIX:PATH=${{runner.workspace}}/install \
117+
-DCMAKE_Fortran_COMPILER:STRING=${{env.FORTRAN_COMPILER}} \
118+
-DCMAKE_BUILD_TYPE:STRING=Debug \
119+
-DBUILD_TESTING:BOOL=ON \
120+
-DCTEST_PLOT_ERRORS:BOOL=ON \
121+
${GITHUB_WORKSPACE}
122+
123+
- name: Build OpenFAST
124+
working-directory: ${{runner.workspace}}/build
125+
run: |
126+
cmake --build . --target aerodyn_driver -- -j ${{env.NUM_PROCS}}
127+
cmake --build . --target beamdyn_driver -- -j ${{env.NUM_PROCS}}
128+
cmake --build . --target hydrodyn_driver -- -j ${{env.NUM_PROCS}}
129+
cmake --build . --target subdyn_driver -- -j ${{env.NUM_PROCS}}
130+
131+
- name: Run AeroDyn tests
132+
uses: ./.github/actions/tests-module-aerodyn
133+
with:
134+
test-target: regression
135+
- name: Run BeamDyn tests
136+
uses: ./.github/actions/tests-module-beamdyn
137+
with:
138+
test-target: regression
139+
- name: Run HydroDyn tests
140+
uses: ./.github/actions/tests-module-hydrodyn
141+
- name: Run SubDyn tests
142+
uses: ./.github/actions/tests-module-subdyn
143+
144+
- name: Failing test artifacts
145+
uses: actions/upload-artifact@v2
146+
if: failure()
147+
with:
148+
name: regression-tests-debug
149+
path: |
150+
${{runner.workspace}}/build/reg_tests/modules
151+
152+
fastfarm-regression-test:
153+
runs-on: ubuntu-20.04
154+
steps:
155+
- name: Checkout
156+
uses: actions/checkout@main
157+
with:
158+
submodules: recursive
159+
160+
- name: Setup Python
161+
uses: actions/setup-python@v2
162+
with:
163+
python-version: '3.7'
164+
- name: Install dependencies
165+
run: |
166+
python -m pip install --upgrade pip
167+
pip install numpy Bokeh==1.4
168+
169+
- name: Setup Workspace
170+
run: cmake -E make_directory ${{runner.workspace}}/build
171+
- name: Configure Build
172+
working-directory: ${{runner.workspace}}/build
173+
run: |
174+
cmake \
175+
-DCMAKE_INSTALL_PREFIX:PATH=${{runner.workspace}}/install \
176+
-DCMAKE_Fortran_COMPILER:STRING=${{env.FORTRAN_COMPILER}} \
177+
-DOPENMP:BOOL=ON \
178+
-DBUILD_FASTFARM:BOOL=ON \
179+
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
180+
-DBUILD_TESTING:BOOL=ON \
181+
-DCTEST_PLOT_ERRORS:BOOL=ON \
182+
${GITHUB_WORKSPACE}
183+
- name: Build FAST.Farm
184+
# if: contains(github.event.head_commit.message, 'Action - Test All') || contains(github.event.pull_request.labels.*.name, 'Action - Test All')
185+
working-directory: ${{runner.workspace}}/build
186+
run: |
187+
cmake --build . --target FAST.Farm -- -j ${{env.NUM_PROCS}}
188+
cmake --build . --target regression_tests -- -j ${{env.NUM_PROCS}}
189+
190+
- name: Run FAST.Farm tests
191+
# if: contains(github.event.head_commit.message, 'Action - Test All') || contains(github.event.pull_request.labels.*.name, 'Action - Test All')
192+
run: |
193+
ctest -VV -L fastfarm -j ${{env.NUM_PROCS}}
194+
working-directory: ${{runner.workspace}}/build
195+
shell: bash
196+
197+
- name: Failing test artifacts
198+
uses: actions/upload-artifact@v2
199+
if: failure()
200+
with:
201+
name: test-results
202+
path: |
203+
${{runner.workspace}}/build/reg_tests/glue-codes/fastfarm
204+
87205
unit-test:
88206
runs-on: ubuntu-20.04
89207
steps:
@@ -111,6 +229,8 @@ jobs:
111229
uses: ./.github/actions/tests-module-nwtclibrary
112230
- name: Run AeroDyn tests
113231
uses: ./.github/actions/tests-module-aerodyn
232+
with:
233+
test-target: unit
114234
- name: Run BeamDyn tests
115235
uses: ./.github/actions/tests-module-beamdyn
116236
with:
@@ -121,6 +241,7 @@ jobs:
121241
compile-all-single-precision:
122242
# Test if single precision compile completes.
123243
# Compiles all targets excluding tests.
244+
# Run with the OpenFAST registry generating the types files.
124245
# Do not run the test suite.
125246

126247
runs-on: ubuntu-20.04
@@ -139,10 +260,65 @@ jobs:
139260
-DCMAKE_Fortran_COMPILER:STRING=${{env.FORTRAN_COMPILER}} \
140261
-DCMAKE_BUILD_TYPE:STRING=Debug \
141262
-DDOUBLE_PRECISION:BOOL=OFF \
263+
-DGENERATE_TYPES:BOOL=ON \
142264
${GITHUB_WORKSPACE}
143265
- name: Build all
144266
working-directory: ${{runner.workspace}}/build
145267
run: cmake --build . --target all -- -j ${{env.NUM_PROCS}}
146268
- name: Test
147269
working-directory: ${{runner.workspace}}/build
148270
run: ./glue-codes/openfast/openfast -v
271+
272+
cpp-interface-tests:
273+
runs-on: ubuntu-20.04
274+
steps:
275+
- name: Checkout
276+
uses: actions/checkout@main
277+
with:
278+
submodules: recursive
279+
280+
- name: Setup Python
281+
uses: actions/setup-python@v2
282+
with:
283+
python-version: '3.7'
284+
- name: Install dependencies
285+
run: |
286+
python -m pip install --upgrade pip
287+
pip install numpy Bokeh==1.4
288+
sudo apt-get update
289+
sudo apt-get install -y libhdf5-dev libopenmpi-dev libyaml-cpp-dev
290+
291+
- name: Setup Workspace
292+
run: cmake -E make_directory ${{runner.workspace}}/build
293+
- name: Configure Build
294+
working-directory: ${{runner.workspace}}/build
295+
run: |
296+
cmake \
297+
-DCMAKE_INSTALL_PREFIX:PATH=${{runner.workspace}}/install \
298+
-DCMAKE_Fortran_COMPILER:STRING=${{env.FORTRAN_COMPILER}} \
299+
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo \
300+
-DBUILD_OPENFAST_CPP_API:BOOL=ON \
301+
-DBUILD_SHARED_LIBS:BOOL=ON \
302+
-DBUILD_TESTING:BOOL=ON \
303+
-DCTEST_PLOT_ERRORS:BOOL=ON \
304+
${GITHUB_WORKSPACE}
305+
- name: Build OpenFAST C++ API
306+
# if: contains(github.event.head_commit.message, 'Action - Test All') || contains(github.event.pull_request.labels.*.name, 'Action - Test All')
307+
working-directory: ${{runner.workspace}}/build
308+
run: |
309+
cmake --build . --target openfastcpp -- -j ${{env.NUM_PROCS}}
310+
cmake --build . --target regression_tests -- -j ${{env.NUM_PROCS}}
311+
312+
- name: Run OpenFAST C++ API tests
313+
working-directory: ${{runner.workspace}}/build
314+
run: |
315+
ctest -VV -L cpp
316+
317+
- name: Failing test artifacts
318+
uses: actions/upload-artifact@v2
319+
if: failure()
320+
with:
321+
name: test-results
322+
path: |
323+
${{runner.workspace}}/build/reg_tests/glue-codes/openfast-cpp
324+
!${{runner.workspace}}/build/reg_tests/glue-codes/openfast-cpp/5MW_Baseline

0 commit comments

Comments
 (0)