Skip to content

continuous integration

Dealga McArdle edited this page Jul 1, 2021 · 10 revisions

We use Github actions to trigger a set of tests of the sverchok code base after a commit to any Sverchok branch. The actions are described in https://github.com/nortikin/sverchok/blob/master/.github/workflows/test-sverchok.yml and involve

test-sverchok.yml

  1. getting a harddrive in the cloud
  2. (re)storing an image of a drive that has
    • Blender
    • Sverchok any branch
    • Python and libraries
  3. running tests found in ./run_tests.sh in the Sverchok main directory.
  4. two things can happen:
    • ✔️if these tests run smoothly generally this means that the test suite has been able to cover all parts of sverchok where we have tests.
      • this does not mean that there are no bugs.
      • in some cases the test suite itself ends early due to a previously unencountered bug. Therefore it is a good idea to frequently look at the output of the tests to see if indeed all tests have completed. A green tick is not a guarantee for a bugfree sverchok.
    • ❌if the tests fail, one ore more tests didn't complete as expected and we'll look into it.
  5. if this was the first run, the image of the drive is stored (cached, section '2') and can be reused after the next commit to Master.

run_tests.sh

(or the equivalent windows command run_tests_win.bat)

roughly looks like this

$BLENDER -b --addons sverchok --python utils/testing.py
  • start blender in background mode
  • enable sverchok
  • execute sverchok/utils/testing.py

testing.py

This is where we define all tests:

  • testing if each node has documentation, and displaying the list of nodes that do not have manual entires.
  • geometry functions
  • socket caching
  • utility functions (list matching, repeating, spreading..)
  • import, export, loading .blends
  • etc,.
Clone this wiki locally