Shadow runs a CI workflow every time a pull-request (PR) is updated. This workflow contains several checks to assure the quality of the project, and only pull-requests with green results are merged.
The project is built & installed on various distributions. The workflow can be triggered locally by following the instructions specified in the Build & install page.
The project runs system tests to verify functionality across different environments using two complementary approaches:
Legacy Bash system tests run on Ubuntu in a VM environment. These provide coverage for Ubuntu-specific scenarios and legacy test cases. You can run this step locally by following the instructions provided in the Tests page.
The new Python system tests use pytest and pytest-mh, running across multiple distributions (Fedora, Debian, Alpine, openSUSE) in containerized environments. These tests provide cross-distribution compatibility and improved environment management compared to the Bash tests.
For local execution of Python system tests, follow the instructions in the Tests page.
C and shell static code analysis is also executed. For that purpose CodeQL and Differential ShellCheck are used.