Use go run for tool dependencies, require go 1.17 (#18874)
				
					
				
			This ensures the tools only run in the versions we've tested and it also does not polute PATH with those tools so they are truly isolated. This syntax of `go run` requires go 1.17, so the minimum version is set accordingly. Fixes: https://github.com/go-gitea/gitea/issues/18867 Co-authored-by: techknowlogick <techknowlogick@gitea.io>
This commit is contained in:
		
							parent
							
								
									6ab4a96855
								
							
						
					
					
						commit
						fe9626af29
					
				
					 7 changed files with 59 additions and 68 deletions
				
			
		
							
								
								
									
										13
									
								
								.drone.yml
									
										
									
									
									
								
							
							
						
						
									
										13
									
								
								.drone.yml
									
										
									
									
									
								
							| 
						 | 
					@ -49,11 +49,14 @@ steps:
 | 
				
			||||||
      GOSUMDB: sum.golang.org
 | 
					      GOSUMDB: sum.golang.org
 | 
				
			||||||
      TAGS: bindata sqlite sqlite_unlock_notify
 | 
					      TAGS: bindata sqlite sqlite_unlock_notify
 | 
				
			||||||
    depends_on: [deps-backend]
 | 
					    depends_on: [deps-backend]
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - name: deps
 | 
				
			||||||
 | 
					        path: /go
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  - name: lint-backend-windows
 | 
					  - name: lint-backend-windows
 | 
				
			||||||
    image: gitea/test_env:linux-amd64  # https://gitea.com/gitea/test-env
 | 
					    image: gitea/test_env:linux-amd64  # https://gitea.com/gitea/test-env
 | 
				
			||||||
    commands:
 | 
					    commands:
 | 
				
			||||||
      - make golangci-lint vet
 | 
					      - make golangci-lint-windows vet
 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
 | 
					      GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not
 | 
				
			||||||
      GOSUMDB: sum.golang.org
 | 
					      GOSUMDB: sum.golang.org
 | 
				
			||||||
| 
						 | 
					@ -61,6 +64,9 @@ steps:
 | 
				
			||||||
      GOOS: windows
 | 
					      GOOS: windows
 | 
				
			||||||
      GOARCH: amd64
 | 
					      GOARCH: amd64
 | 
				
			||||||
    depends_on: [deps-backend]
 | 
					    depends_on: [deps-backend]
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - name: deps
 | 
				
			||||||
 | 
					        path: /go
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  - name: lint-backend-gogit
 | 
					  - name: lint-backend-gogit
 | 
				
			||||||
    image: gitea/test_env:linux-amd64  # https://gitea.com/gitea/test-env
 | 
					    image: gitea/test_env:linux-amd64  # https://gitea.com/gitea/test-env
 | 
				
			||||||
| 
						 | 
					@ -71,6 +77,9 @@ steps:
 | 
				
			||||||
      GOSUMDB: sum.golang.org
 | 
					      GOSUMDB: sum.golang.org
 | 
				
			||||||
      TAGS: bindata gogit sqlite sqlite_unlock_notify
 | 
					      TAGS: bindata gogit sqlite sqlite_unlock_notify
 | 
				
			||||||
    depends_on: [deps-backend]
 | 
					    depends_on: [deps-backend]
 | 
				
			||||||
 | 
					    volumes:
 | 
				
			||||||
 | 
					      - name: deps
 | 
				
			||||||
 | 
					        path: /go
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  - name: checks-frontend
 | 
					  - name: checks-frontend
 | 
				
			||||||
    image: node:16
 | 
					    image: node:16
 | 
				
			||||||
| 
						 | 
					@ -100,7 +109,7 @@ steps:
 | 
				
			||||||
    depends_on: [test-frontend]
 | 
					    depends_on: [test-frontend]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
  - name: build-backend-no-gcc
 | 
					  - name: build-backend-no-gcc
 | 
				
			||||||
    image: golang:1.16 # this step is kept as the lowest version of golang that we support
 | 
					    image: golang:1.17 # this step is kept as the lowest version of golang that we support
 | 
				
			||||||
    pull: always
 | 
					    pull: always
 | 
				
			||||||
    environment:
 | 
					    environment:
 | 
				
			||||||
      GO111MODULE: on
 | 
					      GO111MODULE: on
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -23,7 +23,7 @@ linters:
 | 
				
			||||||
  fast: false
 | 
					  fast: false
 | 
				
			||||||
 | 
					
 | 
				
			||||||
run:
 | 
					run:
 | 
				
			||||||
  timeout: 3m
 | 
					  timeout: 10m
 | 
				
			||||||
  skip-dirs:
 | 
					  skip-dirs:
 | 
				
			||||||
    - node_modules
 | 
					    - node_modules
 | 
				
			||||||
    - public
 | 
					    - public
 | 
				
			||||||
| 
						 | 
					@ -64,7 +64,7 @@ linters-settings:
 | 
				
			||||||
      - name: modifies-value-receiver
 | 
					      - name: modifies-value-receiver
 | 
				
			||||||
  gofumpt:
 | 
					  gofumpt:
 | 
				
			||||||
    extra-rules: true
 | 
					    extra-rules: true
 | 
				
			||||||
    lang-version: 1.16
 | 
					    lang-version: 1.17
 | 
				
			||||||
 | 
					
 | 
				
			||||||
issues:
 | 
					issues:
 | 
				
			||||||
  exclude-rules:
 | 
					  exclude-rules:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										98
									
								
								Makefile
									
										
									
									
									
								
							
							
						
						
									
										98
									
								
								Makefile
									
										
									
									
									
								
							| 
						 | 
					@ -25,9 +25,18 @@ HAS_GO = $(shell hash $(GO) > /dev/null 2>&1 && echo "GO" || echo "NOGO" )
 | 
				
			||||||
COMMA := ,
 | 
					COMMA := ,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
XGO_VERSION := go-1.17.x
 | 
					XGO_VERSION := go-1.17.x
 | 
				
			||||||
MIN_GO_VERSION := 001016000
 | 
					MIN_GO_VERSION := 001017000
 | 
				
			||||||
MIN_NODE_VERSION := 012017000
 | 
					MIN_NODE_VERSION := 012017000
 | 
				
			||||||
MIN_GOLANGCI_LINT_VERSION := 001044000
 | 
					
 | 
				
			||||||
 | 
					AIR_PACKAGE ?= github.com/cosmtrek/air@bedc18201271882c2be66d216d0e1a275b526ec4
 | 
				
			||||||
 | 
					EDITORCONFIG_CHECKER_PACKAGE ?= github.com/editorconfig-checker/editorconfig-checker/cmd/editorconfig-checker@50adf46752da119dfef66e57be3ce2693ea4aa9c
 | 
				
			||||||
 | 
					ERRCHECK_PACKAGE ?= github.com/kisielk/errcheck@8ddee489636a8311a376fc92e27a6a13c6658344
 | 
				
			||||||
 | 
					GOFUMPT_PACKAGE ?= mvdan.cc/gofumpt@v0.3.0
 | 
				
			||||||
 | 
					GOLANGCI_LINT_PACKAGE ?= github.com/golangci/golangci-lint/cmd/golangci-lint@v1.44.0
 | 
				
			||||||
 | 
					GXZ_PAGAGE ?= github.com/ulikunitz/xz/cmd/gxz@v0.5.10
 | 
				
			||||||
 | 
					MISSPELL_PACKAGE ?= github.com/client9/misspell/cmd/misspell@v0.3.4
 | 
				
			||||||
 | 
					SWAGGER_PACKAGE ?= github.com/go-swagger/go-swagger/cmd/swagger@v0.27.0
 | 
				
			||||||
 | 
					XGO_PACKAGE ?= src.techknowlogick.com/xgo@latest
 | 
				
			||||||
 | 
					
 | 
				
			||||||
DOCKER_IMAGE ?= gitea/gitea
 | 
					DOCKER_IMAGE ?= gitea/gitea
 | 
				
			||||||
DOCKER_TAG ?= latest
 | 
					DOCKER_TAG ?= latest
 | 
				
			||||||
| 
						 | 
					@ -125,8 +134,6 @@ ifeq ($(filter $(TAGS_SPLIT),bindata),bindata)
 | 
				
			||||||
	GO_SOURCES += $(BINDATA_DEST)
 | 
						GO_SOURCES += $(BINDATA_DEST)
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#To update swagger use: GO111MODULE=on go get -u github.com/go-swagger/go-swagger/cmd/swagger
 | 
					 | 
				
			||||||
SWAGGER := $(GO) run github.com/go-swagger/go-swagger/cmd/swagger
 | 
					 | 
				
			||||||
SWAGGER_SPEC := templates/swagger/v1_json.tmpl
 | 
					SWAGGER_SPEC := templates/swagger/v1_json.tmpl
 | 
				
			||||||
SWAGGER_SPEC_S_TMPL := s|"basePath": *"/api/v1"|"basePath": "{{AppSubUrl \| JSEscape \| Safe}}/api/v1"|g
 | 
					SWAGGER_SPEC_S_TMPL := s|"basePath": *"/api/v1"|"basePath": "{{AppSubUrl \| JSEscape \| Safe}}/api/v1"|g
 | 
				
			||||||
SWAGGER_SPEC_S_JSON := s|"basePath": *"{{AppSubUrl \| JSEscape \| Safe}}/api/v1"|"basePath": "/api/v1"|g
 | 
					SWAGGER_SPEC_S_JSON := s|"basePath": *"{{AppSubUrl \| JSEscape \| Safe}}/api/v1"|"basePath": "/api/v1"|g
 | 
				
			||||||
| 
						 | 
					@ -234,11 +241,8 @@ clean:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: fmt
 | 
					.PHONY: fmt
 | 
				
			||||||
fmt:
 | 
					fmt:
 | 
				
			||||||
	@hash gofumpt > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
 | 
					 | 
				
			||||||
		$(GO) install mvdan.cc/gofumpt@v0.3.0; \
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	@echo "Running gitea-fmt (with gofumpt)..."
 | 
						@echo "Running gitea-fmt (with gofumpt)..."
 | 
				
			||||||
	@$(GO) run build/code-batch-process.go gitea-fmt -w '{file-list}'
 | 
						@MISSPELL_PACKAGE=$(MISSPELL_PACKAGE) GOFUMPT_PACKAGE=$(GOFUMPT_PACKAGE) $(GO) run build/code-batch-process.go gitea-fmt -w '{file-list}'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: vet
 | 
					.PHONY: vet
 | 
				
			||||||
vet:
 | 
					vet:
 | 
				
			||||||
| 
						 | 
					@ -257,7 +261,7 @@ endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: generate-swagger
 | 
					.PHONY: generate-swagger
 | 
				
			||||||
generate-swagger:
 | 
					generate-swagger:
 | 
				
			||||||
	$(SWAGGER) generate spec -x "$(SWAGGER_EXCLUDE)" -o './$(SWAGGER_SPEC)'
 | 
						$(GO) run $(SWAGGER_PACKAGE) generate spec -x "$(SWAGGER_EXCLUDE)" -o './$(SWAGGER_SPEC)'
 | 
				
			||||||
	$(SED_INPLACE) '$(SWAGGER_SPEC_S_TMPL)' './$(SWAGGER_SPEC)'
 | 
						$(SED_INPLACE) '$(SWAGGER_SPEC_S_TMPL)' './$(SWAGGER_SPEC)'
 | 
				
			||||||
	$(SED_INPLACE) $(SWAGGER_NEWLINE_COMMAND) './$(SWAGGER_SPEC)'
 | 
						$(SED_INPLACE) $(SWAGGER_NEWLINE_COMMAND) './$(SWAGGER_SPEC)'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -273,24 +277,18 @@ swagger-check: generate-swagger
 | 
				
			||||||
.PHONY: swagger-validate
 | 
					.PHONY: swagger-validate
 | 
				
			||||||
swagger-validate:
 | 
					swagger-validate:
 | 
				
			||||||
	$(SED_INPLACE) '$(SWAGGER_SPEC_S_JSON)' './$(SWAGGER_SPEC)'
 | 
						$(SED_INPLACE) '$(SWAGGER_SPEC_S_JSON)' './$(SWAGGER_SPEC)'
 | 
				
			||||||
	$(SWAGGER) validate './$(SWAGGER_SPEC)'
 | 
						$(GO) run $(SWAGGER_PACKAGE) validate './$(SWAGGER_SPEC)'
 | 
				
			||||||
	$(SED_INPLACE) '$(SWAGGER_SPEC_S_TMPL)' './$(SWAGGER_SPEC)'
 | 
						$(SED_INPLACE) '$(SWAGGER_SPEC_S_TMPL)' './$(SWAGGER_SPEC)'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: errcheck
 | 
					.PHONY: errcheck
 | 
				
			||||||
errcheck:
 | 
					errcheck:
 | 
				
			||||||
	@hash errcheck > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
 | 
					 | 
				
			||||||
		$(GO) install github.com/kisielk/errcheck@8ddee489636a8311a376fc92e27a6a13c6658344; \
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	@echo "Running errcheck..."
 | 
						@echo "Running errcheck..."
 | 
				
			||||||
	@errcheck $(GO_PACKAGES)
 | 
						$(GO) run $(ERRCHECK_PACKAGE) $(GO_PACKAGES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: fmt-check
 | 
					.PHONY: fmt-check
 | 
				
			||||||
fmt-check:
 | 
					fmt-check:
 | 
				
			||||||
	@hash gofumpt > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
 | 
					 | 
				
			||||||
		$(GO) install mvdan.cc/gofumpt@0.3.0; \
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	# get all go files and run gitea-fmt (with gofmt) on them
 | 
						# get all go files and run gitea-fmt (with gofmt) on them
 | 
				
			||||||
	@diff=$$($(GO) run build/code-batch-process.go gitea-fmt -l '{file-list}'); \
 | 
						@diff=$$(MISSPELL_PACKAGE=$(MISSPELL_PACKAGE) GOFUMPT_PACKAGE=$(GOFUMPT_PACKAGE) $(GO) run build/code-batch-process.go gitea-fmt -l '{file-list}'); \
 | 
				
			||||||
	if [ -n "$$diff" ]; then \
 | 
						if [ -n "$$diff" ]; then \
 | 
				
			||||||
		echo "Please run 'make fmt' and commit the result:"; \
 | 
							echo "Please run 'make fmt' and commit the result:"; \
 | 
				
			||||||
		echo "$${diff}"; \
 | 
							echo "$${diff}"; \
 | 
				
			||||||
| 
						 | 
					@ -328,10 +326,7 @@ watch-frontend: node-check node_modules
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: watch-backend
 | 
					.PHONY: watch-backend
 | 
				
			||||||
watch-backend: go-check
 | 
					watch-backend: go-check
 | 
				
			||||||
	@hash air > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
 | 
						$(GO) run $(AIR_PACKAGE) -c .air.toml
 | 
				
			||||||
		$(GO) install github.com/cosmtrek/air@bedc18201271882c2be66d216d0e1a275b526ec4; \
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	air -c .air.toml
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: test
 | 
					.PHONY: test
 | 
				
			||||||
test: test-frontend test-backend
 | 
					test: test-frontend test-backend
 | 
				
			||||||
| 
						 | 
					@ -611,12 +606,9 @@ $(DIST_DIRS):
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: release-windows
 | 
					.PHONY: release-windows
 | 
				
			||||||
release-windows: | $(DIST_DIRS)
 | 
					release-windows: | $(DIST_DIRS)
 | 
				
			||||||
	@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
 | 
						CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) run $(XGO_PACKAGE) -go $(XGO_VERSION) -buildmode exe -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '-linkmode external -extldflags "-static" $(LDFLAGS)' -targets 'windows/*' -out gitea-$(VERSION) .
 | 
				
			||||||
		$(GO) install src.techknowlogick.com/xgo@latest; \
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	CGO_CFLAGS="$(CGO_CFLAGS)" xgo -go $(XGO_VERSION) -buildmode exe -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '-linkmode external -extldflags "-static" $(LDFLAGS)' -targets 'windows/*' -out gitea-$(VERSION) .
 | 
					 | 
				
			||||||
ifeq (,$(findstring gogit,$(TAGS)))
 | 
					ifeq (,$(findstring gogit,$(TAGS)))
 | 
				
			||||||
	CGO_CFLAGS="$(CGO_CFLAGS)" xgo -go $(XGO_VERSION) -buildmode exe -dest $(DIST)/binaries -tags 'netgo osusergo gogit $(TAGS)' -ldflags '-linkmode external -extldflags "-static" $(LDFLAGS)' -targets 'windows/*' -out gitea-$(VERSION)-gogit .
 | 
						CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) run $(XGO_PACKAGE) -go $(XGO_VERSION) -buildmode exe -dest $(DIST)/binaries -tags 'netgo osusergo gogit $(TAGS)' -ldflags '-linkmode external -extldflags "-static" $(LDFLAGS)' -targets 'windows/*' -out gitea-$(VERSION)-gogit .
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
ifeq ($(CI),drone)
 | 
					ifeq ($(CI),drone)
 | 
				
			||||||
	cp /build/* $(DIST)/binaries
 | 
						cp /build/* $(DIST)/binaries
 | 
				
			||||||
| 
						 | 
					@ -624,20 +616,14 @@ endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: release-linux
 | 
					.PHONY: release-linux
 | 
				
			||||||
release-linux: | $(DIST_DIRS)
 | 
					release-linux: | $(DIST_DIRS)
 | 
				
			||||||
	@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
 | 
						CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) run $(XGO_PACKAGE) -go $(XGO_VERSION) -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '-linkmode external -extldflags "-static" $(LDFLAGS)' -targets '$(LINUX_ARCHS)' -out gitea-$(VERSION) .
 | 
				
			||||||
		$(GO) install src.techknowlogick.com/xgo@latest; \
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	CGO_CFLAGS="$(CGO_CFLAGS)" xgo -go $(XGO_VERSION) -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '-linkmode external -extldflags "-static" $(LDFLAGS)' -targets '$(LINUX_ARCHS)' -out gitea-$(VERSION) .
 | 
					 | 
				
			||||||
ifeq ($(CI),drone)
 | 
					ifeq ($(CI),drone)
 | 
				
			||||||
	cp /build/* $(DIST)/binaries
 | 
						cp /build/* $(DIST)/binaries
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: release-darwin
 | 
					.PHONY: release-darwin
 | 
				
			||||||
release-darwin: | $(DIST_DIRS)
 | 
					release-darwin: | $(DIST_DIRS)
 | 
				
			||||||
	@hash xgo > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
 | 
						CGO_CFLAGS="$(CGO_CFLAGS)" $(GO) run $(XGO_PACKAGE) -go $(XGO_VERSION) -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '$(LDFLAGS)' -targets 'darwin-10.12/amd64,darwin-10.12/arm64' -out gitea-$(VERSION) .
 | 
				
			||||||
		$(GO) install src.techknowlogick.com/xgo@latest; \
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	CGO_CFLAGS="$(CGO_CFLAGS)" xgo -go $(XGO_VERSION) -dest $(DIST)/binaries -tags 'netgo osusergo $(TAGS)' -ldflags '$(LDFLAGS)' -targets 'darwin-10.12/amd64,darwin-10.12/arm64' -out gitea-$(VERSION) .
 | 
					 | 
				
			||||||
ifeq ($(CI),drone)
 | 
					ifeq ($(CI),drone)
 | 
				
			||||||
	cp /build/* $(DIST)/binaries
 | 
						cp /build/* $(DIST)/binaries
 | 
				
			||||||
endif
 | 
					endif
 | 
				
			||||||
| 
						 | 
					@ -652,10 +638,7 @@ release-check: | $(DIST_DIRS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: release-compress
 | 
					.PHONY: release-compress
 | 
				
			||||||
release-compress: | $(DIST_DIRS)
 | 
					release-compress: | $(DIST_DIRS)
 | 
				
			||||||
	@hash gxz > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
 | 
						cd $(DIST)/release/; for file in `find . -type f -name "*"`; do echo "compressing $${file}" && $(GO) run $(GXZ_PAGAGE) -k -9 $${file}; done;
 | 
				
			||||||
		$(GO) install github.com/ulikunitz/xz/cmd/gxz@v0.5.10; \
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	cd $(DIST)/release/; for file in `find . -type f -name "*"`; do echo "compressing $${file}" && gxz -k -9 $${file}; done;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: release-sources
 | 
					.PHONY: release-sources
 | 
				
			||||||
release-sources: | $(DIST_DIRS)
 | 
					release-sources: | $(DIST_DIRS)
 | 
				
			||||||
| 
						 | 
					@ -685,6 +668,15 @@ deps-frontend: node_modules
 | 
				
			||||||
.PHONY: deps-backend
 | 
					.PHONY: deps-backend
 | 
				
			||||||
deps-backend:
 | 
					deps-backend:
 | 
				
			||||||
	$(GO) mod download
 | 
						$(GO) mod download
 | 
				
			||||||
 | 
						$(GO) install $(AIR_PACKAGE)
 | 
				
			||||||
 | 
						$(GO) install $(EDITORCONFIG_CHECKER_PACKAGE)
 | 
				
			||||||
 | 
						$(GO) install $(ERRCHECK_PACKAGE)
 | 
				
			||||||
 | 
						$(GO) install $(GOFUMPT_PACKAGE)
 | 
				
			||||||
 | 
						$(GO) install $(GOLANGCI_LINT_PACKAGE)
 | 
				
			||||||
 | 
						$(GO) install $(GXZ_PAGAGE)
 | 
				
			||||||
 | 
						$(GO) install $(MISSPELL_PACKAGE)
 | 
				
			||||||
 | 
						$(GO) install $(SWAGGER_PACKAGE)
 | 
				
			||||||
 | 
						$(GO) install $(XGO_PACKAGE)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
node_modules: package-lock.json
 | 
					node_modules: package-lock.json
 | 
				
			||||||
	npm install --no-save
 | 
						npm install --no-save
 | 
				
			||||||
| 
						 | 
					@ -778,29 +770,19 @@ pr\#%: clean-all
 | 
				
			||||||
	$(GO) run contrib/pr/checkout.go $*
 | 
						$(GO) run contrib/pr/checkout.go $*
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: golangci-lint
 | 
					.PHONY: golangci-lint
 | 
				
			||||||
golangci-lint: golangci-lint-check
 | 
					golangci-lint:
 | 
				
			||||||
	golangci-lint run --timeout 10m
 | 
						$(GO) run $(GOLANGCI_LINT_PACKAGE) run
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: golangci-lint-check
 | 
					# workaround step for the lint-backend-windows CI task because 'go run' can not
 | 
				
			||||||
golangci-lint-check:
 | 
					# have distinct GOOS/GOARCH for its build and run steps
 | 
				
			||||||
	$(eval GOLANGCI_LINT_VERSION := $(shell printf "%03d%03d%03d" $(shell golangci-lint --version | grep -Eo '[0-9]+\.[0-9.]+' | tr '.' ' ');))
 | 
					.PHONY: golangci-lint-windows
 | 
				
			||||||
	$(eval MIN_GOLANGCI_LINT_VER_FMT := $(shell printf "%g.%g.%g" $(shell echo $(MIN_GOLANGCI_LINT_VERSION) | grep -o ...)))
 | 
					golangci-lint-windows:
 | 
				
			||||||
	@hash golangci-lint > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
 | 
						@GOOS= GOARCH= $(GO) install $(GOLANGCI_LINT_PACKAGE)
 | 
				
			||||||
		echo "Downloading golangci-lint v${MIN_GOLANGCI_LINT_VER_FMT}"; \
 | 
						golangci-lint run
 | 
				
			||||||
		export BINARY="golangci-lint"; \
 | 
					 | 
				
			||||||
		curl -sfL "https://raw.githubusercontent.com/golangci/golangci-lint/v${MIN_GOLANGCI_LINT_VER_FMT}/install.sh" | sh -s -- -b $(GOPATH)/bin v$(MIN_GOLANGCI_LINT_VER_FMT); \
 | 
					 | 
				
			||||||
	elif [ "$(GOLANGCI_LINT_VERSION)" -lt "$(MIN_GOLANGCI_LINT_VERSION)" ]; then \
 | 
					 | 
				
			||||||
		echo "Downloading newer version of golangci-lint v${MIN_GOLANGCI_LINT_VER_FMT}"; \
 | 
					 | 
				
			||||||
		export BINARY="golangci-lint"; \
 | 
					 | 
				
			||||||
		curl -sfL "https://raw.githubusercontent.com/golangci/golangci-lint/v${MIN_GOLANGCI_LINT_VER_FMT}/install.sh" | sh -s -- -b $(GOPATH)/bin v$(MIN_GOLANGCI_LINT_VER_FMT); \
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: editorconfig-checker
 | 
					.PHONY: editorconfig-checker
 | 
				
			||||||
editorconfig-checker:
 | 
					editorconfig-checker:
 | 
				
			||||||
	@hash editorconfig-checker > /dev/null 2>&1; if [ $$? -ne 0 ]; then \
 | 
						$(GO) run $(EDITORCONFIG_CHECKER_PACKAGE) templates
 | 
				
			||||||
		$(GO) install github.com/editorconfig-checker/editorconfig-checker/cmd/editorconfig-checker@50adf46752da119dfef66e57be3ce2693ea4aa9c; \
 | 
					 | 
				
			||||||
	fi
 | 
					 | 
				
			||||||
	editorconfig-checker templates
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.PHONY: docker
 | 
					.PHONY: docker
 | 
				
			||||||
docker:
 | 
					docker:
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -73,7 +73,7 @@ or if SQLite support is required:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
The `build` target is split into two sub-targets:
 | 
					The `build` target is split into two sub-targets:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
- `make backend` which requires [Go 1.16](https://golang.org/dl/) or greater.
 | 
					- `make backend` which requires [Go 1.17](https://golang.org/dl/) or greater.
 | 
				
			||||||
- `make frontend` which requires [Node.js LTS](https://nodejs.org/en/download/) or greater and Internet connectivity to download npm dependencies.
 | 
					- `make frontend` which requires [Node.js LTS](https://nodejs.org/en/download/) or greater and Internet connectivity to download npm dependencies.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
When building from the official source tarballs which include pre-built frontend files, the `frontend` target will not be triggered, making it possible to build without Node.js and Internet connectivity.
 | 
					When building from the official source tarballs which include pre-built frontend files, the `frontend` target will not be triggered, making it possible to build without Node.js and Internet connectivity.
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -40,7 +40,7 @@ func passThroughCmd(cmd string, args []string) error {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	c := exec.Cmd{
 | 
						c := exec.Cmd{
 | 
				
			||||||
		Path:   foundCmd,
 | 
							Path:   foundCmd,
 | 
				
			||||||
		Args:   args,
 | 
							Args:   append([]string{cmd}, args...),
 | 
				
			||||||
		Stdin:  os.Stdin,
 | 
							Stdin:  os.Stdin,
 | 
				
			||||||
		Stdout: os.Stdout,
 | 
							Stdout: os.Stdout,
 | 
				
			||||||
		Stderr: os.Stderr,
 | 
							Stderr: os.Stderr,
 | 
				
			||||||
| 
						 | 
					@ -271,9 +271,9 @@ func main() {
 | 
				
			||||||
				log.Print("the -d option is not supported by gitea-fmt")
 | 
									log.Print("the -d option is not supported by gitea-fmt")
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			cmdErrors = append(cmdErrors, giteaFormatGoImports(files, containsString(subArgs, "-l"), containsString(subArgs, "-w")))
 | 
								cmdErrors = append(cmdErrors, giteaFormatGoImports(files, containsString(subArgs, "-l"), containsString(subArgs, "-w")))
 | 
				
			||||||
			cmdErrors = append(cmdErrors, passThroughCmd("gofumpt", append([]string{"-extra", "-lang", "1.16"}, substArgs...)))
 | 
								cmdErrors = append(cmdErrors, passThroughCmd("go", append([]string{"run", os.Getenv("GOFUMPT_PACKAGE"), "-extra", "-lang", "1.17"}, substArgs...)))
 | 
				
			||||||
		case "misspell":
 | 
							case "misspell":
 | 
				
			||||||
			cmdErrors = append(cmdErrors, passThroughCmd("misspell", substArgs))
 | 
								cmdErrors = append(cmdErrors, passThroughCmd("go", append([]string{"run", os.Getenv("MISSPELL_PACKAGE")}, substArgs...)))
 | 
				
			||||||
		default:
 | 
							default:
 | 
				
			||||||
			log.Fatalf("unknown cmd: %s %v", subCmd, subArgs)
 | 
								log.Fatalf("unknown cmd: %s %v", subCmd, subArgs)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -19,7 +19,7 @@ params:
 | 
				
			||||||
  author: The Gitea Authors
 | 
					  author: The Gitea Authors
 | 
				
			||||||
  website: https://docs.gitea.io
 | 
					  website: https://docs.gitea.io
 | 
				
			||||||
  version: 1.16.4
 | 
					  version: 1.16.4
 | 
				
			||||||
  minGoVersion: 1.16
 | 
					  minGoVersion: 1.17
 | 
				
			||||||
  goVersion: 1.17
 | 
					  goVersion: 1.17
 | 
				
			||||||
  minNodeVersion: 12.17
 | 
					  minNodeVersion: 12.17
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
							
								
								
									
										2
									
								
								go.mod
									
										
									
									
									
								
							
							
						
						
									
										2
									
								
								go.mod
									
										
									
									
									
								
							| 
						 | 
					@ -1,6 +1,6 @@
 | 
				
			||||||
module code.gitea.io/gitea
 | 
					module code.gitea.io/gitea
 | 
				
			||||||
 | 
					
 | 
				
			||||||
go 1.16
 | 
					go 1.17
 | 
				
			||||||
 | 
					
 | 
				
			||||||
require (
 | 
					require (
 | 
				
			||||||
	code.gitea.io/gitea-vet v0.2.2-0.20220122151748-48ebc902541b
 | 
						code.gitea.io/gitea-vet v0.2.2-0.20220122151748-48ebc902541b
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue