Skip to content

Commit 3c93b82

Browse files
szedergitster
authored andcommitted
travis-ci: build Git during the 'script' phase
Ever since we started building and testing Git on Travis CI (522354d (Add Travis CI support, 2015-11-27)), we build Git in the 'before_script' phase and run the test suite in the 'script' phase (except in the later introduced 32 bit Linux and Windows build jobs, where we build in the 'script' phase'). Contrarily, the Travis CI practice is to build and test in the 'script' phase; indeed Travis CI's default build command for the 'script' phase of C/C++ projects is: ./configure && make && make test The reason why Travis CI does it this way and why it's a better approach than ours lies in how unsuccessful build jobs are categorized. After something went wrong in a build job, its state can be: - 'failed', if a command in the 'script' phase returned an error. This is indicated by a red 'X' on the Travis CI web interface. - 'errored', if a command in the 'before_install', 'install', or 'before_script' phase returned an error, or the build job exceeded the time limit. This is shown as a red '!' on the web interface. This makes it easier, both for humans looking at the Travis CI web interface and for automated tools querying the Travis CI API, to decide when an unsuccessful build is our responsibility requiring human attention, i.e. when a build job 'failed' because of a compiler error or a test failure, and when it's caused by something beyond our control and might be fixed by restarting the build job, e.g. when a build job 'errored' because a dependency couldn't be installed due to a temporary network error or because the OSX build job exceeded its time limit. The drawback of building Git in the 'before_script' phase is that one has to check the trace log of all 'errored' build jobs, too, to see what caused the error, as it might have been caused by a compiler error. This requires additional clicks and page loads on the web interface and additional complexity and API requests in automated tools. Therefore, move building Git from the 'before_script' phase to the 'script' phase, updating the script's name accordingly as well. 'ci/run-builds.sh' now becomes basically empty, remove it. Several of our build job configurations override our default 'before_script' to do nothing; with this change our default 'before_script' won't do anything, either, so remove those overriding directives as well. Signed-off-by: SZEDER Gábor <[email protected]> Signed-off-by: Junio C Hamano <[email protected]>
1 parent b92cb86 commit 3c93b82

File tree

3 files changed

+4
-15
lines changed

3 files changed

+4
-15
lines changed

.travis.yml

Lines changed: 1 addition & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,6 @@ matrix:
3333
compiler:
3434
addons:
3535
before_install:
36-
before_script:
3736
script:
3837
- >
3938
test "$TRAVIS_REPO_SLUG" != "git/git" ||
@@ -46,7 +45,6 @@ matrix:
4645
services:
4746
- docker
4847
before_install:
49-
before_script:
5048
script: ci/run-linux32-docker.sh
5149
- env: jobname=StaticAnalysis
5250
os: linux
@@ -56,7 +54,6 @@ matrix:
5654
packages:
5755
- coccinelle
5856
before_install:
59-
before_script:
6057
script: ci/run-static-analysis.sh
6158
after_failure:
6259
- env: jobname=Documentation
@@ -68,13 +65,11 @@ matrix:
6865
- asciidoc
6966
- xmlto
7067
before_install:
71-
before_script:
7268
script: ci/test-documentation.sh
7369
after_failure:
7470

7571
before_install: ci/install-dependencies.sh
76-
before_script: ci/run-build.sh
77-
script: ci/run-tests.sh
72+
script: ci/run-build-and-tests.sh
7873
after_failure: ci/print-test-failures.sh
7974

8075
notifications:

ci/run-tests.sh renamed to ci/run-build-and-tests.sh

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
11
#!/bin/sh
22
#
3-
# Test Git
3+
# Build and test Git
44
#
55

66
. ${0%/*}/lib-travisci.sh
77

88
ln -s $HOME/travis-cache/.prove t/.prove
9+
10+
make --jobs=2
911
make --quiet test
1012

1113
check_unignored_build_artifacts

ci/run-build.sh

Lines changed: 0 additions & 8 deletions
This file was deleted.

0 commit comments

Comments
 (0)