Age | Commit message (Collapse) | Author |
|
Having -Werror turned on by default can be annoying, because not everyone
uses the same compiler, and different compiler versions have different
warnings.
Therefore, provide CFG_WERROR to turn it on instead. Enable CFG_WERROR in
the CI scripts because we still don't want warnings with the officially
supported compilers.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
|
|
Signed-off-by: Etienne Carriere <etienne.carriere@st.com>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Ying-Chun Liu (PaulLiu) <paul.liu@linaro.org>
|
|
Add platform 'k3' for the TI K3 family. These are ARMv8 devices
and are quite different from our line of existing ARMv7 OMAP style
SoCs, hence the new platform.
Signed-off-by: Andrew F. Davis <afd@ti.com>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
Try to speed up the Shippable CI by re-introducing parallel builds, which
were removed by commit c330283b4a00 ("ci: .shippable.yml: disable parallel
build") due to random build errors. Although the root cause was never
identified, there are reasons to believe that the issue may not be
reproducible anymore:
- The container environment has likely seen updates
- Commit 836334a163f9 ("ci: shippable: set build directory identically for
all platforms") has modified the output paths, so a race condition on
directory creation seems quite unlikely to happen.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Joakim Bech <joakim.bech@linaro.org>
|
|
Further improve the ccache hit rate by setting the build directory
to be the same for all platforms. Prior to this, only the build for
the same platform could share cached files, because the file path is
part of the hash.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
There is currently no caching possible between the various _make lines in
.shippable.yml, because they select different configuration flags. Since
all the files include $(out-dir)/include/generated/conf.h automatically,
the preprocessor output is therefore different simply due to the fact that
conf.h is different from one line to the other.
This is quite unfortunate, because most source files depend on a handful
of configuration flags only and therefore activating unrelated flags
should not cause a cache miss.
Addressing this problem is exactly the purpose of the 'unify' option of
ccache [1]. Activate it by setting CCACHE_UNIFY=true and CFG_DEBUG_INFO=n
before building. The lines that set DEBUG=0 or DEBUG=1 are adjusted to
produce the same result as before.
Link: [1] https://github.com/ccache/ccache/blob/v3.4.2/doc/MANUAL.adoc#configuration-settings
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
|
|
CFG_PS2MOUSE, CFG_PL050 and CFG_PL111 are gone so remove them from the
Shippable script.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
Commit 41f869fe7680 ("Fix crash when bumping qemu to 2.12.0") sets
CFG_PCSC_PASSTHRU_READER_DRV=n by default. Adjust .shippable.yml to
enable it instead, so that it is still compile-tested.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
CFG_WITH_STATS defaults to 'y' so remove the line that sets it
explicitly in .shippable.yml.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
Add a configuration that was found to cause a compile error in our
multi-platform Travis build [1] but was not detected by Shippable [2].
Link: [1] https://travis-ci.org/OP-TEE/build/jobs/330150659#L996-L1003
Link: [2] https://app.shippable.com/github/OP-TEE/optee_os/runs/534/summary/console
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
|
|
It has been almost three years since we have heard about plat-sunxi
(no new contributions, no patch ack'ed or tested, no feedback at
release time). Therefore, remove support for this platform.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
CC: Sun Yangbang <sunny@allwinnertech.com>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
Signed-off-by: Victor Chong <victor.chong@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
Caching was inadvertently broken by commit 4af6a141f612 ("ci:
shippable: run only platform builds"). I wrongly assumed that Shippable
saves the ccache directory by default (~/.ccache), but is not the case.
Only $SHIPPABLE_BUILD_DIR is saved, i.e., the checked out project
(/root/src/github.com/OP-TEE/optee_os).
Fix that by giving the ccache directory in cache_dir_list.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
Add i.MX6SX Sabreauto support.
Signed-off-by: Peng Fan <peng.fan@nxp.com>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
Apply the proposal made by Jens in PR 1616 to the Shippable
configuration:
"Removes build configurations that doesn't add much additional
coverage. The two QEMU based ports are used to test most build
configuration, the other ports are only built in basic
configuration(s)."
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
CC: Jens Wiklander <jens.wiklander@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
This is the second of two commits to split the CI work in two.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
Only test 64bit mode with default configuration
1. Build command
make PLATFORM=marvell-armada3700
2. Pass xtest
Signed-off-by: wangwen <wangwen@marvell.comi>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Kevin Peng <kevinp@marvell.com>
|
|
We get random build failures with Shippable CI. First kind is [1]:
/bin/bash: out/arm-plat-imx/conf.mk.tmp: No such file or directory
core/core.mk:69: recipe for target 'out/arm-plat-imx/conf.mk' failed
make: *** [out/arm-plat-imx/conf.mk] Error 1
make: *** Waiting for unfinished jobs....
Second kind is [2]:
mkdir: cannot create directory 'out/arm-plat-ti/core': No such file or directory
mk/subdir.mk:151: recipe for target 'out/arm-plat-ti/core/ta_pub_key.c' failed
make: *** [out/arm-plat-ti/core/ta_pub_key.c] Error 1
make: *** Waiting for unfinished jobs....
Sometimes both bash and mkdir fail with 'No such file or directory' [3]
I cannot see any mistake in our Makefile or anything that could explain
these errors. I have opened a support request with Shippable [4].
In the mean time, let's disable the parallel build (make -jN) since I
could not reproduce the issue with a purely sequential build. Hopefully
it will not slow things down too much (we already need a reasonably
up-to-date cache anyway).
Link: [1] https://app.shippable.com/github/OP-TEE/optee_os/runs/347/1/console
Link: [2] https://app.shippable.com/github/OP-TEE/optee_os/runs/332/1/console
Link: [3] https://app.shippable.com/github/OP-TEE/optee_os/runs/342/1/console
Link: [4] https://github.com/Shippable/support/issues 3953
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
|
|
Added support for armv8 platform flavour.
- PLATFORM = ls-ls1012ardb
Signed-off-by: Pankaj Gupta <pankaj.gupta@nxp.com>
Reviewed-by: Sumit Garg <sumit.garg@nxp.com>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Jerome Forissier <jerome.forissier@linaro.org>
|
|
For better test coverage, run xtest in QEMU with RPMB FS enabled.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
Only tested 64-bit mode with default configurations:
1. build command
make PLATFORM=marvell-armada7080 CFG_ARM64_core=y
2. Passed xtest
Signed-off-by: Kevin Peng <kevinp@marvell.com>
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
|
|
There is a bug in the step that prepares a source tree to build and run
OP-TEE with QEMU, at the end of the CI script. The idea is, clone the
current project forest using the repo tool, then remove optee_os and
replace it with a symbolic link to the one that has been checked out in
the CI infrastructure. So that, we are effectively testing the desired
pull request or branch.
The problem is, the symlink is not removed at the end of the script, so
it ends up being cached and restored with the next build. The repo sync
command follows the symlink and overwrites the "good" optee_os with the
current master branch and at this point we're doomed.
Fix that by making sure there is no optee_os symlink leftover from the
cache.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
The _make function is supposed to return an error status in case make
fails. For this to happen, we need to use && between commands, not ;.
Fixes: 5da449eaf73b ("ci: add .shippable.yml")
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
When building a pull request, we want to run checkpatch on each commit
included in the pull request. Unfortunately, it is not what the current
code does, because $SHIPPABLE_COMMIT_RANGE contains a three-dot
notation such as: <commit>...<commit>. This syntax is interpreted
differently depending on the git command that parses it.
Quoting git help diff:
git diff [--options] <commit> <commit> [--] [<path>...]
This is to view the changes between two arbitrary <commit>.
git diff [--options] <commit>..<commit> [--] [<path>...]
This is synonymous to the previous form.
git diff [--options] <commit>...<commit> [--] [<path>...]
This form is to view the changes on the branch containing and up
to the second <commit>, starting at a common ancestor of both
<commit>.
Quoting git help revisions (documents the format used by git log or
git rev-list):
<rev1>..<rev2>
Include commits that are reachable from <rev2> but exclude those
that are reachable from <rev1>.
<rev1>...<rev2>
Include commits that are reachable from either <rev1> or <rev2>
but exclude those that are reachable from both.
In other words, three dots for git diff is like two dots for git log or
git rev-list. What we need to use with git rev-list is the two dot
notation.
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
|
|
Add a configuration file for the Shippable continuous integration tool
[1]. This file performs the same steps as the current Travis file
(.travis.yml), but it is faster and simpler. Another advantage is, the
timeout is 1 hour compared to 50 minutes for Travis. All in all, this
could be a good fix for the issues we have with Travis being too slow
to properly check our pull requests.
This was tested on a private fork of optee_os, and it worked well for
verifying pushes to private branches as well as pull requests. A full
build takes about 20-25 minutes, that is including the builds for all
targets plus the xtest run in QEMU (with a fully populated cache).
One reason for Shippable being faster is that a custom Docker container
image is used, namely: jforissier/optee_os_ci on Docker Hub [2].
It is Ununtu 17.04 plus the packages required to build OP-TEE and run
the QEMU regression tests. Therefore, there is no lengthy preparation
step, such as building tools that are missing in the images provided by
Travis. Docker images are cached by Shippable, so our own rarely needs
to be fetched (which takes roughly 5 minutes).
Another reason for the good speed is that we use ccache for everything.
With a warm cache, each platform is built in no more than 5-6 seconds,
and this speedup is not offset by the longer time it takes to persist
a bigger cache file (contrary to what I observed with Travis).
Since caching works so well I also decided to cache the whole QEMU
environment (repo-based tree), so that the repo init + repo sync steps
are usually quite fast (45 seconds).
Lastly, switching GitHub from Travis to Shippable is very easy, so we
may consider doing so in the short term.
Links: [1] https://shippable.com
Links: [2] https://hub.docker.com/r/jforissier/optee_os_ci
Signed-off-by: Jerome Forissier <jerome.forissier@linaro.org>
Reviewed-by: Joakim Bech <joakim.bech@linaro.org>
Acked-by: Etienne Carriere <etienne.carriere@linaro.org>
|