From a6a61234fb7dfd19e01c8fcf96994306ddd6f310 Mon Sep 17 00:00:00 2001 From: Ibrahim Jarif Date: Thu, 13 Dec 2018 13:19:14 +0530 Subject: [PATCH 1/5] Use golang 1.11 from epel --- .make/test.mk | 13 +++++++------ Dockerfile.builder | 11 ++++++----- cico_run_coverage.sh | 2 -- 3 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.make/test.mk b/.make/test.mk index bddb65b9e8..d693a2c09c 100644 --- a/.make/test.mk +++ b/.make/test.mk @@ -87,7 +87,7 @@ # mode can be: set, count, or atomic COVERAGE_MODE ?= set -# By default no go test calls will use the -v switch when running tests. +# By default no go test off calls will use the -v switch when running tests. # But if you want you can enable that by setting GO_TEST_VERBOSITY_FLAG=-v GO_TEST_VERBOSITY_FLAG ?= @@ -156,7 +156,7 @@ test-unit: prebuild-check clean-coverage-unit $(COV_PATH_UNIT) test-unit-no-coverage: prebuild-check $(SOURCES) $(call log-info,"Running test: $@") $(eval TEST_PACKAGES:=$(shell go list ./... | grep -v $(ALL_PKGS_EXCLUDE_PATTERN))) - F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_UNIT_TEST=1 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) + F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_UNIT_TEST=1 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test -vet off $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) .PHONY: test-unit-no-coverage-junit test-unit-no-coverage-junit: prebuild-check ${GO_JUNIT_BIN} ${TMP_PATH} @@ -173,12 +173,12 @@ test-integration: prebuild-check clean-coverage-integration migrate-database $(C test-integration-no-coverage: prebuild-check migrate-database $(SOURCES) $(call log-info,"Running test: $@") $(eval TEST_PACKAGES:=$(shell go list ./... | grep -v $(ALL_PKGS_EXCLUDE_PATTERN))) - F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_DATABASE=1 F8_RESOURCE_UNIT_TEST=0 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test $(GO_TEST_BINARIES_PARALLEL_FLAG) $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) + F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_DATABASE=1 F8_RESOURCE_UNIT_TEST=0 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test -vet off $(GO_TEST_BINARIES_PARALLEL_FLAG) $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) test-integration-benchmark: prebuild-check migrate-database $(SOURCES) $(call log-info,"Running benchmarks: $@") $(eval TEST_PACKAGES:=$(shell go list ./... | grep -v $(ALL_PKGS_EXCLUDE_PATTERN))) - F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_DATABASE=1 F8_RESOURCE_UNIT_TEST=0 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test -run=^$$ -bench=. -cpu 1,2,4 -test.benchmem $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) | grep -E "Bench|allocs" + F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_DATABASE=1 F8_RESOURCE_UNIT_TEST=0 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test -vet off -run=^$$ -bench=. -cpu 1,2,4 -test.benchmem $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) | grep -E "Bench|allocs" .PHONY: test-remote ## Runs the remote tests and produces coverage files for each package. @@ -189,13 +189,13 @@ test-remote: prebuild-check clean-coverage-remote $(COV_PATH_REMOTE) test-remote-no-coverage: prebuild-check $(SOURCES) $(call log-info,"Running test: $@") $(eval TEST_PACKAGES:=$(shell go list ./... | grep -v $(ALL_PKGS_EXCLUDE_PATTERN))) - F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_REMOTE=1 F8_RESOURCE_UNIT_TEST=0 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) + F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_REMOTE=1 F8_RESOURCE_UNIT_TEST=0 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test -vet off $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) .PHONY: test-migration ## Runs the migration tests and should be executed before running the integration tests ## in order to have a clean database test-migration: prebuild-check migration/sqlbindata.go migration/sqlbindata_test.go - F8_RESOURCE_DATABASE=1 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test $(GO_TEST_VERBOSITY_FLAG) github.com/fabric8-services/fabric8-wit/migration + F8_RESOURCE_DATABASE=1 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test -vet off $(GO_TEST_VERBOSITY_FLAG) github.com/fabric8-services/fabric8-wit/migration # Starts the WIT server and waits until its running define start-wit @@ -473,6 +473,7 @@ $(eval COV_OUT_FILE := $(COV_DIR)/$(PACKAGE_NAME)/coverage.$(TEST_NAME).mode-$(C go test $(PACKAGE_NAME) \ $(GO_TEST_BINARIES_PARALLEL_FLAG) \ $(GO_TEST_VERBOSITY_FLAG) \ + -vet off \ -coverprofile $(COV_OUT_FILE) \ -coverpkg $(ALL_PKGS_COMMA_SEPARATED) \ -covermode=$(COVERAGE_MODE) \ diff --git a/Dockerfile.builder b/Dockerfile.builder index 2caa3729ae..768ac83caf 100644 --- a/Dockerfile.builder +++ b/Dockerfile.builder @@ -5,10 +5,11 @@ ENV LANG=en_US.utf8 ARG USE_GO_VERSION_FROM_WEBSITE=0 # Some packages might seem weird but they are required by the RVM installer. -RUN yum --enablerepo=centosplus install -y --quiet \ +RUN yum install epel-release -y \ + && yum --enablerepo=centosplus --enablerepo=epel install -y --quiet \ findutils \ git \ - $(test -z $USE_GO_VERSION_FROM_WEBSITE && echo "golang") \ + $(test "$USE_GO_VERSION_FROM_WEBSITE" != 1 && echo "golang") \ make \ procps-ng \ tar \ @@ -18,13 +19,13 @@ RUN yum --enablerepo=centosplus install -y --quiet \ postgresql \ && yum clean all -RUN test -n $USE_GO_VERSION_FROM_WEBSITE \ - && cd /tmp \ +RUN if [[ "$USE_GO_VERSION_FROM_WEBSITE" = 1 ]]; then cd /tmp \ && wget --no-verbose https://dl.google.com/go/go1.10.linux-amd64.tar.gz \ && echo "b5a64335f1490277b585832d1f6c7f8c6c11206cba5cd3f771dcb87b98ad1a33 go1.10.linux-amd64.tar.gz" > checksum \ && sha256sum -c checksum \ && tar -C /usr/local -xzf go1.10.linux-amd64.tar.gz \ - && rm -f go1.10.linux-amd64.tar.gz + && rm -f go1.10.linux-amd64.tar.gz; \ + fi ENV PATH=$PATH:/usr/local/go/bin # Get dep for Go package management and make sure the directory has full rwz permissions for non-root users diff --git a/cico_run_coverage.sh b/cico_run_coverage.sh index 4af4a33b3e..0eb0efb8f4 100644 --- a/cico_run_coverage.sh +++ b/cico_run_coverage.sh @@ -2,8 +2,6 @@ . cico_setup.sh -export USE_GO_VERSION_FROM_WEBSITE=1 - cico_setup; run_tests_with_coverage; From 4ad48b770add7454331a36d1b9c8e5a868cc587a Mon Sep 17 00:00:00 2001 From: Ibrahim Jarif Date: Thu, 13 Dec 2018 14:34:49 +0530 Subject: [PATCH 2/5] fix formatting --- auth/authz.go | 4 ++-- controller/deployments.go | 2 +- controller/work_item_link.go | 4 ++-- login/service.go | 6 +++--- search/search_repository_whitebox_test.go | 22 +++++++++++----------- test/recorder/recorder.go | 4 ++-- 6 files changed, 21 insertions(+), 21 deletions(-) diff --git a/auth/authz.go b/auth/authz.go index 77bbd8538e..dc8ce20c8a 100644 --- a/auth/authz.go +++ b/auth/authz.go @@ -43,7 +43,7 @@ func GetEntitlement(ctx context.Context, entitlementEndpoint string, entitlement if err != nil { log.Error(ctx, map[string]interface{}{ "entitlement_resource": entitlementResource, - "err": err.Error(), + "err": err.Error(), }, "unable to marshal keycloak entitlement resource struct") return nil, errors.NewInternalError(ctx, errs.Wrap(err, "unable to marshal keycloak entitlement resource struct")) } @@ -65,7 +65,7 @@ func GetEntitlement(ctx context.Context, entitlementEndpoint string, entitlement if err != nil { log.Error(ctx, map[string]interface{}{ "entitlement_resource": entitlementResource, - "err": err.Error(), + "err": err.Error(), }, "unable to obtain entitlement resource") return nil, errors.NewInternalError(ctx, errs.Wrap(err, "unable to obtain entitlement resource")) } diff --git a/controller/deployments.go b/controller/deployments.go index 28616cf5af..149978318e 100644 --- a/controller/deployments.go +++ b/controller/deployments.go @@ -83,7 +83,7 @@ func (g *defaultClientGetter) GetAndCheckOSIOClient(ctx context.Context) (Opensh if err != nil { log.Error(ctx, map[string]interface{}{ "FABRIC8_WIT_API_URL": witURLStr, - "err": err, + "err": err, }, "cannot parse FABRIC8_WIT_API_URL: %s", witURLStr) return nil, errs.Wrapf(err, "cannot parse FABRIC8_WIT_API_URL: %s", witURLStr) } diff --git a/controller/work_item_link.go b/controller/work_item_link.go index aadc4912f3..f54bc95b8d 100644 --- a/controller/work_item_link.go +++ b/controller/work_item_link.go @@ -68,8 +68,8 @@ func newWorkItemLinkContext(ctx context.Context, service *goa.Service, appl appl Context: ctx, Service: service, CurrentUserIdentityID: currentUserIdentityID, - DB: db, - LinkFunc: linkFunc, + DB: db, + LinkFunc: linkFunc, } } diff --git a/login/service.go b/login/service.go index 2e2e148512..c1e9bc89fa 100644 --- a/login/service.go +++ b/login/service.go @@ -71,7 +71,7 @@ func (keycloak *KeycloakOAuthProvider) CreateOrUpdateKeycloakUser(accessToken st if err != nil { log.Error(ctx, map[string]interface{}{ "keycloak_identity_id": keycloakIdentityID, - "err": err, + "err": err, }, "unable to query for an identity by ID") return nil, nil, errors.New("Error during querying for an identity by ID " + err.Error()) } @@ -84,7 +84,7 @@ func (keycloak *KeycloakOAuthProvider) CreateOrUpdateKeycloakUser(accessToken st if err != nil { log.Error(ctx, map[string]interface{}{ "keycloak_identity_id": keycloakIdentityID, - "err": err, + "err": err, }, "unable to create user/identity") return nil, nil, errors.New("failed to update user/identity from claims" + err.Error()) } @@ -126,7 +126,7 @@ func (keycloak *KeycloakOAuthProvider) CreateOrUpdateKeycloakUser(accessToken st if err != nil { log.Error(ctx, map[string]interface{}{ "keycloak_identity_id": keycloakIdentityID, - "err": err, + "err": err, }, "unable to create user/identity") return nil, nil, errs.Wrapf(err, "failed to update user/identity from claims") } else if isChanged { diff --git a/search/search_repository_whitebox_test.go b/search/search_repository_whitebox_test.go index 5a07116271..505692c823 100644 --- a/search/search_repository_whitebox_test.go +++ b/search/search_repository_whitebox_test.go @@ -215,18 +215,18 @@ func TestGetSearchQueryFromURLString(t *testing.T) { func TestIsOperator(t *testing.T) { testData := map[string]bool{ - AND: true, - OR: true, - OPTS: false, - "": false, - " ": false, - "foo": false, + AND: true, + OR: true, + OPTS: false, + "": false, + " ": false, + "foo": false, uuid.NewV4().String(): false, - EQ: false, - NE: false, - NOT: false, - IN: false, - SUBSTR: false, + EQ: false, + NE: false, + NOT: false, + IN: false, + SUBSTR: false, } for k, v := range testData { t.Run(k, func(t *testing.T) { diff --git a/test/recorder/recorder.go b/test/recorder/recorder.go index c94d286c18..31c813a8b4 100644 --- a/test/recorder/recorder.go +++ b/test/recorder/recorder.go @@ -86,8 +86,8 @@ func newJWTMatcher(publicKey string) cassette.Matcher { return true } log.Debug(nil, map[string]interface{}{ - "method": cassetteRequest.Method, - "url": cassetteRequest.URL, + "method": cassetteRequest.Method, + "url": cassetteRequest.URL, "cassetteRequest_sub": sub, "http_request_sub": claims["sub"], }, "Authorization header's 'sub' claim doesn't match with the current request") From c60e3b0f28ef8cafedce3457aa2421110ed0d0c3 Mon Sep 17 00:00:00 2001 From: Ibrahim Jarif Date: Thu, 13 Dec 2018 15:54:58 +0530 Subject: [PATCH 3/5] remove unnecessary comment --- .make/test.mk | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.make/test.mk b/.make/test.mk index d693a2c09c..9f8d3c40e9 100644 --- a/.make/test.mk +++ b/.make/test.mk @@ -87,7 +87,7 @@ # mode can be: set, count, or atomic COVERAGE_MODE ?= set -# By default no go test off calls will use the -v switch when running tests. +# By default no go test calls will use the -v switch when running tests. # But if you want you can enable that by setting GO_TEST_VERBOSITY_FLAG=-v GO_TEST_VERBOSITY_FLAG ?= From f7555124e5f096a4a3dfc909b54c5c8724a4527d Mon Sep 17 00:00:00 2001 From: Ibrahim Jarif Date: Fri, 14 Dec 2018 11:49:36 +0530 Subject: [PATCH 4/5] fixup --- Dockerfile.builder | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Dockerfile.builder b/Dockerfile.builder index 768ac83caf..ed47be20ef 100644 --- a/Dockerfile.builder +++ b/Dockerfile.builder @@ -20,11 +20,11 @@ RUN yum install epel-release -y \ && yum clean all RUN if [[ "$USE_GO_VERSION_FROM_WEBSITE" = 1 ]]; then cd /tmp \ - && wget --no-verbose https://dl.google.com/go/go1.10.linux-amd64.tar.gz \ - && echo "b5a64335f1490277b585832d1f6c7f8c6c11206cba5cd3f771dcb87b98ad1a33 go1.10.linux-amd64.tar.gz" > checksum \ + && wget --no-verbose https://dl.google.com/go/go1.11.3.linux-amd64.tar.gz \ + && echo "b5a64335f1490277b585832d1f6c7f8c6c11206cba5cd3f771dcb87b98ad1a33 go1.11.3.linux-amd64.tar.gz" > checksum \ && sha256sum -c checksum \ - && tar -C /usr/local -xzf go1.10.linux-amd64.tar.gz \ - && rm -f go1.10.linux-amd64.tar.gz; \ + && tar -C /usr/local -xzf go1.11.3.linux-amd64.tar.gz \ + && rm -f go1.11.3.linux-amd64.tar.gz; \ fi ENV PATH=$PATH:/usr/local/go/bin From 475cfa9c11bc026c12521b3a7b50006351a3cff4 Mon Sep 17 00:00:00 2001 From: Ibrahim Jarif Date: Tue, 22 Jan 2019 15:17:56 +0530 Subject: [PATCH 5/5] Remove vet off flag from go test command --- .make/docker.mk | 2 +- .make/test.mk | 11 +++++------ Dockerfile.builder | 10 +--------- 3 files changed, 7 insertions(+), 16 deletions(-) diff --git a/.make/docker.mk b/.make/docker.mk index b0b45f00ee..7f1bd6d1ac 100644 --- a/.make/docker.mk +++ b/.make/docker.mk @@ -31,7 +31,7 @@ PACKAGE_PATH=$(GOPATH_IN_CONTAINER)/src/$(PACKAGE_NAME) ## Builds the docker image used to build the software. docker-image-builder: @echo "Building docker image $(DOCKER_IMAGE_CORE)" - docker build --build-arg USE_GO_VERSION_FROM_WEBSITE=$(USE_GO_VERSION_FROM_WEBSITE) -t $(DOCKER_IMAGE_CORE) -f $(CUR_DIR)/Dockerfile.builder $(CUR_DIR) + docker build -t $(DOCKER_IMAGE_CORE) -f $(CUR_DIR)/Dockerfile.builder $(CUR_DIR) .PHONY: docker-image-deploy ## Creates a runnable image using the artifacts from the bin directory. diff --git a/.make/test.mk b/.make/test.mk index 9f8d3c40e9..bddb65b9e8 100644 --- a/.make/test.mk +++ b/.make/test.mk @@ -156,7 +156,7 @@ test-unit: prebuild-check clean-coverage-unit $(COV_PATH_UNIT) test-unit-no-coverage: prebuild-check $(SOURCES) $(call log-info,"Running test: $@") $(eval TEST_PACKAGES:=$(shell go list ./... | grep -v $(ALL_PKGS_EXCLUDE_PATTERN))) - F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_UNIT_TEST=1 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test -vet off $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) + F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_UNIT_TEST=1 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) .PHONY: test-unit-no-coverage-junit test-unit-no-coverage-junit: prebuild-check ${GO_JUNIT_BIN} ${TMP_PATH} @@ -173,12 +173,12 @@ test-integration: prebuild-check clean-coverage-integration migrate-database $(C test-integration-no-coverage: prebuild-check migrate-database $(SOURCES) $(call log-info,"Running test: $@") $(eval TEST_PACKAGES:=$(shell go list ./... | grep -v $(ALL_PKGS_EXCLUDE_PATTERN))) - F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_DATABASE=1 F8_RESOURCE_UNIT_TEST=0 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test -vet off $(GO_TEST_BINARIES_PARALLEL_FLAG) $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) + F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_DATABASE=1 F8_RESOURCE_UNIT_TEST=0 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test $(GO_TEST_BINARIES_PARALLEL_FLAG) $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) test-integration-benchmark: prebuild-check migrate-database $(SOURCES) $(call log-info,"Running benchmarks: $@") $(eval TEST_PACKAGES:=$(shell go list ./... | grep -v $(ALL_PKGS_EXCLUDE_PATTERN))) - F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_DATABASE=1 F8_RESOURCE_UNIT_TEST=0 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test -vet off -run=^$$ -bench=. -cpu 1,2,4 -test.benchmem $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) | grep -E "Bench|allocs" + F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_DATABASE=1 F8_RESOURCE_UNIT_TEST=0 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test -run=^$$ -bench=. -cpu 1,2,4 -test.benchmem $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) | grep -E "Bench|allocs" .PHONY: test-remote ## Runs the remote tests and produces coverage files for each package. @@ -189,13 +189,13 @@ test-remote: prebuild-check clean-coverage-remote $(COV_PATH_REMOTE) test-remote-no-coverage: prebuild-check $(SOURCES) $(call log-info,"Running test: $@") $(eval TEST_PACKAGES:=$(shell go list ./... | grep -v $(ALL_PKGS_EXCLUDE_PATTERN))) - F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_REMOTE=1 F8_RESOURCE_UNIT_TEST=0 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test -vet off $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) + F8_DEVELOPER_MODE_ENABLED=1 F8_RESOURCE_REMOTE=1 F8_RESOURCE_UNIT_TEST=0 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test $(GO_TEST_VERBOSITY_FLAG) $(TEST_PACKAGES) .PHONY: test-migration ## Runs the migration tests and should be executed before running the integration tests ## in order to have a clean database test-migration: prebuild-check migration/sqlbindata.go migration/sqlbindata_test.go - F8_RESOURCE_DATABASE=1 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test -vet off $(GO_TEST_VERBOSITY_FLAG) github.com/fabric8-services/fabric8-wit/migration + F8_RESOURCE_DATABASE=1 F8_LOG_LEVEL=$(F8_LOG_LEVEL) go test $(GO_TEST_VERBOSITY_FLAG) github.com/fabric8-services/fabric8-wit/migration # Starts the WIT server and waits until its running define start-wit @@ -473,7 +473,6 @@ $(eval COV_OUT_FILE := $(COV_DIR)/$(PACKAGE_NAME)/coverage.$(TEST_NAME).mode-$(C go test $(PACKAGE_NAME) \ $(GO_TEST_BINARIES_PARALLEL_FLAG) \ $(GO_TEST_VERBOSITY_FLAG) \ - -vet off \ -coverprofile $(COV_OUT_FILE) \ -coverpkg $(ALL_PKGS_COMMA_SEPARATED) \ -covermode=$(COVERAGE_MODE) \ diff --git a/Dockerfile.builder b/Dockerfile.builder index ed47be20ef..c7a3c5ff9d 100644 --- a/Dockerfile.builder +++ b/Dockerfile.builder @@ -2,14 +2,13 @@ FROM centos:7 LABEL maintainer "Devtools " LABEL author "Konrad Kleine " ENV LANG=en_US.utf8 -ARG USE_GO_VERSION_FROM_WEBSITE=0 # Some packages might seem weird but they are required by the RVM installer. RUN yum install epel-release -y \ && yum --enablerepo=centosplus --enablerepo=epel install -y --quiet \ findutils \ git \ - $(test "$USE_GO_VERSION_FROM_WEBSITE" != 1 && echo "golang") \ + golang \ make \ procps-ng \ tar \ @@ -19,13 +18,6 @@ RUN yum install epel-release -y \ postgresql \ && yum clean all -RUN if [[ "$USE_GO_VERSION_FROM_WEBSITE" = 1 ]]; then cd /tmp \ - && wget --no-verbose https://dl.google.com/go/go1.11.3.linux-amd64.tar.gz \ - && echo "b5a64335f1490277b585832d1f6c7f8c6c11206cba5cd3f771dcb87b98ad1a33 go1.11.3.linux-amd64.tar.gz" > checksum \ - && sha256sum -c checksum \ - && tar -C /usr/local -xzf go1.11.3.linux-amd64.tar.gz \ - && rm -f go1.11.3.linux-amd64.tar.gz; \ - fi ENV PATH=$PATH:/usr/local/go/bin # Get dep for Go package management and make sure the directory has full rwz permissions for non-root users