2015-07-30 02:37:31 +00:00
|
|
|
#!/usr/bin/env bash
|
2015-05-19 01:15:16 +00:00
|
|
|
set -e
|
2018-07-24 19:35:05 +00:00
|
|
|
|
2018-07-24 21:07:36 +00:00
|
|
|
GOIMPORTS="goimports"
|
2018-07-24 19:35:05 +00:00
|
|
|
if [ "appveyor" = "$USERNAME" ]; then
|
|
|
|
GOIMPORTS="C:\\Users\\appveyor\\go\\bin\\goimports"
|
|
|
|
fi
|
|
|
|
|
all: use Go Modules instead of Glide
Since we are now building on Go 1.11 (as of 074a2d4f (all: use Go 1.11
in CI, 2018-08-28)) and Go 1.11 supports Go Modules [1], let's stop
using Glide, and begin using Go Modules.
This involves a few things:
* Teach the Makefile how to build go.sum files instead of glide.lock
files.
* Teach continuous integration services to build Git LFS in a
non-$GOPATH environment, since (without setting GO111MODULE=on
explicitly, which we choose not to do), this will break compiling
Git LFS, because Go 1.11 will ignore modules present in a Go
checkout beneath $GOPATH.
* In order to do the above, let's also make sure that we are
un-setting $GOCACHE in the environment, as this causes Go to work
without modules support [2].
* Because we're no longer building in a `$GOPATH`-based location,
let's instruct the CircleCI base image to archive the new location,
too.
* Similarly, teach the RPM spec to build in a non-$GOPATH location.
* By contrast, since we use dh_golang to build git-lfs binaries on
Debian, let's wait until the upstream dh_golang package is released
with support for Go 1.11 module support explicitly. Therefore, force
GO111MODULE to be on so that we can build a copy of Git LFS whose
checkout is within a $GOPATH.
Although the go.mod versions match the glide.yaml ones, the diff
attached is large because Go Modules do not vendor `_test.go` files,
whereas Glide does.
[1]: https://golang.org/doc/go1.11#modules
[2]: `GOCACHE=on` will be deprecated in Go 1.12, so this change makes
sense for that reason, too.
Co-authored-by: brian m. carlson <bk2204@github.com>
2018-08-28 20:53:57 +00:00
|
|
|
make GOIMPORTS="$GOIMPORTS" && make GOIMPORTS="$GOIMPORTS" test
|
2016-02-03 19:06:23 +00:00
|
|
|
|
|
|
|
# re-run test to ensure GIT_TRACE output doesn't leak into the git package
|
all: use Go Modules instead of Glide
Since we are now building on Go 1.11 (as of 074a2d4f (all: use Go 1.11
in CI, 2018-08-28)) and Go 1.11 supports Go Modules [1], let's stop
using Glide, and begin using Go Modules.
This involves a few things:
* Teach the Makefile how to build go.sum files instead of glide.lock
files.
* Teach continuous integration services to build Git LFS in a
non-$GOPATH environment, since (without setting GO111MODULE=on
explicitly, which we choose not to do), this will break compiling
Git LFS, because Go 1.11 will ignore modules present in a Go
checkout beneath $GOPATH.
* In order to do the above, let's also make sure that we are
un-setting $GOCACHE in the environment, as this causes Go to work
without modules support [2].
* Because we're no longer building in a `$GOPATH`-based location,
let's instruct the CircleCI base image to archive the new location,
too.
* Similarly, teach the RPM spec to build in a non-$GOPATH location.
* By contrast, since we use dh_golang to build git-lfs binaries on
Debian, let's wait until the upstream dh_golang package is released
with support for Go 1.11 module support explicitly. Therefore, force
GO111MODULE to be on so that we can build a copy of Git LFS whose
checkout is within a $GOPATH.
Although the go.mod versions match the glide.yaml ones, the diff
attached is large because Go Modules do not vendor `_test.go` files,
whereas Glide does.
[1]: https://golang.org/doc/go1.11#modules
[2]: `GOCACHE=on` will be deprecated in Go 1.12, so this change makes
sense for that reason, too.
Co-authored-by: brian m. carlson <bk2204@github.com>
2018-08-28 20:53:57 +00:00
|
|
|
GIT_TRACE=1 make GOIMPORTS="$GOIMPORTS" PKGS=git test
|
2016-02-03 19:06:23 +00:00
|
|
|
|
2018-07-11 18:58:19 +00:00
|
|
|
pushd t >/dev/null
|
2018-07-13 18:15:31 +00:00
|
|
|
UNAME=$(uname -s)
|
|
|
|
X=""
|
|
|
|
if [[ $UNAME == MINGW* || $UNAME == MSYS* || $UNAME == CYGWIN* ]]; then
|
|
|
|
X=".exe"
|
|
|
|
fi
|
2018-07-17 18:31:38 +00:00
|
|
|
|
|
|
|
PROVE="prove"
|
|
|
|
PROVE_EXTRA_ARGS="-j9"
|
2018-07-24 19:35:05 +00:00
|
|
|
if [ "appveyor" = "$USERNAME" ]; then
|
2018-07-17 18:31:38 +00:00
|
|
|
export PATH="/c/Strawberry/perl/bin:.:$PATH"
|
|
|
|
PROVE="prove.bat"
|
|
|
|
PROVE_EXTRA_ARGS="$PROVE_EXTRA_ARGS --exec bash"
|
|
|
|
fi
|
|
|
|
|
|
|
|
VERBOSE_LOGS=1 make X="$X" clean
|
|
|
|
VERBOSE_LOGS=1 make X="$X" PROVE="$PROVE" PROVE_EXTRA_ARGS="$PROVE_EXTRA_ARGS"
|
2018-07-11 18:58:19 +00:00
|
|
|
popd >/dev/null
|
2018-10-03 20:40:53 +00:00
|
|
|
|
|
|
|
echo "Looking for trailing whitespace..."
|
|
|
|
! git grep -lE '[[:space:]]+$' | \
|
|
|
|
grep -vE '(^vendor/|\.git/(objects/|index)|\.bat$)'
|