Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix GitHub Pipeline Sionna Integration #18

Closed
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 2 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[flake8]
extend-ignore = E203 E501 W605
2 changes: 2 additions & 0 deletions .gitattributes
Original file line number Diff line number Diff line change
Expand Up @@ -14,3 +14,5 @@ _examples/resources/leena.png filter=lfs diff=lfs merge=lfs -text
_examples/resources/leena.raw filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.svg filter=lfs diff=lfs merge=lfs -text
scripts/install/HermesPy.exe filter=lfs diff=lfs merge=lfs -text
scripts/install/HermesPyDev.exe filter=lfs diff=lfs merge=lfs -text
47 changes: 35 additions & 12 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,10 @@ name: hermespy
# Execute tests if pushed to any branch
on: [push, pull_request]

jobs:
env:
HERMES_QUADRIGA: ${{ github.workspace }}/submodules/quadriga/quadriga_src

jobs:

Testing:

Expand All @@ -20,20 +22,39 @@ jobs:
uses: actions/checkout@v2
with:
lfs: true
submodules: recursive

- name: Set up Python 3.9
- name: Set up Python 3.11
uses: actions/setup-python@v2
with:
python-version: 3.9
python-version: '3.11'

- name: Install dependencies
run: |
sudo apt update
sudo apt-get install -y build-essential octave
pip install .[test,quadriga,documentation]
sudo apt-get install -y build-essential octave portaudio19-dev python-dev-is-python3
export MAKEFLAGS="-j $(grep -c ^processor /proc/cpuinfo)"
pip install -e .[develop,test,documentation,quadriga,sionna,uhd,audio]
python -m setup develop

- name: Run unit tests
run: python -m unittest discover tests/unit_tests
run: |
coverage run --include=hermespy/* ./tests/test_install.py ./tests/unit_tests/
coverage xml
coverage report -m --include=hermespy/* --skip-covered

- name: Code Coverage Report
uses: irongut/[email protected]
with:
filename: coverage.xml
badge: true
fail_below_min: true
format: markdown
hide_branch_rate: false
hide_complexity: true
indicators: true
output: both
thresholds: '60 80'


Documentation:
Expand All @@ -46,24 +67,26 @@ jobs:
uses: actions/checkout@v2
with:
lfs: true
submodules: recursive

- name: Setup python 3.9
- name: Setup python 3.11
uses: actions/setup-python@v2
with:
python-version: 3.9
python-version: '3.11'

- name: Install doc dependencies
run: |
sudo apt update
sudo apt-get install -y build-essential octave
pip install -e .[test,quadriga,documentation]
sudo apt-get install -y build-essential octave portaudio19-dev python-dev-is-python3 pandoc graphviz
export MAKEFLAGS="-j $(grep -c ^processor /proc/cpuinfo)"
pip install -e .[test,documentation,quadriga,sionna,uhd,audio]

- name: Build documentation
run: python -m setup build_sphinx
run: sphinx-build docssource/ documentation/

- name: Create github pages
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/main' }}
uses: JamesIves/[email protected]
with:
branch: gh-pages
folder: documentation/html
folder: documentation
9 changes: 6 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,19 +3,22 @@
.mypy_cache/
__pycache__
_results_*/
documentation/
/documentation/
results/
.idea/
env*/
matlab_env/
.ipynb_checkpoints/

# IDE specific
.vscode/
*.code-workspace

# python-specific

*.so
*.pyc
.python-version
*.so

# Don't track build fragments
wheel/
Expand All @@ -25,7 +28,7 @@ _skbuild/
build/
dist/
.coverage
MANIFEST
MANIFEST*
pip-wheel-metadata/

# misc
Expand Down
143 changes: 116 additions & 27 deletions .gitlab-ci.yml
Original file line number Diff line number Diff line change
@@ -1,65 +1,154 @@
image: python:3.9
#image: $CI_REGISTRY/barkhauseninstitut/wicon/hermespy:python-39-linux
image: python:3.11

variables:
PIP_CACHE_DIR: "$CI_PROJECT_DIR/.cache/pip"
GIT_SUBMODULE_STRATEGY: recursive
HERMES_VERSION: "1.2.0"
HERMES_WHEEL_11: "hermespy-$HERMES_VERSION-cp311-cp311-linux_x86_64.whl"
HERMES_WHEEL_10: "hermespy-$HERMES_VERSION-cp310-cp310-linux_x86_64.whl"
HERMES_WHEEL_09: "hermespy-$HERMES_VERSION-cp39-cp39-linux_x86_64.whl"

stages:
- build
- test
- lint
- deploy

cache:
key: build-cache
paths:
- .cache/pip
- venv/
- dist/

before_script:
- apt update
- apt-get install -y build-essential octave
- pip install virtualenv
- virtualenv venv
- source venv/bin/activate
Build Python 3.11:
stage: build
image: python:3.11
before_script:
- apt update && apt-get install -y build-essential octave pandoc python-dev-is-python3
- pip install --upgrade setuptools wheel pybind11 scikit-build cmake build
script:
- export MAKEFLAGS="-j $(grep -c ^processor /proc/cpuinfo)"
- python -m build
# - pip install --no-cache-dir -U -e .\[test,quadriga,documentation,audio,develop\] # remove for docker
# - pip uninstall -y hermespy # remove for docker
artifacts:
paths:
- dist/$HERMES_WHEEL_11

Build Package:
Build Python 3.10:
stage: build
image: python:3.10
before_script:
- apt update && apt-get install -y build-essential octave pandoc python-dev-is-python3
- pip install --upgrade setuptools wheel pybind11 scikit-build cmake build
script:
- export MAKEFLAGS="-j $(grep -c ^processor /proc/cpuinfo)"
- python -m build
artifacts:
paths:
- dist/*.whl
- dist/$HERMES_WHEEL_10

Build Python 3.9:
stage: build
image: python:3.9
before_script:
- apt update && apt-get install -y build-essential octave pandoc python-dev-is-python3
- pip install --upgrade setuptools wheel pybind11 scikit-build cmake build
script:
- pip install -r requirements.txt
- python setup.py bdist_wheel
- pip install dist/hermespy-0.3.0-py3-none-any.whl[test,quadriga,documentation]
- export MAKEFLAGS="-j $(grep -c ^processor /proc/cpuinfo)"
- python -m build
artifacts:
paths:
- dist/$HERMES_WHEEL_09

Unit Testing:
stage: test
dependencies:
- Build Package
- Build Python 3.11
before_script:
- apt update && apt-get install -y octave portaudio19-dev python-dev-is-python3 unzip # remove for docker
- pip install -e .\[develop,test,quadriga,audio\]
- unzip dist/$HERMES_WHEEL_11 "hermespy/fec/aff3ct/*.so"
- pip install pyzmq>=25.1.1 usrp-uhd-client
script:
- python -m unittest discover tests/unit_tests

- coverage run --include=hermespy/* ./tests/test_install.py ./tests/unit_tests/
after_script:
- coverage xml
- coverage report -m --include=hermespy/* --skip-covered
coverage: '/(?i)total.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/'
artifacts:
reports:
coverage_report:
coverage_format: cobertura
path: coverage.xml

Integration Testing:
stage: test
dependencies:
- Build Package
- Build Python 3.11
before_script:
- apt update && apt-get install -y octave portaudio19-dev python-dev-is-python3 # remove for docker
- pip install dist/$HERMES_WHEEL_11\[test,quadriga,audio\]
script:
- python -m unittest discover tests/integration_tests
- python ./tests/test_install.py ./tests/integration_tests/

Integrity Testing:
Integrity Python 3.11:
stage: test
image: python:3.11
dependencies:
- Build Package
- Build Python 3.11
before_script:
- apt update && apt-get install -y octave portaudio19-dev python-dev-is-python3 # remove for docker
- pip install dist/$HERMES_WHEEL_11\[test,quadriga,audio\]
script:
- python -m unittest discover tests/integrity_tests
- python ./tests/test_install.py ./tests/integrity_tests/

Integrity Python 3.10:
stage: test
image: python:3.10
dependencies:
- Build Python 3.10
before_script:
- apt update && apt-get install -y octave portaudio19-dev python-dev-is-python3 # remove for docker
- pip install dist/$HERMES_WHEEL_10\[test,quadriga,audio\]
script:
- python ./tests/test_install.py ./tests/integrity_tests/

Integrity Python 3.9:
stage: test
image: python:3.9
dependencies:
- Build Python 3.9
before_script:
- pip install dist/$HERMES_WHEEL_09\[test,quadriga,audio\]
script:
- python ./tests/test_install.py ./tests/integrity_tests/

PEP8 Testing:
stage: lint
before_script:
- pip install dist/$HERMES_WHEEL_11\[test,quadriga,audio\]
- pip install flake8
script:
- flake8 hermespy/

Type Checking:
stage: lint
before_script:
- pip install dist/$HERMES_WHEEL_11\[test,quadriga,audio\]
- pip install mypy
script:
- mypy

pages:
stage: deploy
only:
- master
before_script:
- apt update && apt-get install -y octave portaudio19-dev python-dev-is-python3 pandoc graphviz # remove for docker
- pip install dist/$HERMES_WHEEL_11\[test,documentation,quadriga,audio\]
script:
- python -m setup build_sphinx
after_script:
- mkdir public/
- cp -r documentation/html/* public/
- sphinx-build ./docssource/ ./public/
artifacts:
paths:
- public
- public
6 changes: 6 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
[submodule "submodules/affect"]
path = submodules/affect
url = https://github.com/aff3ct/aff3ct.git
[submodule "submodules/quadriga"]
path = submodules/quadriga
url = https://github.com/fraunhoferhhi/QuaDRiGa.git
45 changes: 0 additions & 45 deletions 3rdparty/Eigen/Cholesky

This file was deleted.

Loading
Loading