-
Notifications
You must be signed in to change notification settings - Fork 7
103 lines (88 loc) · 4.65 KB
/
district_model.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# GitHub action designed for the modelica district model of Quarree100
name: District Model Tests
on: [push, pull_request]
jobs:
job_1:
runs-on: ${{ matrix.os }}
name: Build
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest]
python: [3.8, 3.9]
aixlib: [0.10.7]
externdata: [2.5.0]
modelica: [1.16.2, release, stable] # "nightly" testing fails
steps:
- name: Checkout
uses: actions/checkout@v2 # use the latest code commit
- name: Setup conda with python ${{ matrix.python }}
uses: s-weigand/setup-conda@v1
with:
python-version: ${{ matrix.python }}
- name: Install Python dependencies
run: |
conda install pandas matplotlib conda-build
conda install pyfmi -c conda-forge
- name: Prepare numbered OpenModelica version (add package sources)
if: "!contains('release stable nightly', matrix.modelica)"
run: |
# To install specific older versions, do:
for deb in deb; do echo "$deb https://build.openmodelica.org/omc/builds/linux/releases/${{ matrix.modelica }}/ `lsb_release -cs` release"; done | sudo tee /etc/apt/sources.list.d/openmodelica.list
- name: Prepare named OpenModelica version (add package sources)
if: contains('release stable nightly', matrix.modelica)
run: |
# For latest version in "release" channel do:
for deb in deb deb-src; do echo "$deb http://build.openmodelica.org/apt `lsb_release -cs` ${{ matrix.modelica }}"; done | sudo tee /etc/apt/sources.list.d/openmodelica.list
- name: Install OpenModelica
if: runner.os == 'Linux' # This only works on Linux
run: |
# Installation instructions based on:
# https://www.openmodelica.org/download/download-linux
# Add sources for packaged openmodelica (see step above)
# You will also need to import the GPG key used to sign the releases:
wget -q http://build.openmodelica.org/apt/openmodelica.asc -O - | sudo apt-key add -
# To verify that your key is installed correctly
apt-key fingerprint
# Then update and install OpenModelica
sudo apt update
sudo apt install openmodelica
# Install optional Modelica libraries (most have not been tested with OpenModelica)
# for PKG in `apt-cache search "omlib-.*" | cut -d" " -f1`; do sudo apt-get install -y "$PKG"; done
sudo apt install omlib-modelica-synchronous-0.92.1
sudo apt install omlib-ncdatareader2-2.4.0
sudo apt install omlib-modelica-devicedrivers-1.8.2
#sudo apt install omlib-aixlib-0.9.1 # works, but only with some releases, not the required one
- name: Install AixLib
if: runner.os == 'Linux' # Only required on Linux
run: |
wget -q https://github.com/jnettels/AixLib/archive/v${{ matrix.aixlib }}.tar.gz -O - | sudo tar xzf - -C /usr/lib/omlibrary/
sudo mv /usr/lib/omlibrary/AixLib-${{ matrix.aixlib }}/AixLib/ '/usr/lib/omlibrary/AixLib ${{ matrix.aixlib }}'
sudo rm -r /usr/lib/omlibrary/AixLib-${{ matrix.aixlib }}
- name: Install BuildingSystems
if: runner.os == 'Linux' # Only required on Linux
run: |
wget -q https://github.com/UdK-VPT/BuildingSystems/archive/master.tar.gz -O - | sudo tar xzf - -C /usr/lib/omlibrary/
sudo mv /usr/lib/omlibrary/BuildingSystems-master/BuildingSystems/ '/usr/lib/omlibrary/BuildingSystems'
sudo rm -r /usr/lib/omlibrary/BuildingSystems-master
- name: Install ExternData
if: runner.os == 'Linux' # Only required on Linux
run: |
wget -q https://github.com/modelica-3rdparty/ExternData/archive/v${{ matrix.externdata }}.tar.gz -O - | sudo tar xzf - -C /usr/lib/omlibrary/
sudo mv /usr/lib/omlibrary/ExternData-${{ matrix.externdata }}/ExternData/ '/usr/lib/omlibrary/ExternData ${{ matrix.externdata }}'
sudo rm -r /usr/lib/omlibrary/ExternData-${{ matrix.externdata }}
- name: Install OMPython
run: |
python -m pip install -U https://github.com/OpenModelica/OMPython/archive/master.zip
- name: Run the simulation test script
run: |
# Perform the actual simulation via Python
python ./district_model/python/run_test.py
- name: Lint with flake8
if: runner.os == 'Linux' # Only needs to run once
run: |
conda install flake8
# stop the build if there are Python syntax errors or undefined names
flake8 . --count --select=E9,F63,F7,F82 --show-source --statistics
# exit-zero treats all errors as warnings. The GitHub editor is 127 chars wide
flake8 . --count --exit-zero --max-complexity=10 --max-line-length=127 --statistics