aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.travis.yml19
-rw-r--r--Makefile21
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
diff --git a/Makefile b/Makefile
index b9848cc..2b8aff6 100644
--- a/Makefile
+++ b/Makefile
@@ -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