Added ruff excludes #1696
Workflow file for this run
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: 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 }} | |
strategy: | |
fail-fast: false | |
matrix: | |
os: [ubuntu-24.04] | |
python-version: [ '3.11', '3.10', '3.12' ] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: Install Poetry | |
run: python -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-22.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-22.04] | |
python-version: [ '3.11', '3.10', '3.12' ] | |
needs: [test_module_build] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: Install Poetry | |
run: python -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-22.04] | |
python-version: [ '3.11', '3.10', '3.12' ] | |
needs: [test_module_build] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: Install Poetry | |
run: python -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-22.04] | |
python-version: [ '3.11', '3.10', '3.12' ] | |
needs: [test_module_build] | |
steps: | |
- uses: actions/checkout@v3 | |
- name: Set up Python | |
uses: actions/setup-python@v4 | |
with: | |
python-version: ${{ matrix.python-version }} | |
architecture: x64 | |
- name: Install Poetry | |
run: python -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: Set up Python | |
uses: actions/setup-python@v4 | |
- name: Install Poetry | |
run: python -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 |