From 23574526ad0f6d2ce5ca706ea1fea78c8c29be11 Mon Sep 17 00:00:00 2001 From: Máximo Cuadros Date: Thu, 15 Dec 2016 09:40:48 +0100 Subject: .travis CI with multiple git versions --- .travis.yml | 19 +++++++++++++++++-- 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 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 -- cgit