Bump versions #104
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: Horace-Euphonic-Interface Tests | |
on: | |
push: | |
branches: [master] | |
pull_request: | |
branches: [master, development] | |
types: [opened, reopened, synchronize] | |
workflow_dispatch: | |
jobs: | |
test: | |
strategy: | |
matrix: | |
os: [windows-latest, ubuntu-latest] | |
matlab_version: [2022a, 2023a, 2023b, latest] | |
python_version: [3.9] | |
euphonic_version: ['--version 1.3.1'] | |
# Test lowest supported Python/Euphonic versions, and lowest available Matlab | |
include: | |
- os: ubuntu-latest | |
matlab_version: R2021b | |
python_version: 3.9 | |
fail-fast: false | |
runs-on: ${{ matrix.os }} | |
defaults: | |
run: | |
shell: bash -l {0} # Needed to use conda environments | |
steps: | |
- name: Check out Horace-Euphonic-Interface | |
uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- run: | | |
cd light_python_wrapper | |
git remote add personal https://github.com/oerc0122/light_python_wrapper.git | |
git fetch personal | |
git checkout patch-1 | |
- name: Set up MATLAB | |
uses: matlab-actions/setup-matlab@v2 # v1.1.0 required for Windows/MacOS support | |
with: | |
release: ${{ matrix.matlab_version }} | |
- name: Set up Python | |
uses: conda-incubator/setup-miniconda@v3 | |
with: | |
python-version: ${{ matrix.python_version }} | |
- name: Set Python environment variable for access by Matlab | |
if: ${{ matrix.os != 'windows-latest' }} | |
run: echo "PYTHON_EX_PATH=`which python`" >> $GITHUB_ENV | |
- name: Set Python environment variable for access by Matlab (Windows) | |
if: ${{ matrix.os == 'windows-latest' }} | |
shell: powershell | |
run: | | |
$pypath = (Get-Command python).Path | |
echo "PYTHON_EX_PATH=$pypath" | Out-File -FilePath $Env:GITHUB_ENV -Encoding utf8 -Append | |
- name: Update pip and create Matlab toolbox | |
run: | | |
python -m pip install --upgrade pip && | |
python -m pip install requests && | |
python create_mltbx.py | |
- name: create_toolbox | |
uses: matlab-actions/run-command@v2 | |
with: | |
command: cd('mltbx'); create_mltbx() | |
- name: Install base Euphonic | |
run: | | |
python -m pip install numpy==1.26.4 && | |
python euphonic_sqw_models/apply_requirements.py ${{ matrix.euphonic_version }} | |
- name: Run tests with base Euphonic | |
uses: matlab-actions/run-command@v2 | |
with: | |
command: cd('test'); set_up_dependencies; run_tests('not', 'phonopy_reader', 'not', 'brille') | |
- name: Install Euphonic phonopy_reader | |
if: always() | |
run: python euphonic_sqw_models/apply_requirements.py ${{ matrix.euphonic_version}} --extras phonopy_reader | |
- name: Run tests with Euphonic and phonopy_reader | |
if: always() | |
uses: matlab-actions/run-command@v2 | |
with: | |
command: cd('test'); set_up_dependencies; run_tests('phonopy_reader') | |
- name: Install brille | |
if: always() | |
run: python euphonic_sqw_models/apply_requirements.py ${{ matrix.euphonic_version}} --extras brille | |
- name: Run tests with Euphonic and Brille | |
if: always() | |
uses: matlab-actions/run-command@v2 | |
with: | |
command: cd('test'); set_up_dependencies; run_tests('brille') | |
- uses: codecov/codecov-action@v3 | |
if: ${{ always() && matrix.os == 'ubuntu-latest' && matrix.matlab_version == 'latest' }} | |
with: | |
directory: test | |
files: coverage*.xml | |
token: ${{ secrets.CODECOV_TOKEN }} | |
- name: Upload toolbox | |
if: ${{ always() && matrix.os == 'ubuntu-latest' && matrix.matlab_version == 'latest' }} | |
uses: actions/upload-artifact@v3 | |
with: | |
name: horace_euphonic_interface.mltbx | |
path: mltbx/horace_euphonic_interface.mltbx | |
- name: Upload test results | |
if: always() | |
uses: actions/upload-artifact@v3 | |
with: | |
name: Unit test results ${{ matrix.os }} | |
path: test/junit_report*.xml | |
publish-test-results: | |
needs: test | |
runs-on: ubuntu-latest | |
if: success() || failure() | |
steps: | |
- name: Download Artifacts | |
uses: actions/download-artifact@v3 | |
with: | |
path: artifacts | |
- name: Publish test results | |
uses: EnricoMi/publish-unit-test-result-action@v2 | |
with: | |
junit_files: artifacts/**/junit_report*.xml |