Skip to content

CI Workflow

Marcin Wróbel edited this page Apr 11, 2022 · 1 revision

GitHub workflows

CI takes place using GitHub actions/workflows. The various CI workflows can be found in: <project-path>/.github/workflows/*.yml.

Unit tests

Unit tests running for Python versions:

  • 3.8
  • 3.9

Test are run with python -m unittest discover -s $(pwd)/tests -p "test*.py" -t $(pwd) -v command.

This simply means that all files in <project-path>/tests directory which starts with test and ends with .py will be found and run as tests.

In order to add a new test, one needs to:

  • save a file into <project-path>/tests
  • file name should be:
    • when testing lbsRank => test_lbs_rank.py
    • when testing lbsObjectCommunicator => test_lbs_object_communicator.py

Once done, test will be found and added to the reports (coverage and linter).

Acceptance tests

Currently, LBAF works only with Python 3.8. Once VTK issue is sorted LBAF should support Python 3.9 as well.

Acceptance test is a normal run of LBAF. The test uses test configuration mentioned in LBAF-Testing. Then generated imbalance is checked.

CI for these tests prepares virtual environment for Python interpreter by installing all dependencies needed as well as all the OS packages. In order to run LBAF needs Xvfb. It allows you to execute graphical apps without having to use a monitor by connecting some input device. Virtual memory is used to perform graphical operations and it allows the program to run headlessly.

Build and publish to PyPi

This workflow builds a PyPi package and deploys it to PyPi which makes LBAF really easy to use.

Clone this wiki locally