Skip to content

Commit

Permalink
Accept git 1.7.2 as the minimum version (go-gitea#90)
Browse files Browse the repository at this point in the history
* Add an head ref for the sake of using self repo for testing

* Add test for CommitCount

* Add testing with git-1.7.2

* Add test for GetLatestCommitTime

The test checks that latest commit time is before now
and more recent than the commit this PR is based at
Test no error is raised by time parsing and GetLatestCommitTime
Print actual time when tests fail

* Accept git 1.7.2 as the minimum version

Debian old old (very old) distribution (6.0 aka Squeeze)
ships version 1.7.10.4.

The version requirement was raised in go-gitea#46 supposedly for the
need of "symbolic-ref" command, but that command is supported
by the 1.7.2 version too, and possibly even older versions.

* Reduce output from drone, add comments

Reduce steps, concatenating them in logical steps

* Interrupt step upon first failure

* Add Dockerfile for use with ci

* Use ad-hoc docker image for testing git-1.7.2

* Avoid running build/vet/clean twice

* Set HEAD ref also in testing-1-7 step
  • Loading branch information
strk authored and lunny committed Nov 28, 2017
1 parent 193e22e commit c2040d5
Show file tree
Hide file tree
Showing 6 changed files with 67 additions and 3 deletions.
15 changes: 13 additions & 2 deletions .drone.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,26 @@ clone:
tags: true

pipeline:
testing:
test-general:
image: webhippie/golang:edge
pull: true
commands:
- make clean
- make vet
- make lint
- make test
- make build
testing-git-latest:
image: webhippie/golang:edge
pull: true
commands:
- git update-ref refs/heads/test HEAD
- git --version && make test
testing-git-1.7:
image: docker.kbt.io/gitea-git-ci:1.7
pull: true
commands:
- git update-ref refs/heads/test HEAD
- PATH=/opt/git-1.7.2/bin git --version && make test

# coverage:
# image: plugins/coverage:1
Expand Down
15 changes: 15 additions & 0 deletions commit_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
// Copyright 2017 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.

package git

import (
"testing"
"github.com/stretchr/testify/assert"
)

func TestCommitsCount(t *testing.T) {
commitsCount, _ := CommitsCount(".", "d86a90f801dbe279db095437a8c7ea42c60e8d98")
assert.Equal(t, int64(3), commitsCount)
}
11 changes: 11 additions & 0 deletions docker/ci/Dockerfile-git-1.7
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
FROM webhippie/golang:edge
RUN apk add --update autoconf zlib-dev > /dev/null && \
mkdir build && \
curl -sL "https://github.com/git/git/archive/v1.7.2.tar.gz" -o git.tar.gz && \
tar -C build -xzf git.tar.gz && \
cd build/git-1.7.2 && \
{ autoconf 2> err || { cat err && false; } } && \
./configure --without-tcltk --prefix=/opt/git-1.7.2 > /dev/null && \
{ make install NO_PERL=please > /dev/null 2> err || { cat err && false; } } && \
cd ../.. && \
rm -rf build git.tar.gz \
2 changes: 2 additions & 0 deletions docker/ci/Makefile
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
git-1.7:
docker build -t gitea/ci:git-1.7 -f Dockerfile-git-1.7 .
2 changes: 1 addition & 1 deletion git.go
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@ var (
// Prefix the log prefix
Prefix = "[git-module] "
// GitVersionRequired is the minimum Git version required
GitVersionRequired = "1.8.1.6"
GitVersionRequired = "1.7.2"
)

func log(format string, args ...interface{}) {
Expand Down
25 changes: 25 additions & 0 deletions repo_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
// Copyright 2017 The Gitea Authors. All rights reserved.
// Use of this source code is governed by a MIT-style
// license that can be found in the LICENSE file.

package git

import (
"testing"
"time"
"github.com/stretchr/testify/assert"
)

func TestGetLatestCommitTime(t *testing.T) {
lct, err := GetLatestCommitTime(".")
assert.NoError(t, err)
// Time is in the past
now := time.Now()
assert.True(t, lct.Unix() < now.Unix(), "%d not smaller than %d", lct, now)
// Time is after Mon Oct 23 03:52:09 2017 +0300
// which is the time of commit
// d47b98c44c9a6472e44ab80efe65235e11c6da2a
refTime, err := time.Parse("Mon Jan 02 15:04:05 2006 -0700", "Mon Oct 23 03:52:09 2017 +0300")
assert.NoError(t, err)
assert.True(t, lct.Unix() > refTime.Unix(), "%d not greater than %d", lct, refTime)
}

0 comments on commit c2040d5

Please sign in to comment.