2017-04-25 23:12:08 -04:00
|
|
|
language: c
|
|
|
|
|
|
|
|
compiler: gcc
|
|
|
|
|
|
|
|
env:
|
|
|
|
global:
|
2017-10-28 14:40:53 -04:00
|
|
|
- SDK=0.9.2
|
2018-02-10 08:12:01 -06:00
|
|
|
- SANITYCHECK_OPTIONS=" --inline-logs"
|
2017-09-12 22:00:39 -04:00
|
|
|
- SANITYCHECK_OPTIONS_RETRY="${SANITYCHECK_OPTIONS} --only-failed --outdir=out-2nd-pass"
|
2017-10-28 14:40:53 -04:00
|
|
|
- ZEPHYR_SDK_INSTALL_DIR=/opt/sdk/zephyr-sdk-0.9.2
|
2018-02-11 14:36:21 -06:00
|
|
|
- ZEPHYR_TOOLCHAIN_VARIANT=zephyr
|
2017-11-08 20:02:34 -05:00
|
|
|
- MATRIX_BUILDS="4"
|
|
|
|
- MATRIX_BUILDS_EXTRA="4"
|
2017-04-25 23:12:08 -04:00
|
|
|
matrix:
|
2017-05-18 07:49:47 -04:00
|
|
|
- MATRIX_BUILD="1"
|
|
|
|
- MATRIX_BUILD="2"
|
2017-07-19 12:45:02 +03:00
|
|
|
- MATRIX_BUILD="3"
|
2017-10-28 14:24:18 -04:00
|
|
|
- MATRIX_BUILD="4"
|
2017-04-25 23:12:08 -04:00
|
|
|
|
|
|
|
build:
|
|
|
|
cache: true
|
|
|
|
cache_dir_list:
|
|
|
|
- ${SHIPPABLE_BUILD_DIR}/ccache
|
|
|
|
pre_ci_boot:
|
2017-05-19 16:17:16 -04:00
|
|
|
image_name: zephyrprojectrtos/ci
|
2018-03-28 18:10:10 -05:00
|
|
|
image_tag: v0.4-rc1
|
2017-04-25 23:12:08 -04:00
|
|
|
pull: true
|
|
|
|
options: "-e HOME=/home/buildslave --privileged=true --tty --net=bridge --user buildslave"
|
|
|
|
|
|
|
|
ci:
|
|
|
|
- export CCACHE_DIR=${SHIPPABLE_BUILD_DIR}/ccache/.ccache
|
2017-10-06 08:41:09 -04:00
|
|
|
- >
|
|
|
|
if [ "$IS_PULL_REQUEST" = "true" ]; then
|
|
|
|
git rebase origin/${PULL_REQUEST_BASE_BRANCH};
|
|
|
|
fi
|
2017-04-25 23:12:08 -04:00
|
|
|
- source zephyr-env.sh
|
2017-05-18 07:49:47 -04:00
|
|
|
- ccache -c -s --max-size=2000M
|
2017-04-29 22:36:11 -04:00
|
|
|
- >
|
2017-11-08 20:02:34 -05:00
|
|
|
if [ "$MATRIX_BUILD" = "4" -a "$IS_PULL_REQUEST" = "true" ]; then
|
2017-07-19 10:37:39 +03:00
|
|
|
export COMMIT_RANGE=origin/${PULL_REQUEST_BASE_BRANCH}..HEAD
|
2017-04-28 20:30:13 -04:00
|
|
|
echo "Building a Pull Request";
|
2017-04-29 22:36:11 -04:00
|
|
|
echo "- Building Documentation";
|
2017-05-04 10:04:34 -05:00
|
|
|
echo "Commit range:" ${COMMIT_RANGE}
|
2017-11-10 08:27:08 -05:00
|
|
|
make htmldocs
|
2018-01-12 15:01:44 -05:00
|
|
|
if [ "$?" != "0" ]; then
|
|
|
|
echo "Documentation build failed";
|
|
|
|
exit 1;
|
|
|
|
fi
|
2017-11-10 08:27:08 -05:00
|
|
|
if [ -s doc/doc.warnings ]; then
|
2017-04-29 22:36:11 -04:00
|
|
|
echo " => New documentation warnings/errors";
|
2017-11-15 07:34:11 -05:00
|
|
|
cp doc/doc.warnings doc.warnings
|
2017-04-29 22:36:11 -04:00
|
|
|
fi;
|
2017-09-21 11:55:15 -07:00
|
|
|
echo "- Verify commit message, coding style, doc build";
|
2017-05-09 16:57:00 -04:00
|
|
|
./scripts/ci/check-compliance.py --commits ${COMMIT_RANGE} || true;
|
2017-04-25 23:12:08 -04:00
|
|
|
fi;
|
2017-07-27 08:45:01 -04:00
|
|
|
- >
|
2017-10-06 08:41:09 -04:00
|
|
|
if [ "$IS_PULL_REQUEST" = "true" ]; then
|
|
|
|
./scripts/ci/get_modified_tests.py --commits origin/${PULL_REQUEST_BASE_BRANCH}..HEAD > modified_tests.args;
|
|
|
|
./scripts/ci/get_modified_boards.py --commits origin/${PULL_REQUEST_BASE_BRANCH}..HEAD > modified_boards.args;
|
2017-07-27 08:45:01 -04:00
|
|
|
|
2017-10-06 08:41:09 -04:00
|
|
|
if [ -s modified_boards.args ]; then
|
2018-01-05 22:30:33 -05:00
|
|
|
./scripts/sanitycheck ${SANITYCHECK_OPTIONS} +modified_boards.args --save-tests test_file.txt;
|
2017-10-06 08:41:09 -04:00
|
|
|
fi;
|
|
|
|
if [ -s modified_tests.args ]; then
|
2018-01-05 22:30:33 -05:00
|
|
|
./scripts/sanitycheck ${SANITYCHECK_OPTIONS} +modified_tests.args --save-tests test_file.txt;
|
2017-10-06 08:41:09 -04:00
|
|
|
fi;
|
|
|
|
rm -f modified_tests.args modified_boards.args;
|
2017-07-27 08:45:01 -04:00
|
|
|
fi;
|
2017-09-02 14:37:51 -04:00
|
|
|
- ./scripts/sanitycheck ${SANITYCHECK_OPTIONS} --save-tests test_file.txt
|
2018-01-05 22:30:33 -05:00
|
|
|
- ./scripts/sanitycheck ${SANITYCHECK_OPTIONS} --load-tests test_file.txt --subset ${MATRIX_BUILD}/${MATRIX_BUILDS} || ./scripts/sanitycheck ${SANITYCHECK_OPTIONS_RETRY} || ./scripts/sanitycheck ${SANITYCHECK_OPTIONS_RETRY}
|
2017-09-02 14:37:51 -04:00
|
|
|
- rm test_file.txt
|
2017-04-25 23:12:08 -04:00
|
|
|
- ccache -s
|
2017-08-02 12:34:24 -04:00
|
|
|
on_failure:
|
2018-01-02 09:45:54 -05:00
|
|
|
- rm -rf ccache
|
2017-08-02 12:34:24 -04:00
|
|
|
- mkdir -p shippable/testresults
|
2017-11-24 14:40:20 -05:00
|
|
|
- mkdir -p shippable/codecoverage
|
|
|
|
- source zephyr-env.sh
|
2018-01-05 08:28:23 -05:00
|
|
|
- >
|
|
|
|
if [ "$MATRIX_BUILD" = "1" ]; then
|
|
|
|
gcovr -r ${ZEPHYR_BASE} -x > shippable/codecoverage/coverage.xml;
|
2018-02-08 21:35:55 +01:00
|
|
|
lcov --capture --directory sanity-out/native_posix/ --directory sanity-out/unit_testing/ --output-file lcov.pre.info -q --rc lcov_branch_coverage=1;
|
2018-02-03 20:35:15 +01:00
|
|
|
lcov -q --remove lcov.pre.info *generated* -o lcov.info --rc lcov_branch_coverage=1;
|
|
|
|
rm lcov.pre.info;
|
2018-01-05 08:28:23 -05:00
|
|
|
rm -rf sanity-out out-2nd-pass;
|
2018-02-03 20:35:15 +01:00
|
|
|
bash <(curl -s https://codecov.io/bash) -f "lcov.info" -X coveragepy -X fixes;
|
|
|
|
rm lcov.info;
|
2018-01-05 08:28:23 -05:00
|
|
|
else
|
|
|
|
rm -rf sanity-out out-2nd-pass;
|
|
|
|
fi;
|
2017-08-02 12:34:24 -04:00
|
|
|
- >
|
|
|
|
if [ -e compliance.xml ]; then
|
|
|
|
cp compliance.xml shippable/testresults/;
|
|
|
|
fi;
|
|
|
|
- >
|
|
|
|
if [ -e ./scripts/sanity_chk/last_sanity.xml ]; then
|
|
|
|
cp ./scripts/sanity_chk/last_sanity.xml shippable/testresults/;
|
|
|
|
fi;
|
|
|
|
on_success:
|
2018-01-02 09:45:54 -05:00
|
|
|
- rm -rf ccache
|
2017-04-25 23:12:08 -04:00
|
|
|
- mkdir -p shippable/testresults
|
2017-11-24 14:40:20 -05:00
|
|
|
- mkdir -p shippable/codecoverage
|
|
|
|
- source zephyr-env.sh
|
2018-01-05 08:28:23 -05:00
|
|
|
- >
|
|
|
|
if [ "$MATRIX_BUILD" = "1" ]; then
|
|
|
|
gcovr -r ${ZEPHYR_BASE} -x > shippable/codecoverage/coverage.xml;
|
2018-02-08 21:35:55 +01:00
|
|
|
lcov --capture --directory sanity-out/native_posix/ --directory sanity-out/unit_testing/ --output-file lcov.pre.info -q --rc lcov_branch_coverage=1;
|
2018-02-03 20:35:15 +01:00
|
|
|
lcov -q --remove lcov.pre.info *generated* -o lcov.info --rc lcov_branch_coverage=1;
|
|
|
|
rm lcov.pre.info;
|
2018-01-05 08:28:23 -05:00
|
|
|
rm -rf sanity-out out-2nd-pass;
|
2018-02-03 20:35:15 +01:00
|
|
|
bash <(curl -s https://codecov.io/bash) -f "lcov.info" -X coveragepy -X fixes;
|
|
|
|
rm lcov.info;
|
2018-01-05 08:28:23 -05:00
|
|
|
else
|
|
|
|
rm -rf sanity-out out-2nd-pass;
|
|
|
|
fi;
|
2017-04-25 23:12:08 -04:00
|
|
|
- >
|
|
|
|
if [ -e compliance.xml ]; then
|
|
|
|
cp compliance.xml shippable/testresults/;
|
2017-04-29 22:36:11 -04:00
|
|
|
fi;
|
|
|
|
- >
|
|
|
|
if [ -e ./scripts/sanity_chk/last_sanity.xml ]; then
|
|
|
|
cp ./scripts/sanity_chk/last_sanity.xml shippable/testresults/;
|
2017-04-25 23:12:08 -04:00
|
|
|
fi;
|
|
|
|
|
|
|
|
integrations:
|
|
|
|
notifications:
|
2017-04-29 22:36:11 -04:00
|
|
|
- integrationName: slack_integration
|
|
|
|
type: slack
|
|
|
|
recipients:
|
|
|
|
- "#ci"
|
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
- master
|
|
|
|
on_success: never
|
|
|
|
on_failure: always
|
2017-04-25 23:12:08 -04:00
|
|
|
- integrationName: email
|
|
|
|
type: email
|
|
|
|
recipients:
|
|
|
|
- builds@zephyrproject.org
|
|
|
|
branches:
|
|
|
|
only:
|
|
|
|
- master
|
|
|
|
- net
|
|
|
|
- bluetooth
|
|
|
|
- arm
|
|
|
|
on_success: never
|
|
|
|
on_failure: never
|