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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.