All code that is included in Mbed TLS must be contributed in the form of pull requests on GitHub and undergoes some automated testing. This page describes the continuous integration jobs that run on every pull request.
This job checks that all commits have a Signed-off-by: line. The presence of this line indicates that the author of the commit certifies that the commit is covered by the Developer Certificate of Origin and contributed according to the project license.
All commits must have such a line, otherwise the commit cannot be accepted for legal reasons. As a temporary exception, commits from Arm employees or from other contributors who already have a contributor license agreement (CLA) can still be accepted, but please include a Signed-off-by: line in any new work.
If the DCO job fails, please reword all commit messages that are missing a Signed-off-by: line. If you have multiple commit messages to rewrite, How to use git interactive rebase for signing off a series of commits may help.
The Travis job runs a set of sanity checks and test runs on x86. You can find the list of tests in .travis.yml. The Travis logs are public.
The PR-NNN-head and PR-NNN-merge jobs run an extensive battery of tests on several platforms. The -head jobs run the tests on the tip of the submitted code. The -merge jobs run the tests on a merge with the target branch.
As of early 2020, these jobs run on a private Jenkins instance. It is unfortunately not possible to make the logs public. Please ping an Mbed TLS development team member if you need to see failure logs.
The Jenkins PR job includes the following parts:
- Run tests/scripts/all.sh on Ubuntu 16.04. This script includes:
- Some sanity checks.
- Builds of the library in various configurations on x86.
- Tests of the library in various configurations on x86. The tests are mainly unit tests (make test), SSL feature tests (tests/ssl-opt.sh) and interoperability tests (tests/compat.sh).
- Some cross compilation with GCC-arm, Arm Compiler 5 and Arm Compiler 6.
- Build with IAR 8.
- Build on Windows with MinGW and Visual Studio. We use the following Visual Studio versions:
- Mbed TLS 2.7, Mbed TLS 2.16: VS 2010, 2013, 2015, 2017.
- Since Mbed TLS 2.19: VS 2013, 2015, 2017.
- Test some example applications on Mbed OS.