Skip to content

Rotor Position Control #684

Rotor Position Control

Rotor Position Control #684

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