1bd8630ffd
After upgrading to Go version 1.18 the "go get" command no longer builds or installs packages by default; it only manages dependencies in go.mod and go.sum. We therefore switch to using "go install" to build and install the goimports and goversioninfo. We then also no longer need to reset our working tree because "go install" does not modify go.mod or go.sum.
56 lines
1.4 KiB
Bash
Executable File
56 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
# Strip out CI environment variables which cause tests to fail.
|
|
unset $(env | grep -E '^GIT(HUB)?_' | grep -v '^GIT_DEFAULT_HASH=' | sed -e 's/=.*$//')
|
|
|
|
UNAME=$(uname -s)
|
|
X=""
|
|
if [[ $UNAME == MINGW* || $UNAME == MSYS* || $UNAME == CYGWIN* ]]; then
|
|
X=".exe"
|
|
WINDOWS=1
|
|
export GIT_LFS_NO_TEST_COUNT=1
|
|
export GIT_LFS_LOCK_ACQUIRE_DISABLED=1
|
|
fi
|
|
|
|
# Build git-lfs-transfer from scutiger.
|
|
cargo install --root t/scutiger scutiger-lfs
|
|
|
|
# Set GOPATH if it isn't already set.
|
|
eval "$(go env | grep GOPATH)"
|
|
go install golang.org/x/tools/cmd/goimports@latest
|
|
|
|
GOIMPORTS="$GOPATH/bin/goimports"
|
|
|
|
make GOIMPORTS="$GOIMPORTS" && make GOIMPORTS="$GOIMPORTS" test
|
|
|
|
# re-run test to ensure GIT_TRACE output doesn't leak into the git package
|
|
GIT_TRACE=1 make GOIMPORTS="$GOIMPORTS" PKGS=git test
|
|
|
|
pushd t >/dev/null
|
|
PROVE="prove"
|
|
PROVE_EXTRA_ARGS="-j9"
|
|
if [ "$WINDOWS" ]; then
|
|
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"
|
|
popd >/dev/null
|
|
|
|
echo "Looking for trailing whitespace..."
|
|
if git grep -lE '[[:space:]]+$' | \
|
|
grep -vE '(^vendor/|\.git/(objects/|index)|\.bat$)'
|
|
then
|
|
exit 1
|
|
fi
|
|
|
|
echo "Formatting files..."
|
|
make GOIMPORTS="$GOIMPORTS" fmt
|
|
|
|
echo "Looking for files that are not formatted correctly..."
|
|
git status -s
|
|
[ -z "$(git status --porcelain)" ]
|