Commit graph

123 commits

Author SHA1 Message Date
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
Anas Nashif 8b72bb1976 ci: remove obsolete COVERAGE variable
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-09-12 18:13:46 -04:00
Andrew Boie 83995b6f21 shippable: use new build slave configuration
Signed-off-by: Andrew Boie <andrew.p.boie@intel.com>
2017-09-07 16:33:33 -07:00
Anas Nashif 2cf6c79cef ci: remove all AWS operations
This will be done differently using CD and pipelines. Removing from
master before we branch 1.9.0.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-09-07 18:18:27 -05:00
Anas Nashif 3f83dc9023 ci: boards: retry sanitycheck without --subset arg
Do not use --subset on failed tests, run them all on the same host.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-08-14 19:20:24 -04:00
Anas Nashif c1cafb1f50 ci: run more tests on boards that have changed
Check if any board files have changed and build more tests with this
board to uncover any build regressions.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-08-14 13:28:42 -04:00
Anas Nashif 25faa86720 ci: fix call for sanitycheck
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-08-14 12:16:59 -04:00
Anas Nashif 05f70f4eec ci: retry sanitycheck without --subset arg
When retrying sanitycheck with --only-failed, do not use --subset
argument which can reduce the number of tests to be run (failed tests)
to 0.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-08-14 12:09:11 -04:00
Anas Nashif 63de5932ca ci: post built html docs to S3 storage
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-08-06 09:50:55 -04:00
Anas Nashif 659ea4191d ci: copy sanitycheck.xml file per matrix build
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-08-06 09:50:55 -04:00
Anas Nashif aa05b956cd ci: post results on failure
Looks like post_ci is not executed when something fails and results are
not being posted. Duplicate code in both failure and success cases.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-08-02 12:44:59 -04:00
Anas Nashif 7c9302e81e shippable: remove comment before get_modified_tests.py call
The code block is being treated as a comment, remove the leading comment
to make this run correctly.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-07-31 10:59:50 -04:00
Anas Nashif 31df3b27cc tests: run modified tests with full coverage
This addition would catch tests being added or modified and would run
those tests with --all and catch issues with non default board
configurations before they get merged into the tree.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-07-28 17:03:04 -04:00
Punit Vara a4eaf6e80c scripts: Fix string pattern on byte like objects error
This patch fixes following error of python script.

TypeError: cannot use a string pattern on a bytes-like object

Jira: ZEP-2290

Signed-off-by: Punit Vara <punit.vara@intel.com>
2017-07-26 06:54:12 -04:00
Anas Nashif 48edca2782 ci: use new docker image
This new image has required python libraries for new build tools that
were converted from C to python.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-07-20 14:30:04 +03:00
Anas Nashif 99372662f9 ci: install pyelftools
This is needed by new python scripts used during the build process. This
is a workaround until we have this library in the docker image.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-07-19 23:20:05 +03:00
Anas Nashif a24e6badb6 ci: enhance performance using 3 minions
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-07-19 11:05:44 -04:00
Anas Nashif 0ea8e3ef9a ci: rebase branch to only get relevant commits
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-07-19 11:58:27 +03:00
Anas Nashif 3d5b4efb0e ci: if script fails, report error
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-06-20 10:40:16 -04:00
Anas Nashif 2f117af6c5 scripts: make check_compliance scripts take arguments
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-06-10 10:44:33 -04:00
Anas Nashif 69edaa5c74 ci: update to latest docker image
This image installs sphinx 1.5.5 which is the version currently
supported by Zephyr. Newer versions seem to have issues building our
documentation.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-20 07:04:46 -04:00
Anas Nashif 5fc31b8322 ci: use 0.9.1 SDK
This change moves to a project specific container with the latest SDK
which adds support for xtensa HALs.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-19 18:26:39 -04:00
Anas Nashif 035a7e9781 ci: sanitycheck: run with asserts enabled also in second pass
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-18 22:23:31 -04:00
Anas Nashif 52cc234718 ci: sanitycheck: use subsets and cleanup
Use the new option for running sanitycheck on multiple nodes and cleanup
unused and obsolete checks.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-18 22:23:31 -04:00
Anas Nashif efc66840d3 sanitycheck: build with asserts enabled
Catch more issues early by building with asserts enabled.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-04 19:43:08 -04:00
Kumar Gala 9b874d660c CI: Fix the git commit range we pass on to gitlint
The check-compliance.py script uses gitlint to verify the commit message
and takes a range of git commits to validate via the env var
${COMMIT_RANGE}.  Previously we used ${SHIPPABLE_COMMIT_RANGE} however
for branches that doesn't get us what we want.  So we move to using
origin/${PULL_REQUEST_BASE_BRANCH}..${COMMIT}.

Signed-off-by: Kumar Gala <kumar.gala@linaro.org>
2017-05-04 11:25:35 -04:00
Anas Nashif ed6eba7f4f CI: show commit range in log
Also print range in the test report.

Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-05-03 12:27:10 -05:00
Anas Nashif ee254daa1a ci: on S3, add repo name into the path
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-04-30 11:40:26 -04:00
Anas Nashif 3a212f8875 ci: add documntation checking and posting to AWS S3
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-04-30 11:40:26 -04:00
Anas Nashif 2dc9ae4e37 ci: update to build 2 parallel jobs per run
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-04-28 20:42:46 -04:00
Anas Nashif acedb70a94 ci: add CI/CD integration and related scripts
Add initial .shippable.yml for CI integration on github and related
scripts.

Change-Id: I095d125e780bba980e635e218205c8741e753a8e
Signed-off-by: Anas Nashif <anas.nashif@intel.com>
2017-04-27 20:58:14 -04:00