We have two CI systems:
Jenkins
We have a Jenkins job that builds and tests all pull requests: Jenkins PR builder.
In order to make development more agile and get a quicker response to pull requests (the goal is take maximum 1 hour per build), support for device and some tests are disabled.
The default set of tests are:
- api tests (apitest for XM and monotouch-test for XI).
- various linker tests (dont link, link sdk, link all).
- introspection tests (for both XI and XM).
- msbuild tests (for both XI and XM).
This can be changed by setting various labels on the pull requests.
enable-device-build
: This will enable device support. This will also run more tests (all tests in the default set of tests that are ignored because they require device support).run-*-tests
: This will enable the specified tests.skip-*-tests
: This will disable the specified tests.
The enable-device-build
label must be set immediately after creating the
pull request, because it must be set before the build starts on the Jenkins
bot (a couple of minutes after creating the pull request if there are idle
bots). The *-tests
labels do not have to be set until the tests start
executing (it should take at least 20 minutes to build first).
If using hub from the command line to create pull requests, you can pass
--labels=<comma separated list of labels>
to add the labels when creating
the pull request.
Some of the otherwise disabled tests will also be automatically enabled according to which files are modified in a pull request.
VSTS
This is an internal CI system, and currently we're running device tests here.
A device test typically takes 18-24 hours.
Contributing
Bindings
- README
- xcode13.0 Binding Status
- xcode13.1 Binding Status
- xcode13.2 Binding Status
- xcode13.3 Binding Status
- xcode13.4 Binding Status
- xcode14.0 Binding Status
- xcode14.1 Binding Status
- xcode14.2 Binding Status
- xcode14.3 Binding Status
- xcode15.0 Binding Status
- xcode15.1 Binding Status
- xcode15.3 Binding Status
- xcode15.4 Binding Status
- xcode16.0 Binding Status
- xcode16.1 Binding Status
- xcode16.2 Binding Status