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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>