diff options
-rw-r--r-- | .travis.yml | 19 | ||||
-rw-r--r-- | Makefile | 21 |
2 files changed, 35 insertions, 5 deletions
diff --git a/.travis.yml b/.travis.yml index 47eaea2..c63c1c4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -4,14 +4,26 @@ go: - 1.7 - tip +env: + - GIT_VERSION=master + - GIT_VERSION=v1.9.3 + - GIT_VERSION=v2.11.0 + matrix: allow_failures: - go: tip +cache: + directories: + - $HOME/.git-dist + +before_script: + - export GIT_DIST_PATH=$HOME/.git-dist + - make build-git before_install: - eval "$(ssh-agent -s)" - # we only decrypt the SSH key when we aren't in a pull request + # we only decrypt the SSH key when we aren't in a pull request - 'if [ "$TRAVIS_PULL_REQUEST" = "false" ]; then bash .travis/install_key.sh; fi' - 'if [ "$TRAVIS_PULL_REQUEST" != "false" ]; then export SSH_AUTH_SOCK="" ; fi' - git config --global user.email "travis@example.com" @@ -25,7 +37,10 @@ install: - go get -v -t ./... script: + - export GIT_EXEC_PATH=$GIT_DIST_PATH + - export PATH=$GIT_DIST_PATH:$PATH + - git version - make test-coverage after_success: - - bash <(curl -s https://codecov.io/bash) + - bash <(curl -s https://codecov.io/bash)
\ No newline at end of file @@ -1,6 +1,3 @@ -# Default shell -SHELL := /bin/bash - # General WORKDIR = $(PWD) @@ -8,6 +5,11 @@ WORKDIR = $(PWD) GOCMD = go GOTEST = $(GOCMD) test -v +# Git config +GIT_VERSION ?= +GIT_DIST_PATH ?= $(PWD)/.git-dist +GIT_REPOSITORY = http://github.com/git/git.git + # Coverage COVERAGE_REPORT = coverage.txt COVERAGE_PROFILE = profile.out @@ -17,6 +19,16 @@ ifneq ($(origin CI), undefined) WORKDIR := $(GOPATH)/src/gopkg.in/src-d/go-git.v4 endif +build-git: + @if [ -f $(GIT_DIST_PATH)/git ]; then \ + echo "nothing to do, using cache $(GIT_DIST_PATH)"; \ + else \ + git clone $(GIT_REPOSITORY) -b $(GIT_VERSION) --depth 1 --single-branch $(GIT_DIST_PATH); \ + cd $(GIT_DIST_PATH); \ + make configure; \ + ./configure; \ + make all; \ + fi test: cd $(WORKDIR); \ @@ -35,3 +47,6 @@ test-coverage: rm $(COVERAGE_PROFILE); \ fi; \ done; \ + +clean: + rm -rf $(GIT_DIST_PATH)
\ No newline at end of file |