Skip to content

Add upper pydelica constraint #1709

Add upper pydelica constraint

Add upper pydelica constraint #1709

name: Power Balance Models Ubuntu
on: [push]
jobs:
test_modelica_build:
container:
image: openmodelica/openmodelica:v1.23.1-ompython
name: Test Modelica Build (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
steps:
- uses: actions/checkout@v3
- name: Compile models
run: |
mkdir build
cd build
echo "installPackage(Modelica, \"4.0.0\", exactMatch=true)" >> install.mos
ln -s ${GITHUB_WORKSPACE}/power_balance/models/*.mo .
omc install.mos
omc -s $(ls *.mo) Modelica +i=Tokamak.Interdependencies
make -f Tokamak_Interdependencies.makefile
shell: bash
- name: Archive Modelica Binaries
uses: actions/upload-artifact@v3
with:
name: om-binaries
path: build/
retention-days: 1
test_module_build:
name: Test Module Build (Python${{ matrix.python-version }} ${{ matrix.os }})
runs-on: ${{ matrix.os }}
container:
image: openmodelica/openmodelica:v1.23.1-ompython
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
python-version: [ '3.11', '3.10', '3.12' ]
steps:
- uses: actions/checkout@v3
- name: Install Poetry
run: python3 -m pip install poetry
- name: Build Module
run: |
poetry install
poetry build
poetry run powerbalance generate-profiles
- name: Archive Plasma Profiles
uses: actions/upload-artifact@v3
with:
name: om-plasma-profiles
path: power_balance/profiles/mat_profile_files/*.mat
retention-days: 1
model_run_om:
container:
image: openmodelica/openmodelica:v1.23.1-ompython
name: Model Run Open Modelica (${{ matrix.os }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
needs: [test_modelica_build]
steps:
- name: Retrieve Open Modelica model binaries
uses: actions/download-artifact@v3
with:
name: om-binaries
path: build
- name: Retrieve Plasma profiles
uses: actions/download-artifact@v3
with:
name: om-plasma-profiles
path: power_balance/profiles/mat_profile_files
- name: Run Models
run: |
cd build
chmod +x ./Tokamak_Interdependencies
ln -s ../power_balance/profiles/mat_profile_files/* .
./Tokamak_Interdependencies
model_run_api:
container:
image: openmodelica/openmodelica:v1.23.1-ompython
name: Model Run API (${{ matrix.os }} Python${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
python-version: [ '3.11', '3.10', '3.12' ]
needs: [test_module_build]
steps:
- uses: actions/checkout@v3
- name: Install Poetry
run: python3 -m pip install poetry
- name: Run Models
run: |
poetry install
poetry run powerbalance install-msl
poetry run coverage run --source=power_balance --data-file=coverage_default -m pytest tests/scenarios
- name: Archive Run Coverage
uses: actions/upload-artifact@v3
if: ${{ github.ref_name == 'main' }}
with:
name: coverage-run
path: coverage_default
retention-days: 1
regression_tests:
container:
image: openmodelica/openmodelica:v1.23.1-ompython
name: Regression Tests (${{ matrix.os }} Python${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
python-version: [ '3.11', '3.10', '3.12' ]
needs: [test_module_build]
steps:
- uses: actions/checkout@v3
- name: Install Poetry
run: python3 -m pip install poetry
- name: Run Regression Tests
run: |
poetry install
poetry run powerbalance install-msl
poetry run coverage run --source=power_balance --data-file=coverage_regression -m pytest tests/regression_tests
- name: Archive Run Coverage
uses: actions/upload-artifact@v2
if: ${{ github.ref_name == 'main' }}
with:
name: coverage-regression
path: coverage_regression
retention-days: 1
unit_tests:
container:
image: openmodelica/openmodelica:v1.21.0-ompython
name: Unit Tests (${{ matrix.os }} Python${{ matrix.python-version }})
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04]
python-version: [ '3.11', '3.10', '3.12' ]
needs: [test_module_build]
steps:
- uses: actions/checkout@v3
- name: Install Poetry
run: python3 -m pip install poetry
- name: Run Unit Tests
run: |
poetry install
poetry run powerbalance install-msl
poetry run coverage run --data-file=coverage_unit --source=power_balance -m pytest tests/unit_tests
- name: Archive Run Coverage
uses: actions/upload-artifact@v2
if: ${{ github.ref_name == 'main' }}
with:
name: coverage-unit
path: coverage_unit
retention-days: 1
collate_coverage:
name: Collate Coverage
runs-on: ubuntu-latest
if: ${{ github.ref_name == 'main' }}
needs: [unit_tests, regression_tests, model_run_api]
steps:
- uses: actions/checkout@v3
- name: Install Poetry
run: python3 -m pip install poetry
- name: Retrieve Unit Test Coverage
uses: actions/download-artifact@v3
with:
name: coverage-unit
path: coverage
- name: Retrieve Regression Test Coverage
uses: actions/download-artifact@v3
with:
name: coverage-regression
path: coverage
- name: Retrieve PBM Run Coverage
uses: actions/download-artifact@v3
with:
name: coverage-run
path: coverage
- name: Combine Coverage
run: |
find . -name "*.pyc" -delete
poetry run pip install coverage
poetry run coverage combine coverage/coverage_*
poetry run coverage xml -i
poetry run coverage report -i
continue-on-error: true
- uses: codecov/codecov-action@v2
with:
env_vars: OS,PYTHON
files: coverage.xml
continue-on-error: true