From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: "Lars Schneider" <larsxschneider@gmail.com>,
"Jonathan Nieder" <jrnieder@gmail.com>,
git@vger.kernel.org, "SZEDER Gábor" <szeder.dev@gmail.com>
Subject: [PATCHv2 0/3] Travis CI: skip commits with successfully built and tested trees
Date: Sun, 31 Dec 2017 11:12:02 +0100 [thread overview]
Message-ID: <20171231101205.7466-1-szeder.dev@gmail.com> (raw)
In-Reply-To: <20171227164905.13872-1-szeder.dev@gmail.com>
This is the second iteration of 'sg/travis-skip-identical-test',
addressing the comments of Lars and Jonathan:
- Colorize the "Tip of $TRAVIS_BRANCH is exactly at $TAG" message
in the new patch 1/3.
- Create the cache directory at the beginning of the build process
(patch 2/3).
- Limit the the cached good trees file size to 1000 records, to
prevent it from growing too large for git/git's forever living
integration branches (patch 3/3).
- Colorize the first line of the "skip build job because this tree has
been tested". Green it is (3/3).
- Removed stray whitespace (3/3).
- Updated an in-code comment, to make clear which code path deals with
a non-existing good trees file (3/3).
SZEDER Gábor (3):
travis-ci: print the "tip of branch is exactly at tag" message in
color
travis-ci: create the cache directory early in the build process
travis-ci: record and skip successfully built trees
ci/lib-travisci.sh | 51 ++++++++++++++++++++++++++++++++++++++++++++++-
ci/run-linux32-docker.sh | 2 ++
ci/run-static-analysis.sh | 2 ++
ci/run-tests.sh | 3 ++-
ci/run-windows-build.sh | 2 ++
ci/test-documentation.sh | 2 ++
6 files changed, 60 insertions(+), 2 deletions(-)
--
2.16.0.rc0.67.g3a46dbca7
diff --git a/ci/lib-travisci.sh b/ci/lib-travisci.sh
index 05e73123f..bade71617 100755
--- a/ci/lib-travisci.sh
+++ b/ci/lib-travisci.sh
@@ -16,7 +16,7 @@ skip_branch_tip_with_tag () {
if TAG=$(git describe --exact-match "$TRAVIS_BRANCH" 2>/dev/null) &&
test "$TAG" != "$TRAVIS_BRANCH"
then
- echo "Tip of $TRAVIS_BRANCH is exactly at $TAG"
+ echo "$(tput setaf 2)Tip of $TRAVIS_BRANCH is exactly at $TAG$(tput sgr0)"
exit 0
fi
}
@@ -28,6 +28,9 @@ good_trees_file="$HOME/travis-cache/good-trees"
# message.
save_good_tree () {
echo "$(git rev-parse $TRAVIS_COMMIT^{tree}) $TRAVIS_COMMIT $TRAVIS_JOB_NUMBER $TRAVIS_JOB_ID" >>"$good_trees_file"
+ # limit the file size
+ tail -1000 "$good_trees_file" >"$good_trees_file".tmp
+ mv "$good_trees_file".tmp "$good_trees_file"
}
# Skip the build job if the same tree has already been built and tested
@@ -36,23 +39,24 @@ save_good_tree () {
skip_good_tree () {
if ! good_tree_info="$(grep "^$(git rev-parse $TRAVIS_COMMIT^{tree}) " "$good_trees_file")"
then
- # haven't seen this tree yet; continue the build job
+ # Haven't seen this tree yet, or no cached good trees file yet.
+ # Continue the build job.
return
fi
echo "$good_tree_info" | {
read tree prev_good_commit prev_good_job_number prev_good_job_id
- if test "$TRAVIS_JOB_ID" = "$prev_good_job_id"
+ if test "$TRAVIS_JOB_ID" = "$prev_good_job_id"
then
cat <<-EOF
- Skipping build job for commit $TRAVIS_COMMIT.
+ $(tput setaf 2)Skipping build job for commit $TRAVIS_COMMIT.$(tput sgr0)
This commit has already been built and tested successfully by this build job.
To force a re-build delete the branch's cache and then hit 'Restart job'.
EOF
else
cat <<-EOF
- Skipping build job for commit $TRAVIS_COMMIT.
+ $(tput setaf 2)Skipping build job for commit $TRAVIS_COMMIT.$(tput sgr0)
This commit's tree has already been built and tested successfully in build job $prev_good_job_number for commit $prev_good_commit.
The log of that build job is available at https://travis-ci.org/$TRAVIS_REPO_SLUG/jobs/$prev_good_job_id
To force a re-build delete the branch's cache and then hit 'Restart job'.
@@ -69,6 +73,8 @@ skip_good_tree () {
# and installing dependencies.
set -ex
+mkdir -p "$HOME/travis-cache"
+
skip_branch_tip_with_tag
skip_good_tree
next prev parent reply other threads:[~2017-12-31 10:12 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-27 16:49 [PATCH 0/2] Travis CI: skip commits with successfully built and tested trees SZEDER Gábor
2017-12-27 16:49 ` [PATCH 1/2] travis-ci: don't try to create the cache directory unnecessarily SZEDER Gábor
2017-12-27 19:46 ` Jonathan Nieder
2017-12-28 11:04 ` SZEDER Gábor
2017-12-28 18:13 ` Jonathan Nieder
2017-12-27 16:49 ` [PATCH 2/2] travis-ci: record and skip successfully built trees SZEDER Gábor
2017-12-27 19:15 ` Lars Schneider
2017-12-27 23:00 ` SZEDER Gábor
2017-12-27 23:24 ` SZEDER Gábor
2017-12-28 11:16 ` Lars Schneider
2017-12-29 20:03 ` SZEDER Gábor
2017-12-29 20:16 ` SZEDER Gábor
2017-12-30 19:17 ` Lars Schneider
2017-12-27 19:35 ` Lars Schneider
2017-12-28 10:31 ` SZEDER Gábor
2017-12-28 11:12 ` Lars Schneider
2017-12-28 19:01 ` Junio C Hamano
2017-12-31 10:12 ` SZEDER Gábor [this message]
2017-12-31 10:12 ` [PATCHv2 1/3] travis-ci: print the "tip of branch is exactly at tag" message in color SZEDER Gábor
2017-12-31 10:12 ` [PATCHv2 2/3] travis-ci: create the cache directory early in the build process SZEDER Gábor
2017-12-31 10:12 ` [PATCHv2 3/3] travis-ci: record and skip successfully built trees SZEDER Gábor
2017-12-31 11:27 ` [PATCHv2 0/3] Travis CI: skip commits with successfully built and tested trees Lars Schneider
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20171231101205.7466-1-szeder.dev@gmail.com \
--to=szeder.dev@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
--cc=jrnieder@gmail.com \
--cc=larsxschneider@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).