aboutsummaryrefslogtreecommitdiff
path: root/.shippable.yml
AgeCommit message (Collapse)Author
2018-06-26Do not set -Werror by defaultJerome Forissier
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>
2018-06-19ci: shippable: build stm32mp1Etienne Carriere
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>
2018-06-15ci: shippable: Add sunxi-bpi_zeroYing-Chun Liu (PaulLiu)
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>
2018-06-14Add new platform for the TI K3 class of SoCsAndrew F. Davis
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>
2018-06-07ci: shippable: enable parallel buildJerome Forissier
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>
2018-06-04ci: shippable: set build directory identically for all platformsJerome Forissier
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>
2018-06-04ci: shippable: enable ccache's 'unify' optionJerome Forissier
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>
2018-05-30synquacer: Add DeveloperBox platform supportSumit Garg
Reviewed-by: Jerome Forissier <jerome.forissier@linaro.org> Signed-off-by: Sumit Garg <sumit.garg@linaro.org>
2018-05-14ci: shippable: remove deprecated config flagsJerome Forissier
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>
2018-05-14ci: shippable: build with CFG_PCSC_PASSTHRU_READER_DRV=yJerome Forissier
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>
2018-05-14ci: shippable: remove redundant lineJerome Forissier
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>
2018-01-19ci: shippable: build hikey960 with CFG_SECURE_DATA_PATH=nJerome Forissier
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>
2018-01-17Remove support for Allwinner A80 platform (plat-sunxi)Jerome Forissier
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>
2017-12-15poplar: Add initial supportVictor Chong
Signed-off-by: Victor Chong <victor.chong@linaro.org> Acked-by: Jens Wiklander <jens.wiklander@linaro.org>
2017-12-08ci: shippable: configure caching properly for ccacheJerome Forissier
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>
2017-11-29core: imx: add i.MX6SX Sabreauto supportPeng Fan
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>
2017-11-28ci: shippable: remove redundant build configurationsJerome Forissier
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>
2017-11-28ci: shippable: run only platform buildsJerome Forissier
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>
2017-11-21plat-marvell: Add initial support for ARMADA3700wangwen
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>
2017-11-15ci: .shippable.yml: disable parallel buildJerome Forissier
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>
2017-11-15plat-ls: Add support for armv8 platform flavourPankaj Gupta
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>
2017-11-15ci: .shippable.yml: enable RPMB FS during "make check"Jerome Forissier
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>
2017-10-16Add Marvell platform with initial support for ARMADA A7K & A8KKevin Peng
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>
2017-10-10ci: shippable: make sure QEMU test runs on the proper commitJerome Forissier
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>
2017-09-26ci: .shippable.yml: fix _make functionJerome Forissier
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>
2017-09-20ci: .shippable.yml: fix commit rangeJerome Forissier
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>
2017-09-14ci: add .shippable.ymlJerome Forissier
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>