Commit Graph

80 Commits

Author SHA1 Message Date
Sebastian Bøe 84b0448e39 ci: Print the toolchain database when CI fails
CI is failing sporadically with a corrupted
ToolchainCapabilityDatabase.cmake file.

To gain insight into how the file is corrupted we print it to the log.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-09-19 08:15:09 -04:00
Anas Nashif ac419c4a99 ci: Use Ninja with sanitycheck
Ninja is much faster than make in the context of CI. The issues with
ninja and parallel builds has been partially resolved in sanitycheck.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-09-18 23:14:38 -04:00
Anas Nashif 5f5bd8b9f2 ci: disable cache
Disable cache which increases total execution time without any visible
benefits in the current setup. Need to revisit how we can better use
ccache for CI builds.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-09-18 23:14:38 -04:00
Anas Nashif 7e625ab869 ci: reduce minions to 5
Go back to 5 minions, 7 minions is increasing the queue significantly
without any improvements visible in total execution time.

This was changed to 7 to address PRs changing many boards and tests,
which is the exception and not the rule.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-09-18 23:14:38 -04:00
Kumar Gala 0b48df350f ci: Increase number of build slaves to 7
Since builds have drastically increased in time, we end up timing out CI
if we have a larger number of tests to build.  Try bumping up the number
of slaves to 7 and see if that helps.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2018-09-14 13:11:21 -05:00
Anas Nashif 27b9e2ef6f ci: Handle errors and exit on them
Do not continue if intermediate steps fail.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-08-16 13:22:10 -07:00
Anas Nashif 448cd0c0ce ci: handle documentation errors in ci
Path change of the warning file let a few errors slipe by..

Fixes #9098

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-07-24 19:26:52 -04:00
Anas Nashif 8cf49371af ci: use latest docker image v0.4-rc7
This one comes with gcc-arm-none-eabi-7-2018-q2-update

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-07-05 10:39:50 -04:00
Alberto Escolar Piedras 1545b378c8 CI: explicitly enable compiling w coverage in sanitycheck
Now that the native_posix board is not built by default
with coverage, and that sanitycheck has an option to set it to,
let's explicitly tell sanitycheck to build unit tests and
for the native_board with coverage enabled.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-07-03 08:36:06 -04:00
Anas Nashif 7e69e9a441 ci: remove tests and samples from coverage reports
Tests and samples are not part of the Zephyr code and should not
contribute to the final coverage reports. This will allow us to get
exact numbers about what is being covered or not in CI without the need
to go and look into files individually.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-07-02 12:42:08 -04:00
Anas Nashif 5dce5ea56e ci: user latest docker file
- Updated ccache
- Updated documentation tools
- Add ESP32 toolchains and IDF

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-06-18 12:41:22 -04:00
Anas Nashif 386b3e6d54 ci: increase ccache size
We are running 5 minions with almost 2000 tests, increase the cache size
to increase the hit rate.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-31 00:37:24 -04:00
Anas Nashif fac7108ecc ci: remove ext/ from coverage
ext/ code is not always entirely used or tested from Zephyr, we use only
subset of the features and available code. To get accurate coverage
data, exclude the files in ext/ from the coverage report.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-31 00:37:24 -04:00
Anas Nashif df9210ca56 ci: use new docker file with new SDK
Use docker image 0.4-rc2 with Zephyr SDK 0.9.3

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-15 12:10:32 +03:00
Sebastian Bøe e15a4923e8 ci: Clean the capability cache when the ccache is cleaned
Clear the toolchain capability cache when ccache is cleared so that
the different host-side caching mechanisms have a similair lifetime.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-05-14 13:47:09 -04:00
Anas Nashif 10776c4467 ci: remove pyserial install
This is now installed in the docker image.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-08 07:56:18 -04:00
Anas Nashif 73440ead7d sanitycheck: device handler, allow running tests on real hw
This will allow us to run sanitycheck on real devices and get reporting
out of it the same way we do that with Qemu.

To use this, run sanitycheck with the following new options:

 scripts/sanitycheck --device-testing --device-serial /dev/ttyACM0 -p
 frdm_k64f  -T tests/crypto/

--device-serial denotes the serial device the board is connected to.
This needs to be accessible by the user running sanitycheck. You can
run this on one board only at a time, the board is specified using the
--platform option.

This was tested with only a few boards, some board will not work
because how they reset the serial device during flashing.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-05-08 07:56:18 -04:00
Kumar Gala 0df7e1c109 ci: Increase number of build slaves to 5
To try and improve CI builds related to pull requests lets bump up the
number of build slaves to 5 to increase throughput.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2018-04-04 11:49:34 -04:00
Anas Nashif 566172f57a ci: update docker image
- g++-multilib
- python serial module

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-03-29 07:51:51 -04:00
Anas Nashif 7ee8bb9677 build: deprecate ZEPHYR_GCC_VARIANT
We want to support other toolchain not based on GCC, so the variable is
confusing, use ZEPHYR_TOOLCHAIN_VARIANT instead.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-02-13 07:44:45 -08:00
Anas Nashif bd2838bb78 sanitycheck: asserts are now enabled by default
sanitycheck now runs with asserts enabled, so no need for this option
anymore.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-02-12 08:24:23 -05:00
Sebastian Bøe 0e6689d559 sanitycheck: Default to using Ninja
It is important that it is easy to reproduce CI issues locally. Using
the same sanitycheck options locally and in CI helps in this
regard. Specifically, Ninja and Make can produce different results and
therefore the default generator should be the same for sanitycheck and
shippable.

This patch makes four changes:

The sanitycheck option '--make' is introduced to allow specifying Make
as a generator.

CI no longer passes the option '--ninja' to sanitycheck.

Sanitycheck defaults to using Ninja.

Sanitycheck documents the --ninja option as deprecated.

Signed-off-by: Sebastian Bøe <sebastian.boe@nordicsemi.no>
2018-02-12 08:24:23 -05:00
Alberto Escolar Piedras c6524abc39 CI: also generate coverage for unit tests
sanitycheck: Compile unit tests with coverage enabled always
      + run also first unit tests together with native_posix
shippable: also include unit_testing coverage into report to
      codecov

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-02-09 07:39:55 -05:00
Alberto Escolar Piedras d82ff1770d CI: preprocess coverage with lcov for codecov.io
We preprocess gcov output with lcov before feeding it to
codecov. For the following reasons:
* codecov seems to support LCOV pseudo-pragmas only if
  they match the pattern "// LCOV_EXCL"
* It is easier to understand what will happen in codecov
  if we feed a preprocessed lcov file than a pile of raw
  gcov files
* We can reproduce that step locally and therefore do
  quicker trials
* Branch coverage is not correct when feeding gcov raw
  input to codecov

+ We avoid feeding gcovr's output to codecov:
Codecov upload bash script also sees shippable/codecoverage/coverage.xml
but when this is uploaded together with lcov's the branch coverage
is not correct, and some not compiled in files are reported as not
covered.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-02-05 06:26:53 -08:00
Anas Nashif 3bbd1c77ab doc: recent kconfig changes break doc generation
Instead of wildcards we now are using environment variables to set the
path to Kconfig files for board and architecture. This break
documentation generation for Kconfig variables.

Using the env variables, we now set the path to what it used to be to
restore previous behavior.

Also, when something like this happens in the future, we should abort on
doc creation failure.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-01-12 15:34:09 -05:00
Anas Nashif e09646ab12 ci: update docker image for CI builds
The new images has package updates including:
- ninja-build
- lcov
- new versions of doc generations packages
- gcovr
- gcc-6-multilib

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-01-11 12:50:49 -05:00
Anas Nashif 335bcedd36 ci: run sanitycheck with assertions enabled
This option was dropped by mistake, reenabling now..

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-01-09 11:13:08 -05:00
Anas Nashif 1e10767200 ci: run sanitycheck with ninja
This should speed things up a little bit.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-01-07 11:03:48 -05:00
Anas Nashif 292400034c ci: do coverage reporting only from first matrix job
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-01-05 23:00:50 -05:00
Anas Nashif 0f91f635ac ci: codecov.io: ignore appending adjustments
The process seems to drop many files, ignoring per recommendation from
codecov.io

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-01-04 19:56:04 -05:00
Anas Nashif 8dc143591c ci: coverage: do not parse boards without coverage
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-01-03 13:12:03 -05:00
Anas Nashif 9b1b0fc838 ci: upload coverage data to codecov.io
Use codecov.io to track test coverage.

See https://codecov.io/gh/zephyrproject-rtos/zephyr

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-01-02 12:11:11 -05:00
Anas Nashif be1d409f67 ci: generate code coverage report
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-12-27 14:16:08 -05:00
Anas Nashif e8391cb03f ci: move doc.warnings up to be evaluated
The file is now generated under doc/, so move it up for evaluation.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-11-15 07:57:46 -05:00
Anas Nashif 706ac7fe07 doc: redirect doc generation output using tee
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-11-10 09:30:10 -05:00
Sebastian Bøe 728cda15de ci: Don't define the deprecated ENV var USE_CCACHE
USE_CCACHE has been deprecated. ccache now defaults to being enabled
and users can define the CMake variable -DUSE_CCACHE=0 to turn it off.

Signed-off-by: Sebastian Boe <sebastian.boe@nordicsemi.no>
2017-11-09 17:55:30 -05:00
Anas Nashif 036dde2201 ci: reduce number of minions to 4
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-11-08 21:38:25 -05:00
Anas Nashif cad811babe ci: call 'make htmldocs' from root
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-11-08 20:00:22 -05:00
Sebastian Bøe 7736df0216 cmake: ci: Add more minions
remove this commit before merging with master

Signed-off-by: Sebastian Boe <sebastian.boe@nordicsemi.no>
2017-11-08 20:00:22 -05:00
Anas Nashif a2177277e5 ci: update shippable for new SDK
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-11-08 20:00:22 -05:00
Anas Nashif 3dd6ae675e ci: support cmake in shippable
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-11-08 20:00:22 -05:00
Anas Nashif 67848ff5ab ci: Use latest docker image with SDK 0.9.2
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-10-28 17:39:15 -04:00
Anas Nashif 7c1602dff5 ci: build pull requests on 4 minions
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-10-28 14:45:41 -04:00
Anas Nashif b127aff796 ci: support building on master commits
When we merge something, verify that the build succeeds. This is to make
sure we did not have conflicting commits that pass individually but fail
when merged on top of each other.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-10-06 09:07:13 -04:00
David B. Kinder d3b0cd4827 doc: move docgen filter out of shippable script
Because of known issues with Sphinx/Breathe tools we're using to
generate doxygen-based comments for our API documentation, we're getting
a bevy of warning messages written out. As a workaround for our CI
system, we created a filter-known-issues.py script to remove "expected"
warnings from the output.

This patch moves calling that filter script into the doc generation
Makefile so folks making local builds of the docs won't be tripped up by
all the warning messages either.  Output of the "make htmldocs" command
is now filtered so only "unexpected" errors and warnings will be shown.

(See https://github.com/sphinx-doc/sphinx/issue/2682 and
sphinx-doc/sphinx#2683i for the Sphinx/Breathe issues.)

Fixes #1527

Signed-off-by: David B. Kinder <david.b.kinder@intel.com>
2017-09-22 08:07:30 -04:00
Anas Nashif 2ed5eb3d67 ci: fix --only-failed mode of sanitycheck
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-09-12 22:30:02 -04:00
Anas Nashif 4b0b070267 ci: use docker image v0.1
This new image has the following additions:
- gperf
- cmake
- Zephyr SDK 0.9.2-rc4 for initial testing (in addition to 0.9.1)
- Various python modules needed for building and CI

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-09-12 19:01:58 -04:00
Anas Nashif c53098ee02 ci: remove installation of python sh module
This is now installed in docker image.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-09-12 18:13:46 -04:00
Anas Nashif f8aa9e6b58 ci: avoid duplicates when running sanitycheck
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-09-12 18:13:46 -04:00
Anas Nashif 5ac1047798 ci: remove obsolete PLATFORM variable
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-09-12 18:13:46 -04:00