- Two parallel runners on Linux/Windows (two runners on MacOS)
- Ubuntu 14/16/18/20, MacOS 10.13/14/15, Windows Server v1809
- Use different compilers (gcc, clang)
- Use different gcc versions
- Cross-compile for Windows 32bit and 64bit using MinGW and WINE
- Cross-compile for RTEMS 4.9 and 4.10 (pc386, Base >= 3.15)
- Cross-compile for RTEMS 5 (10 BSPs, Base >= 7.0.5.1)
- Compile natively on MacOS (clang)
- Compile natively on Windows (gcc/MinGW, Visual Studio 2017)
- Built dependencies are cached (for faster builds).
-
Get an account on Travis-CI, connect it to your GitHub account and activate your support module's repository. For more details, please refer to the Travis-CI Tutorial. Make sure to use
travis-ci.org
and not their.com
site.(This applies when using the free tier offered to open source projects. Things will be different using an "Enterprise" installation on customer hardware.)
-
Add the ci-scripts respository as a Git Submodule (see README one level above).
-
Add settings files defining which dependencies in which versions you want to build against (see README one level above).
-
Create a Travis configuration by copying one of the examples into the root directory of your module.
$ cp .ci/travis/.travis.yml.example-full .travis.yml
-
Edit the
.travis.yml
configuration to include the jobs you want Travis to run.Build jobs are declared in the list following the
jobs: include:
declaration. Each element (starting with a dash) defines the settings for one build job.env:
controls the setting of environment variables,dist:
specifies the Linux distribution,os:
the operating system. Also see the comments in the examples for more hints, and the Travis-CI documentation for more options and more details. -
Push your changes and check travis-ci.org for your build results.
Travis keeps the caches separate for different jobs. As soon as the job
description (in the .travis.yml
configuration file) or its environment
settings change (adding a space character is enough), the cache is different
and will be rebuilt when the job runs.
This also means that changing a value inside a setup file will not invalidate the cache - in that case you will have to manually delete the cache through the Travis web interface. (Or add a space character in the job configuration.)
Caches are automatically removed after approx. four weeks. Your jobs will have to rebuild them once in a while.
To use the feature to extract .zip
/.7z
archives by setting
*_HOOK
variables, the Linux and MacOS runners need the APT package
p7zip-full
resp. the Homebrew package p7zip
installed.