Rotor Position Control #684
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: CI_rosco-pytools | |
# We run CI on push commits on all branches | |
on: [push, pull_request] | |
# Specify FORTRAN compiler, used to be "gfortran-10" | |
env: | |
FC: gfortran | |
# A workflow run is made up of one or more jobs that can run sequentially or in parallel | |
jobs: | |
build: | |
name: Build (${{ matrix.os }}) | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: ["ubuntu-latest", "macOS-latest", "windows-latest"] | |
python-version: ["3.9"] | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Setup environment | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
miniconda-version: "latest" | |
channels: conda-forge, general | |
auto-update-conda: true | |
python-version: 3.9 | |
environment-file: environment.yml | |
# Install dependencies of ROSCO toolbox | |
- name: Add dependencies windows specific | |
if: true == contains( matrix.os, 'windows') | |
run: | | |
conda install -y m2w64-toolchain libpython | |
env: | |
FC: gfortran | |
- name: Add dependencies macOS specific | |
if: true == contains( matrix.os, 'macOS') | |
run: | | |
conda install compilers | |
# Install ROSCO toolbox | |
- name: Install ROSCO toolbox on Windows | |
if: true == contains( matrix.os, 'windows') | |
env: | |
FC: gfortran | |
run: | | |
python setup.py develop --compile-rosco | |
- name: Install ROSCO toolbox | |
if: false == contains( matrix.os, 'windows') | |
run: | | |
python setup.py develop --compile-rosco | |
run_examples: | |
name: Run Examples | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: ["ubuntu-latest"] #, "macOS-latest"] | |
python-version: ["3.9"] | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Setup environment | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
miniconda-version: "latest" | |
channels: conda-forge, general | |
auto-update-conda: true | |
python-version: 3.9 | |
environment-file: environment.yml | |
# setup cmake | |
- name: Setup Workspace | |
run: cmake -E make_directory ${{runner.workspace}}/ROSCO/ROSCO/build | |
# Install dependencies of ROSCO toolbox | |
- name: Add dependencies ubuntu specific | |
run: | | |
conda install -y wisdem | |
- name: Add pyFAST dependency | |
run: | | |
git clone http://github.com/OpenFAST/python-toolbox | |
cd python-toolbox | |
python -m pip install -e . | |
# Install ZeroMQ | |
- name: Install ZeroMQ | |
run: sudo apt-get install libzmq3-dev | |
# Install ROSCO toolbox | |
- name: Install ROSCO toolbox | |
run: | | |
python setup.py develop | |
- name: Configure and Build ROSCO - unix | |
working-directory: ${{runner.workspace}}/ROSCO/ROSCO/build | |
run: | | |
cmake \ | |
-DCMAKE_INSTALL_PREFIX:PATH=${{runner.workspace}}/ROSCO/ROSCO/install \ | |
-DZMQ_CLIENT=ON \ | |
-DCMAKE_Fortran_COMPILER:STRING=${{env.FORTRAN_COMPILER}} \ | |
.. | |
cmake --build . --target install | |
# Install OpenFAST | |
- name: Install OpenFAST | |
run: | | |
conda install openfast==3.5 | |
# Run examples | |
- name: Run examples | |
run: | | |
cd Examples | |
python test_examples.py | |
# Test walkthrough notebook | |
- name: Test walkthrough notebook | |
run: | | |
cd Examples | |
treon ROSCO_walkthrough.ipynb | |
# Archive artifacts | |
- name: Archive production artifacts | |
if: success() || failure() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: ROSCO-artifacts | |
path: | | |
${{runner.workspace}} | |
run_testing: | |
name: Run Testing | |
runs-on: ${{ matrix.os }} | |
strategy: | |
fail-fast: true | |
matrix: | |
os: ["ubuntu-latest"] #, "macOS-latest"] | |
python-version: ["3.9"] | |
defaults: | |
run: | |
shell: bash -l {0} | |
steps: | |
- name: Checkout repository and submodules | |
uses: actions/checkout@v3 | |
with: | |
submodules: recursive | |
- name: Setup environment | |
uses: conda-incubator/setup-miniconda@v2 | |
with: | |
miniconda-version: "latest" | |
channels: conda-forge, general | |
auto-update-conda: true | |
python-version: 3.9 | |
environment-file: environment.yml | |
# Install dependencies of ROSCO toolbox | |
- name: Add dependencies | |
run: | | |
conda install -y wisdem | |
# Install ROSCO toolbox | |
- name: Install ROSCO toolbox | |
run: | | |
python setup.py install --compile-rosco | |
# Install OpenFAST | |
- name: Install OpenFAST | |
run: | | |
conda install openfast==3.5 | |
# Run ROSCO Testing | |
- name: Run ROSCO testing | |
run: | | |
cd ROSCO_testing | |
python ROSCO_testing.py | |
# Regression testing | |
- name: Run regression testing | |
run: | | |
cd ROSCO_testing | |
python test_checkpoint.py |