Re: [PATCH v2 02/13] ci/lib.sh: encapsulate Travis-specific things
- From
SZEDER Gábor <szeder.dev@gmail.com>
- Date
- Oct 18, 2018, 22:01 UTC
- Message-ID
- <20181018220106.GU19800@szeder.dev>
- In-Reply-To
- <815152e0f57d545ae2fae7429c16e5be497746be.1539598316.git.gitgitgadget@gmail.com>
On Mon, Oct 15, 2018 at 03:12:00AM -0700, Johannes Schindelin via GitGitGadget wrote:
Show 27 quoted lines
> diff --git a/ci/lib.sh b/ci/lib.sh
> index 06970f7213..8532555b4e 100755
> --- a/ci/lib.sh
> +++ b/ci/lib.sh
> @@ -1,5 +1,26 @@
> # Library of functions shared by all CI scripts
>
> +if test true = "$TRAVIS"
> +then
> + # We are running within Travis CI
> + CI_BRANCH="$TRAVIS_BRANCH"
> + CI_COMMIT="$TRAVIS_COMMIT"
> + CI_JOB_ID="$TRAVIS_JOB_ID"
> + CI_JOB_NUMBER="$TRAVIS_JOB_NUMBER"
> + CI_OS_NAME="$TRAVIS_OS_NAME"
> + CI_REPO_SLUG="$TRAVIS_REPO_SLUG"
> +
> + cache_dir="$HOME/travis-cache"
> +
> + url_for_job_id () {
> + echo "https://travis-ci.org/$CI_REPO_SLUG/jobs/$1"
> + }
> +
> + BREW_INSTALL_PACKAGES="git-lfs gettext"
> + export GIT_PROVE_OPTS="--timer --jobs 3 --state=failed,slow,save"
> + export GIT_TEST_OPTS="--verbose-log -x --immediate"
> +fiPlease set all these variables ...
Show 62 quoted lines
> +
> 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
> @@ -13,10 +34,10 @@ skip_branch_tip_with_tag () {
> # 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) &&
> - test "$TAG" != "$TRAVIS_BRANCH"
> + if TAG=$(git describe --exact-match "$CI_BRANCH" 2>/dev/null) &&
> + test "$TAG" != "$CI_BRANCH"
> then
> - echo "$(tput setaf 2)Tip of $TRAVIS_BRANCH is exactly at $TAG$(tput sgr0)"
> + echo "$(tput setaf 2)Tip of $CI_BRANCH is exactly at $TAG$(tput sgr0)"
> exit 0
> fi
> }
> @@ -25,7 +46,7 @@ skip_branch_tip_with_tag () {
> # job if we encounter the same tree again and can provide a useful info
> # message.
> save_good_tree () {
> - echo "$(git rev-parse $TRAVIS_COMMIT^{tree}) $TRAVIS_COMMIT $TRAVIS_JOB_NUMBER $TRAVIS_JOB_ID" >>"$good_trees_file"
> + echo "$(git rev-parse $CI_COMMIT^{tree}) $CI_COMMIT $CI_JOB_NUMBER $CI_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"
> @@ -35,7 +56,7 @@ save_good_tree () {
> # successfully before (e.g. because the branch got rebased, changing only
> # the commit messages).
> skip_good_tree () {
> - if ! good_tree_info="$(grep "^$(git rev-parse $TRAVIS_COMMIT^{tree}) " "$good_trees_file")"
> + 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.
> # Continue the build job.
> @@ -45,18 +66,18 @@ skip_good_tree () {
> 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 "$CI_JOB_ID" = "$prev_good_job_id"
> then
> cat <<-EOF
> - $(tput setaf 2)Skipping build job for commit $TRAVIS_COMMIT.$(tput sgr0)
> + $(tput setaf 2)Skipping build job for commit $CI_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
> - $(tput setaf 2)Skipping build job for commit $TRAVIS_COMMIT.$(tput sgr0)
> + $(tput setaf 2)Skipping build job for commit $CI_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
> + The log of that build job is available at $(url_for_job_id $prev_good_job_id)
> To force a re-build delete the branch's cache and then hit 'Restart job'.
> EOF
> fi
> @@ -81,7 +102,6 @@ check_unignored_build_artifacts ()
> # and installing dependencies.
> set -ex... after we turn on 'set -x', so the variables' values will be visible in the logs.
(Or move this 'set -ex' to the beginning of the script? Then we could perhaps avoid similar issues in the future.)
> -cache_dir="$HOME/travis-cache" > good_trees_file="$cache_dir/good-trees" > > mkdir -p "$cache_dir"