Commit Graph

90 Commits

Author SHA1 Message Date
Anas Nashif
7a85c19f1a ci: update to latest docker image
Added the Pillow module for dealing with fonts for the display
subsystem.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-11-22 12:17:19 -05:00
Alberto Escolar Piedras
2d580a8339 ci: Add missing option to control placement of BT tests results file
Added a missing option in run_ci.sh to control the placement of the
xml results file. (Before it was just propagated thru the enviroment)
+
Changed .shippable to use this option when callign it.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-11-21 09:42:46 -05:00
Anas Nashif
4b366f93ca ci: update to docker image 0.5-rc2
This has some fixes to permission issues with installed
scancode-toolkit.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-11-20 16:36:10 -05:00
Anas Nashif
10b1ee149f ci: use v0.4-rc14 image
- Has cmake 3.8.2 that matches min. required version
- Has west pre-installed
- Uses latest python dependencies from scripts/requirements.txt
- remove ISSM toolchain
- added scancode-toolkit for scanning licenses and copyrights.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-11-19 17:22:23 -05:00
Alberto Escolar Piedras
917711fd8a ci: Run bsim_bt tests and collect coverage results
Compile and run the tests avaliable in bsim_bt
and collect the coverage results into the coverage report.

Also, detect if bsim's component folder already contains the
nRF52 HW models, and if it does instead of trying to fetch
them again (which will fail) check that the right versio is
present. This should ease testing locally.

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-11-13 11:14:19 -05:00
Anas Nashif
0a63947abc ci: move ci scripting from .shippable to a script
move CI scripting to a dedicated script. For example, to simulate what
is run in CI when a pull request is submitted:

./scripts/ci/run_ci.sh -b master -r upstream  -p

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-11-10 13:09:00 -05:00
Anas Nashif
1c3cbc5eba ci: use sdk 0.9.5
Use new SDK version 0.9.5.
- new qemu
- new dtc
- new openocd

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-11-05 11:00:38 -05:00
Alberto Escolar Piedras
96b38ad694 shippable: Add support for nrf52_bsim board
Use the docker image which has BabbleSim precompiled

Fetch the NRF52 hardware models required by the nrf52_bsim board
and compile them.

Collect the coverage report from the nrf52_bsim board

Signed-off-by: Alberto Escolar Piedras <alpi@oticon.com>
2018-10-15 09:36:37 -04:00
Anas Nashif
d5d902a140 Revert "sanitycheck: fail on check_compliance issues"
This reverts commit 43398eb240.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-09-23 16:40:13 -04:00
Anas Nashif
43398eb240 sanitycheck: fail on check_compliance issues
We were forcing sucess even if check_compliance had failed.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2018-09-23 13:04:05 -04:00
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