git-lfs/script/cibuild
Chris Darroch 1bd8630ffd use "go install" in place of "go get" for Go 1.18
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.
2022-04-27 10:07:17 -07:00

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)" ]