Skip to content

Commit

Permalink
Actions: Run cache_population then main on Windows
Browse files Browse the repository at this point in the history
  • Loading branch information
simmsa committed Dec 6, 2023
1 parent 22b62ee commit ad3a50e
Showing 1 changed file with 98 additions and 14 deletions.
112 changes: 98 additions & 14 deletions .github/workflows/windows_unit_tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,98 @@ on:
branches: [master, develop, ebbflood]

jobs:
cache_population:
strategy:
fail-fast: false
matrix:
os: [windows-latest]
python-version: [3.9]
matlab-version: [R2022a]
runs-on: ${{ matrix.os }}

env:
mhkit-python-dir: "MHKiT-Python"
steps:
- name: Install/Setup Miniconda
uses: conda-incubator/setup-miniconda@v2
with:
auto-update-conda: true
python-version: ${{ matrix.python-version }}
activate-environment: mhkit
channels: conda-forge

- name: "Conda install h5py, netcdf4, and cython"
run: |
conda activate mhkit
conda install numpy cython pip pytest hdf5 libnetcdf cftime netcdf4 --strict-channel-priority

- name: Check out MHKiT-MATLAB
uses: actions/checkout@v4

- name: Check out MHKiT-Python
uses: actions/checkout@v4
with:
repository: "MHKiT-Software/MHKiT-Python"
path: ${{env.mhkit-python-dir}}

- name: pip install mhkit from source
working-directory: ${{env.mhkit-python-dir}}
run: |
conda activate mhkit
pip install -e .

- name: pip install mhkit-python-utils module from source
run: |
conda activate mhkit
pip install -e .

- name: Download mhkit_webread_cache artifact
uses: actions/upload-artifact@v2
with:
name: mhkit_webread_cache
path: mhkit_webread_cache

- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v1
with:
release: ${{ matrix.matlab-version }}

- name: Configure MATLAB pyenv Version and ExecutionMode
if: ${{ matrix.os == 'windows-latest' }}
shell: pwsh
run: >
"pyenv(Version='{0}', ExecutionMode='InProcess')" -f (python -c "import sys; print(sys.executable)") | Out-File -FilePath run.m

- name: Add MATLAB test commands
shell: bash
run: echo "version,
addpath(genpath('mhkit')),
import matlab.unittest.TestSuite,
import matlab.unittest.TestRunner,
testFolder = ['mhkit' filesep 'tests'],
suite = TestSuite.fromFolder(testFolder),
runner = TestRunner.withTextOutput,
results = runner.run(suite),
assertSuccess(results)" >> run.m

- name: Output Run.m
shell: bash
run: cat run.m

- name: Run MHKiT-MATLAB Unit Tests
uses: matlab-actions/run-command@v1
with:
command: run
startup-options: -noFigureWindows

- name: Save mhkit_webread_cache directory as an artifact
uses: actions/upload-artifact@v2
with:
name: mhkit_webread_cache
path: mhkit_webread_cache

main:
needs: cache_population
strategy:
fail-fast: false
matrix:
Expand All @@ -17,6 +108,8 @@ jobs:
# R2022b and above have a windows specific error related to the MATLAB/Python interface
matlab-version: [R2021b, R2022a]
exclude:
- matlab-version: 2022a
python-version: 3.9
- matlab-version: R2023b
python-version: 3.8
- matlab-version: R2023a
Expand Down Expand Up @@ -101,26 +194,17 @@ jobs:
conda activate mhkit
pip freeze

- name: Download mhkit_webread_cache artifact
uses: actions/download-artifact@v3
with:
path: mhkit_webread_cache

# Note, does not work, fails with error: RuntimeError: MATLAB installation not found in Windows Registry: [WinError 2] The system cannot find the file specified
# - name: Install MATLAB Engine API for Python on Windows
# if: ${{ matrix.os == 'windows-latest' }}
# run: python -m pip install matlabengine==9.14.3
# run: "pip3 install matlabengine --only-binary=:all:"

# - name: Test MHKiT-Python
# if: ${{ matrix.os == 'windows-latest' }}
# run: |
# pip install nose pytest
# nosetests -v --traverse-namespace mhkit
# working-directory: ${{env.mhkit-python-dir}}
# # if: always() && steps.runTests.outcome == 'failure'

- name: Download mhkit_webread_cache artifact
uses: actions/upload-artifact@v2
with:
name: mhkit_webread_cache
path: mhkit_webread_cache

- name: Set up MATLAB
uses: matlab-actions/setup-matlab@v1
with:
Expand Down

0 comments on commit ad3a50e

Please sign in to comment.