Travis CI offers shell access to its virtual machine environment running the build jobs, called "debug mode" [1]. After restarting a build job in debug mode and logging in, the first thing I usually do is to install dependencies, i.e. run './ci/install-dependencies.sh'. This works just fine when I restarted a failed build job in debug mode. However, after restarting a successful build job in debug mode our CI scripts get all clever, and exit without doing anything useful, claiming that "This commit's tree has already been built and tested successfully" [2]. Our CI scripts are right, and we do want to skip building and testing already known good trees in "regular" CI builds. In debug mode, however, this is a nuisiance, because one has to delete the cache (or at least the 'good-trees' file in the cache) to proceed. Let's update our CI scripts, in particular the common 'ci/lib.sh', to not skip previously successfully built and tested trees in debug mode, so all those scripts will do what there were supposed to do even when a successful build job was restarted in debug mode. [1] https://docs.travis-ci.com/user/running-build-in-debug-mode/ [2] 9cc2c76f5e (travis-ci: record and skip successfully built trees, 2017-12-31) Signed-off-by: SZEDER Gábor <szeder.dev@xxxxxxxxx> --- Range-diff: 1: e9badc7483 ! 1: a1959d3e16 travis-ci: ignore already tested trees in debug mode @@ Metadata Author: SZEDER Gábor <szeder.dev@xxxxxxxxx> ## Commit message ## - travis-ci: ignore already tested trees in debug mode + travis-ci: do not skip successfully tested trees in debug mode Travis CI offers shell access to its virtual machine environment running the build jobs, called "debug mode" [1]. After restarting a @@ Commit message the cache (or at least the 'good-trees' file in the cache) to proceed. Let's update our CI scripts, in particular the common 'ci/lib.sh', to - ignore previously successfully built and tested trees in debug mode, + not skip previously successfully built and tested trees in debug mode, so all those scripts will do what there were supposed to do even when a successful build job was restarted in debug mode. ci/lib.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/ci/lib.sh b/ci/lib.sh index 44db2d5cbb..1a09ac4b34 100755 --- a/ci/lib.sh +++ b/ci/lib.sh @@ -34,6 +34,11 @@ save_good_tree () { # successfully before (e.g. because the branch got rebased, changing only # the commit messages). skip_good_tree () { + if test "$TRAVIS_DEBUG_MODE" = true + then + return + fi + if ! good_tree_info="$(grep "^$(git rev-parse $CI_COMMIT^{tree}) " "$good_trees_file")" then # Haven't seen this tree yet, or no cached good trees file yet. -- 2.23.0.331.g4e51dcdf11