Skip to content

Merge branch 'develop' into improve_wfc #1059

Merge branch 'develop' into improve_wfc

Merge branch 'develop' into improve_wfc #1059

name: CI_rosco-compile
# We run CI on push commits on all branches
on: [push, pull_request]
# A workflow run is made up of one or more jobs that can run sequentially or in parallel
jobs:
build_pip:
name: Pip Build (${{ matrix.os }}) - ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -l {0}
strategy:
fail-fast: false #true
matrix:
os: ["ubuntu-latest", "macOS-latest", "windows-latest"] #mac-13 intel, mac-14 arm
python-version: ["3.9", "3.10", "3.11", "3.12"]
steps:
- name: Setup GNU Fortran
if: false == contains( matrix.os, 'windows')
uses: fortran-lang/setup-fortran@v1.6
# with:
# compiler: intel-classic
- name: Install compiler
if: false == contains( matrix.os, 'windows')
id: install_cc
uses: rlalik/setup-cpp-compiler@master
with:
compiler: clang
- name: Install mingw-w64 on Windows
if: contains( matrix.os, 'windows')
uses: msys2/setup-msys2@v2
with:
path-type: inherit
install: |
mingw-w64-x86_64-gcc
mingw-w64-x86_64-gcc-fortran
mingw-w64-x86_64-zeromq
mingw-w64-x86_64-cmake
mingw-w64-x86_64-pkg-config
- name: Install zeromq ubuntu
if: contains( matrix.os, 'ubuntu')
run: |
sudo apt install libzmq3-dev libzmq5 libczmq-dev libczmq4
- name: Install zeromq mac
if: contains( matrix.os, 'mac')
run: |
brew install zeromq
- name: checkout repository
uses: actions/checkout@v4
- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v5
id: cp
with:
python-version: ${{ matrix.python-version }}
update-environment: true
- name: Set compilers
if: false == contains( matrix.os, 'windows')
run: |
echo "CC=${{ steps.install_cc.outputs.cc }}" >> $GITHUB_ENV
echo "CXX=${{ steps.install_cc.outputs.cxx }}" >> $GITHUB_ENV
#- name: Setup tmate session
# if: contains( matrix.os, 'windows')
# uses: mxschmitt/action-tmate@v3
# Install ZeroMQ- should be done via Conda
#- name: Install ZeroMQ
# run: |
# sudo apt-get update
# sudo apt-get install libzmq3-dev
- name: Pip Install ROSCO
run: |
'${{ steps.cp.outputs.python-path }}' -m pip install -e .
# Re-generate registry
- name: Generate Registry
run: |
'${{ steps.cp.outputs.python-path }}' rosco/controller/rosco_registry/write_registry.py
- name: Test run
# skipping pip test on windows for now until wisdem pypi is ready
if: false == contains( matrix.os, 'windows')
run: |
cd Examples
'${{ steps.cp.outputs.python-path }}' 01_turbine_model.py
build_and_test_conda:
name: Conda Build (${{ matrix.os }}) - ${{ matrix.python-version }}
runs-on: ${{ matrix.os }}
defaults:
run:
shell: bash -el {0}
strategy:
fail-fast: false #true
matrix:
os: ["ubuntu-latest", "macOS-13", "windows-latest"] #mac-13 intel, mac-14 arm
python-version: ["3.9", "3.10", "3.11", "3.12"]
steps:
- name: checkout repository
uses: actions/checkout@v4
- uses: conda-incubator/setup-miniconda@v2
# https://github.com/marketplace/actions/setup-miniconda
with:
#mamba-version: "*"
miniforge-version: "latest"
auto-update-conda: true
python-version: ${{ matrix.python-version }}
environment-file: environment.yml
activate-environment: test
auto-activate-base: false
- name: Add dependencies windows specific
if: contains( matrix.os, 'windows')
run: |
conda install -y m2w64-toolchain libpython
gfortran --version
- name: Add dependencies mac specific
if: contains( matrix.os, 'mac')
run: |
conda install -y compilers
gfortran --version
# Install
- name: Debug
run: |
conda list
printenv
- name: Conda Install ROSCO
run: |
python -m pip install -e .
- name: Install OpenFAST
run: |
conda install openfast==3.5.3
- name: Generate Registry
run: |
python rosco/controller/rosco_registry/write_registry.py
- name: Fix example file extensions
run: |
python Examples/Test_Cases/update_libdiscon_extension.py
#- name: Setup tmate session
# uses: mxschmitt/action-tmate@v3
# with:
# detached: true
# if: contains( matrix.os, 'windows')
- name: Run ROSCO testing
run: |
cd rosco/test
python ROSCO_testing.py
- name: Run regression testing
if: contains( matrix.os, 'ubuntu')
run: |
cd rosco/test
pytest .
- name: Test walkthrough notebook
if: contains( matrix.os, 'ubuntu')
run: |
cd Examples
treon ROSCO_walkthrough.ipynb