diff --git a/.travis.yml b/.travis.yml index 474f6867fd..d7db65bed3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,8 +5,10 @@ cache: ## cargo: true directories: - $HOME/.cargo + ## caching CARGO_TARGET_DIR actually slows down the build over time, + ## because old build products are never deleted. ## where we point CARGO_TARGET_DIR in all our cargo invocations - - $TRAVIS_BUILD_DIR/src/rust/target + #- $TRAVIS_BUILD_DIR/src/rust/target compiler: - gcc @@ -209,6 +211,8 @@ script: - if [[ "$DISTCHECK" == "" && "$TEST_STEM" == "" ]]; then make check; fi - if [[ "$TEST_STEM" != "" ]]; then make src/app/tor test-stem; fi - if [[ "$DISTCHECK" != "" && "$TEST_STEM" == "" ]]; then make distcheck DISTCHECK_CONFIGURE_FLAGS="$CONFIGURE_FLAGS"; fi + ## If this build was one that produced coverage, upload it. + - if [[ "$COVERAGE_OPTIONS" != "" ]]; then coveralls -b . --exclude src/test --exclude src/trunnel --gcov-options '\-p' || echo "Coverage failed"; fi after_failure: ## configure will leave a log file with more details of config failures. @@ -220,9 +224,12 @@ after_failure: - if [[ "$DISTCHECK" != "" ]]; then make show-distdir-testlog || echo "make failed"; fi - if [[ "$DISTCHECK" != "" ]]; then make show-distdir-core || echo "make failed"; fi -after_success: - ## If this build was one that produced coverage, upload it. - - if [[ "$COVERAGE_OPTIONS" != "" ]]; then coveralls -b . --exclude src/test --exclude src/trunnel --gcov-options '\-p'; fi +before_cache: + ## Delete all gcov files. + - if [[ "$COVERAGE_OPTIONS" != "" ]]; then make reset-gcov; fi + ## Delete the cargo registry before caching .cargo, because it's cheaper to + ## download the registry and throw it away, rather than caching it + - rm -rf $HOME/.cargo/registry notifications: irc: diff --git a/Makefile.am b/Makefile.am index b40b2e51bc..d65c08f6bf 100644 --- a/Makefile.am +++ b/Makefile.am @@ -295,8 +295,10 @@ test-full: need-stem-path need-chutney-path check test-network test-stem test-full-online: need-stem-path need-chutney-path check test-network test-stem-full +# We can't delete the gcno files, because they are created when tor is compiled reset-gcov: - rm -f $(top_builddir)/src/*/*.gcda $(top_builddir)/src/*/*/*.gcda + rm -f $(top_builddir)/src/*/*.gcda $(top_builddir)/src/*/*/*.gcda \ + $(top_builddir)/src/*/*.gcov $(top_builddir)/src/*/*/*.gcov HTML_COVER_DIR=$(top_builddir)/coverage_html coverage-html: all diff --git a/changes/bug29036 b/changes/bug29036 new file mode 100644 index 0000000000..8b96c5c8fa --- /dev/null +++ b/changes/bug29036 @@ -0,0 +1,5 @@ + o Minor bugfix (continuous integration): + - Reset coverage state on disk after Travis CI has finished. This is being + done to prevent future gcda file merge errors which causes the test suite + for the process subsystem to fail. The process subsystem was introduced + in 0.4.0.1-alpha. Fixes bug 29036; bugfix on 0.2.9.15. diff --git a/changes/ticket29962 b/changes/ticket29962 new file mode 100644 index 0000000000..e36cc0cf9a --- /dev/null +++ b/changes/ticket29962 @@ -0,0 +1,3 @@ + o Minor features (continuous integration): + - On Travis Rust builds, cleanup Rust registry and refrain from caching + target/ directory to speed up builds. Resolves issue 29962.