Unverified 提交 0f53ad09 作者: Steven Allen 提交者: GitHub

Merge pull request #6282 from cbuesser/go-version-check

GOCC implementation & fix in make & build scripts
...@@ -4,6 +4,7 @@ COVERAGE := ...@@ -4,6 +4,7 @@ COVERAGE :=
DISTCLEAN := DISTCLEAN :=
TEST := TEST :=
TEST_SHORT := TEST_SHORT :=
GOCC ?= go
all: help # all has to be first defined target all: help # all has to be first defined target
.PHONY: all .PHONY: all
...@@ -104,7 +105,7 @@ install_unsupported: install ...@@ -104,7 +105,7 @@ install_unsupported: install
.PHONY: install_unsupported .PHONY: install_unsupported
uninstall: uninstall:
go clean -i ./cmd/ipfs $(GOCC) clean -i ./cmd/ipfs
.PHONY: uninstall .PHONY: uninstall
help: help:
......
...@@ -31,12 +31,14 @@ PREFIX=$(expr "$0" : "\(.*\/\)") || PREFIX='./' ...@@ -31,12 +31,14 @@ PREFIX=$(expr "$0" : "\(.*\/\)") || PREFIX='./'
# Check that the go binary exist and is in the path # Check that the go binary exist and is in the path
type go >/dev/null 2>&1 || die_upgrade "go is not installed or not in the PATH!" GOCC=${GOCC="go"}
type ${GOCC} >/dev/null 2>&1 || die_upgrade "go is not installed or not in the PATH!"
# Check the go binary version # Check the go binary version
VERS_STR=$(go version 2>&1) || die "'go version' failed with output: $VERS_STR" VERS_STR=$(${GOCC} version 2>&1) || die "'go version' failed with output: $VERS_STR"
GO_CUR_VERSION=$(expr "$VERS_STR" : ".*go version go\([^ ]*\) .*") || die "Invalid 'go version' output: $VERS_STR" GO_CUR_VERSION=$(expr "$VERS_STR" : ".*go version go\([^ ]*\) .*") || die "Invalid 'go version' output: $VERS_STR"
check_at_least_version "$GO_MIN_VERSION" "$GO_CUR_VERSION" "go" check_at_least_version "$GO_MIN_VERSION" "$GO_CUR_VERSION" "${GOCC}"
#!/bin/sh #!/bin/sh
GOCC=${GOCC=go}
die() { die() {
echo "$@" >&2 echo "$@" >&2
exit 1 exit 1
...@@ -99,7 +101,7 @@ get_go_vars() { ...@@ -99,7 +101,7 @@ get_go_vars() {
if [ ! -z "$GOOS" ] && [ ! -z "$GOARCH" ]; then if [ ! -z "$GOOS" ] && [ ! -z "$GOARCH" ]; then
printf "%s-%s" "$GOOS" "$GOARCH" printf "%s-%s" "$GOOS" "$GOARCH"
elif have_binary go; then elif have_binary go; then
printf "%s-%s" "$(go env GOOS)" "$(go env GOARCH)" printf "%s-%s" "$($GOCC env GOOS)" "$($GOCC env GOARCH)"
else else
die "no way of determining system GOOS and GOARCH\nPlease manually set GOOS and GOARCH then retry." die "no way of determining system GOOS and GOARCH\nPlease manually set GOOS and GOARCH then retry."
fi fi
......
...@@ -11,11 +11,13 @@ if ! [[ "$OUTPUT" = /* ]]; then ...@@ -11,11 +11,13 @@ if ! [[ "$OUTPUT" = /* ]]; then
OUTPUT="$PWD/$OUTPUT" OUTPUT="$PWD/$OUTPUT"
fi fi
GOCC=${GOCC=go}
TMPDIR="$(mktemp -d)" TMPDIR="$(mktemp -d)"
cp -r . "$TMPDIR" cp -r . "$TMPDIR"
( cd "$TMPDIR" && ( cd "$TMPDIR" &&
echo $PWD && echo $PWD &&
go mod vendor && $GOCC mod vendor &&
(git describe --always --match=NeVeRmAtCh --dirty 2>/dev/null || true) > .tarball && (git describe --always --match=NeVeRmAtCh --dirty 2>/dev/null || true) > .tarball &&
chmod -R u=rwX,go=rX "$TMPDIR" # normalize permissions chmod -R u=rwX,go=rX "$TMPDIR" # normalize permissions
tar -czf "$OUTPUT" --exclude="./.git" . tar -czf "$OUTPUT" --exclude="./.git" .
......
include mk/header.mk include mk/header.mk
GOCC ?= go
$(d)/coverage_deps: $$(DEPS_GO) $(d)/coverage_deps: $$(DEPS_GO)
rm -rf $(@D)/unitcover && mkdir $(@D)/unitcover rm -rf $(@D)/unitcover && mkdir $(@D)/unitcover
rm -rf $(@D)/sharnesscover && mkdir $(@D)/sharnesscover rm -rf $(@D)/sharnesscover && mkdir $(@D)/sharnesscover
...@@ -11,16 +13,16 @@ endif ...@@ -11,16 +13,16 @@ endif
.PHONY: $(d)/coverage_deps .PHONY: $(d)/coverage_deps
# unit tests coverage # unit tests coverage
UTESTS_$(d) := $(shell go list -f '{{if (len .TestGoFiles)}}{{.ImportPath}}{{end}}' $(go-flags-with-tags) ./...) UTESTS_$(d) := $(shell $(GOCC) list -f '{{if (len .TestGoFiles)}}{{.ImportPath}}{{end}}' $(go-flags-with-tags) ./...)
UTESTS_$(d) += $(shell go list -f '{{if (len .XTestGoFiles)}}{{.ImportPath}}{{end}}' $(go-flags-with-tags) ./... | grep -v go-ipfs/vendor | grep -v go-ipfs/Godeps) UTESTS_$(d) += $(shell $(GOCC) list -f '{{if (len .XTestGoFiles)}}{{.ImportPath}}{{end}}' $(go-flags-with-tags) ./... | grep -v go-ipfs/vendor | grep -v go-ipfs/Godeps)
UCOVER_$(d) := $(addsuffix .coverprofile,$(addprefix $(d)/unitcover/, $(subst /,_,$(UTESTS_$(d))))) UCOVER_$(d) := $(addsuffix .coverprofile,$(addprefix $(d)/unitcover/, $(subst /,_,$(UTESTS_$(d)))))
$(UCOVER_$(d)): $(d)/coverage_deps ALWAYS $(UCOVER_$(d)): $(d)/coverage_deps ALWAYS
$(eval TMP_PKG := $(subst _,/,$(basename $(@F)))) $(eval TMP_PKG := $(subst _,/,$(basename $(@F))))
$(eval TMP_DEPS := $(shell go list -f '{{range .Deps}}{{.}} {{end}}' $(go-flags-with-tags) $(TMP_PKG) | sed 's/ /\n/g' | grep ipfs/go-ipfs) $(TMP_PKG)) $(eval TMP_DEPS := $(shell $(GOCC) list -f '{{range .Deps}}{{.}} {{end}}' $(go-flags-with-tags) $(TMP_PKG) | sed 's/ /\n/g' | grep ipfs/go-ipfs) $(TMP_PKG))
$(eval TMP_DEPS_LIST := $(call join-with,$(comma),$(TMP_DEPS))) $(eval TMP_DEPS_LIST := $(call join-with,$(comma),$(TMP_DEPS)))
go test $(go-flags-with-tags) $(GOTFLAGS) -v -covermode=atomic -json -coverpkg=$(TMP_DEPS_LIST) -coverprofile=$@ $(TMP_PKG) | tee -a test/unit/gotest.json $(GOCC) test $(go-flags-with-tags) $(GOTFLAGS) -v -covermode=atomic -json -coverpkg=$(TMP_DEPS_LIST) -coverprofile=$@ $(TMP_PKG) | tee -a test/unit/gotest.json
$(d)/unit_tests.coverprofile: $(UCOVER_$(d)) $(d)/unit_tests.coverprofile: $(UCOVER_$(d))
......
...@@ -73,7 +73,7 @@ test_go_megacheck: ...@@ -73,7 +73,7 @@ test_go_megacheck:
test_go: $(TEST_GO) test_go: $(TEST_GO)
check_go_version: check_go_version:
@go version @$(GOCC) version
bin/check_go_version $(GO_MIN_VERSION) bin/check_go_version $(GO_MIN_VERSION)
.PHONY: check_go_version .PHONY: check_go_version
DEPS_GO += check_go_version DEPS_GO += check_go_version
......
...@@ -8,6 +8,7 @@ tarball-is:=1 ...@@ -8,6 +8,7 @@ tarball-is:=1
git-hash:=$(shell cat .tarball) git-hash:=$(shell cat .tarball)
endif endif
GOCC ?= go
go-ipfs-source.tar.gz: distclean go-ipfs-source.tar.gz: distclean
bin/maketarball.sh $@ GOCC=$(GOCC) bin/maketarball.sh $@
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论