Skip to content

Commit 2971803

Browse files
author
Amanda Butler
authored
Merge pull request #762 from OPpuolitaival/ci
Ci documentation added
2 parents 7f03098 + f83299c commit 2971803

File tree

3 files changed

+85
-1
lines changed

3 files changed

+85
-1
lines changed

docs.json

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,34 @@
730730
"url": "https://github.com/ARMmbed/mbed-os-5-docs/blob/development/docs/reference/configuration/bootloader.md"
731731
}
732732
]
733+
},
734+
{
735+
"title": "Contributing",
736+
"intro": {
737+
"type": "markdown",
738+
"url": "https://github.com/ARMmbed/mbed-os-5-docs/blob/development/docs/reference/contributing/guidelines/guidelines.md"
739+
},
740+
"sources": [{
741+
"type": "markdown",
742+
"url": "https://github.com/ARMmbed/mbed-os-5-docs/blob/development/docs/reference/contributing/guidelines/license.md"
743+
},
744+
{
745+
"type": "markdown",
746+
"url": "https://github.com/ARMmbed/mbed-os-5-docs/blob/development/docs/reference/contributing/guidelines/style.md"
747+
},
748+
{
749+
"type": "markdown",
750+
"url": "https://github.com/ARMmbed/mbed-os-5-docs/blob/development/docs/reference/contributing/guidelines/design_guidelines.md"
751+
},
752+
{
753+
"type": "markdown",
754+
"url": "https://github.com/ARMmbed/mbed-os-5-docs/blob/development/docs/reference/contributing/guidelines/workflow.md"
755+
},
756+
{
757+
"type": "markdown",
758+
"url": "https://github.com/ARMmbed/mbed-os-5-docs/blob/development/docs/reference/contributing/guidelines/ci.md"
759+
}
760+
]
733761
}
734762
]
735763
},
Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<h2 id="ci">Continuous integration</h2>
2+
3+
Continuous integration (CI) means mainly automatic testing for pull requests.
4+
5+
### Travis CI
6+
7+
In Mbed OS [Travis CI](https://travis-ci.org/ARMmbed/mbed-os) is used as primary automatic testing and checking run environment.
8+
9+
Travis configuration is located in the [.travis.yml](https://github.com/ARMmbed/mbed-os/blob/master/.travis.yml) file in Mbed OS root directory. Mbed OS uses public travis so test results are publicly available and there are public [documentation available](https://docs.travis-ci.com/).
10+
11+
#### Tests
12+
13+
- **continuous-integration/travis-ci/pr** - Run other testing jobs.
14+
- **travis-ci/astyle** - Check code style using [astyle](http://astyle.sourceforge.net/).
15+
- **travis-ci/docs** - [Doxygen](http://www.doxygen.org/) and naming checks:
16+
- Assert that the Doxygen build produces no warnings.
17+
- Assert that all binary libraries are named correctly.
18+
- Assert that all assembler files are named correctly.
19+
- **travis-ci/events** - Check that Mbed OS compiles and run events tests.
20+
- **travis-ci/gitattributestest** - Check there are no changes after clone. This checks that `.gitattributes` is used correctly.
21+
- **travis-ci/licence_check** - Check there is no GPL licence text in the code.
22+
- **travis-ci/littlefs** - Test littlefs without embedded hardware.
23+
- **travis-ci/tools-py2.7** - Run Python tools tests with Python 2.7.
24+
25+
### Jenkins
26+
27+
We use [Jenkins](https://jenkins.io/) as an internal testing and checking environment. We execute tests that have special requirements for the execution enviroment in our internal Jenkins. In most cases, we publish test logs.
28+
29+
How it works:
30+
31+
- Jenkins uses a [scripted pipeline syntax](https://jenkins.io/doc/book/pipeline/).
32+
- Jenkins scripts are not publicly available. There is a Jenkinsfile in the Mbed OS root folder, but that is just a trigger for tests.
33+
- Jenkins selects required tests dynamically based on the code changes. For example, no tests execute if only markdown (.md) files change.
34+
- Jenkins runs a first small number of tests to provide fast feedback, and then it runs additional tests.
35+
36+
#### Tests
37+
38+
- **continuous-integration/jenkins/pr-head** - Jenkins main pipeline script execution status.
39+
- **jenkins-ci/build-ARM** - Build Mbed OS and examples with [ARM compiler](https://developer.arm.com/products/software-development-tools/compilers/arm-compiler). Related commands:
40+
- `mbed test --compile -t <toolchain> -m <target> `.
41+
- `python -u mbed-os/tools/test/examples/examples.py compile <toolchain> --mcu <target>`.
42+
- **jenkins-ci/build-GCC_ARM** - Build Mbed OS and examples with GCC_ARM.
43+
- **jenkins-ci/build-IAR** - Build Mbed OS and examples with IAR.
44+
- **jenkins-ci/cloud-client-test** - Test the change with [mbed-cloud-client](https://github.com/ARMmbed/mbed-cloud-client) using the [mbed-cloud-client-example](https://github.com/ARMmbed/mbed-cloud-client-example).
45+
- **jenkins-ci/dynamic-memory-usage** - Report dynamic memory use compared to the master branch.
46+
- **jenkins-ci/exporter** - Export and build exported code. Related commands:
47+
- `python -u mbed-os/tools/test/examples/examples.py export <exporter> --mcu <target>`.
48+
- **jenkins-ci/greentea-test** - Run [greentea tests](/docs/tools/testing/testing_greentea.html).
49+
- **jenkins-ci/mbed2-build-ARM** - Build Mbed OS 2 with [ARM compiler](https://developer.arm.com/products/software-development-tools/compilers/arm-compiler). Related commands:
50+
- `python tools/build_release.py -p <target> -t <toolchain>`.
51+
- **jenkins-ci/mbed2-build-GCC_ARM** - Build Mbed OS 2 with GCC_ARM.
52+
- **jenkins-ci/mbed2-build-IAR** - Build Mbed OS 2 with IAR.
53+
- **jenkins-ci/unittests** - Run [unit tests](/docs/tools/testing/unit_testing.html).
54+
- **tools-test-linux** - Test that tools work on Linux.
55+
- **tools-test-mac** - Test that tools work on macOS.
56+
- **tools-test-windows** - Test that tools work on Windows.

docs/reference/contributing/guidelines/workflow.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -187,7 +187,7 @@ Time: 3 days for reviewers to leave feedback after the maintainers add the "need
187187

188188
#### The CI (Continuous Integration) testing
189189

190-
There are many CI systems available. Which CI tests we run against a particular pull request depends on the effect that pull request has on the code base. Irrespective of which CI tests run, Mbed OS has an all green policy, meaning that all the CI jobs that are triggered must pass before we merge the pull request.
190+
There are many [CI systems available](../contributing/guidelines/ci.html) for testing Mbed OS pull requests and braches. Which CI tests we run against a particular pull request depends on the effect that pull request has on the code base. Irrespective of which CI tests run, Mbed OS has an all green policy, meaning that all the CI jobs that are triggered must pass before we merge the pull request.
191191

192192
Label: `needs: review`
193193
Time: 1 day for CI to complete and report back results.

0 commit comments

Comments
 (0)