Set dir in extra builds too
[ci.git] / README.md
blobff40f5c4f815fee17f8755497f7c96a6a8b10626
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.sh`
42 script to learn about internals.
45 Simple test running malloc and checking its output looks like this:
47 ```
48 xx_start_machine
49 xx_cmd "tester malloc1" assert="Test passed" timeout=120 die_on="demo"
50 xx_stop_machine
51 ```
54 Test checking that we are able to launch gcc (needs special image):
56 ```
57 # @needs gcc
58 xx_start_machine
59 xx_cmd "gcc" assert="no input files" timeout=20
60 xx_stop_machine
61 ```