Update README
[ci.git] / README.md
blob1911c1c85260d034f14520d793d95ed8f22f04ca
1 HelenOS Continuous Integration Testing Scripts
2 ==============================================
4 The purpose of this repository is to have a universal script for building
5 and testing (almost) everything related to HelenOS. Currently, the script
6 is able to:
8  * fetch latest versions of HelenOS and harbours (ported software)
9  * build HelenOS for all supported architectures
10  * build all harbours (the full matrix)
11  * run automated tests in QEMU (selected platforms only)
13 See http://www.helenos.org/wiki/CI for more information. Nightly builds
14 using this tool are pushed to http://ci.helenos.org/.
16 **Note:** this tool is not meant to be used for normal development of
17 HelenOS (i.e. the "edit - incrementally compile - test" loop) but rather
18 for pre-merge tests or automated nightly builds.
21 Running
22 -------
24 ```shell
25 # Fetch default branches and build everything.
26 ./build.py
28 # Limit paralellism
29 ./build.py --jobs 3
31 # Fetch from non-default branches
32 ./build.py --helenos-repository git@github.com:login/helenos.git
33 ```
35 Tests
36 -----
38 The tests are executed in QEMU and it is possible to type text
39 into console and assert for command output.
41 See scripts in `scenarios/` directory for examples or the `test-in-vm.py`
42 script to learn about internals.
45 Simple test running malloc and checking its output looks like this:
47 ```yml
48 meta:
49   name: "tester malloc"
50   harbours: []
52 tasks:
53   - boot
54   - command:
55       args: "tester malloc1"
56       assert:  "Test passed"
57       negassert: "Test failed"
58 ```
61 Test checking that we are able to launch GCC (needs special image):
63 ```yml
64 meta:
65   name: "gcc --version"
66   harbours:
67      - gcc
69 tasks:
70   - boot
71   - command:
72       args: "gcc --version"
73       assert:  "GCC"
74 ```