From: "SZEDER Gábor" <szeder.dev@gmail.com>
To: Lars Schneider <larsxschneider@gmail.com>
Cc: "SZEDER Gábor" <szeder.dev@gmail.com>,
gitster@pobox.com, git@vger.kernel.org
Subject: Re: [PATCH v1 2/2] travis-ci: skip a branch build if equal tag is present
Date: Mon, 11 Sep 2017 16:52:41 +0200 [thread overview]
Message-ID: <20170911145241.18571-1-szeder.dev@gmail.com> (raw)
In-Reply-To: <20170910144429.47346-3-larsxschneider@gmail.com>
> If we push a branch and a tag pointing to the HEAD of this branch,
s/the HEAD of//, perhaps?
There is no such thing as "HEAD" (all capital!) of a branch, is it?
> then Travis CI would run the build twice. This wastes resources and
Nit: s/run the build/build and test the same tree/, to further stress
that the two builds are redundant.
> slows the testing.
>
> Add a function to detect this situation and skip the build the branch
s/skip the build/skip building/ ?
> if appropriate. Invoke this function on every build.
>
> Helped-by: Junio C Hamano <gitster@pobox.com>
> Signed-off-by: Lars Schneider <larsxschneider@gmail.com>
> ---
> ci/lib-travisci.sh | 23 +++++++++++++++++++++++
> 1 file changed, 23 insertions(+)
>
> diff --git a/ci/lib-travisci.sh b/ci/lib-travisci.sh
> index 44d6ba2dd2..9c4ae9bdd0 100755
> --- a/ci/lib-travisci.sh
> +++ b/ci/lib-travisci.sh
> @@ -1,5 +1,28 @@
> # Library of functions shared by all CI scripts
>
> +skip_branch_tip_with_tag () {
> + # Sometimes, a branch is pushed at the same time the tag that points
> + # at the same commit as the tip of the branch is pushed, and building
> + # both at the same time is a waste.
> + #
> + # Travis gives a tagname e.g. v2.14.0 in $TRAVIS_BRANCH when
> + # the build is triggered by a push to a tag. Let's see if
> + # $TRAVIS_BRANCH is exactly at a tag, and if so, if it is
> + # different from $TRAVIS_BRANCH. That way, we can tell if
> + # we are building the tip of a branch that is tagged and
> + # we can skip the build because we won't be skipping a build
> + # of a tag.
> +
> + if TAG=$(git describe --exact-match "$TRAVIS_BRANCH" 2>/dev/null) &&
> + $TAG != $TRAVIS_BRANCH
This must be
[ $TAG != $TRAVIS_BRANCH ]
otherwise the shell will rightfully complain:
$ TRAVIS_BRANCH=v2.14.0 ./ci/lib-travisci.sh
./ci/lib-travisci.sh: line 17: v2.14.0: command not found
Furthermore, I would prefer quotes around $TAG and $TRAVIS_BRANCH. If
either one of those two variables were empty (or contain multiple
words) at that point, the shell would complain. Now, I don't think
that either can end up being empty, so quotes are not necessary, but
having quotes around them would save future readers from spending
brain cycles on this unnecessarily.
> + then
> + echo "Tip of $TRAVIS_BRANCH is exactly at $TAG"
> + exit 0
> + fi
> +}
> +
> # Set 'exit on error' for all CI scripts to let the caller know that
> # something went wrong
> set -e
> +
> +skip_branch_tip_with_tag
> --
> 2.14.1
>
>
next prev parent reply other threads:[~2017-09-11 14:53 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-10 14:44 [PATCH v1 0/2] travis-ci: dedicated scripts + skip duplicated builds larsxschneider
2017-09-10 14:44 ` [PATCH v1 1/2] travis-ci: move Travis CI code into dedicated scripts larsxschneider
2017-09-11 1:17 ` Junio C Hamano
2017-09-10 14:44 ` [PATCH v1 2/2] travis-ci: skip a branch build if equal tag is present larsxschneider
2017-09-11 14:52 ` SZEDER Gábor [this message]
2017-09-12 11:45 ` 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=20170911145241.18571-1-szeder.dev@gmail.com \
--to=szeder.dev@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.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.