mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 21:28:11 +09:00 
			
		
		
		
	Add 'make lint', restructure 'compliance' pipeline (#10861)
- Added 'lint', 'lint-frontend', 'lint-backend' targets - Added 'lint-frontend', 'lint-backend' ci steps and restructure the 'compliance' pipeline to have a clear separation between frontend and backend and use parallelism where possible. Also, the main build pipelines now depend on 'compliance' so they will skip if it fails. - Added dependencies on ci steps so they skip when 'compliance' fails - Moved JS linters to devDependencies - Removed deprecated 'js' and 'css' targets
This commit is contained in:
		
							
								
								
									
										55
									
								
								.drone.yml
									
									
									
									
									
								
							
							
						
						
									
										55
									
								
								.drone.yml
									
									
									
									
									
								
							| @@ -11,13 +11,37 @@ workspace: | |||||||
|   path: src/code.gitea.io/gitea |   path: src/code.gitea.io/gitea | ||||||
|  |  | ||||||
| steps: | steps: | ||||||
|   - name: pre-build |   - name: deps-frontend | ||||||
|  |     pull: always | ||||||
|  |     image: node:12 | ||||||
|  |     commands: | ||||||
|  |       - make node_modules | ||||||
|  |  | ||||||
|  |   - name: lint-frontend | ||||||
|  |     pull: always | ||||||
|  |     image: node:12 | ||||||
|  |     commands: | ||||||
|  |       - make lint-frontend | ||||||
|  |     depends_on: [deps-frontend] | ||||||
|  |  | ||||||
|  |   - name: lint-backend | ||||||
|  |     pull: always | ||||||
|  |     image: golang:1.14 | ||||||
|  |     commands: | ||||||
|  |       - make lint-backend | ||||||
|  |     environment: | ||||||
|  |       GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not | ||||||
|  |       GOSUMDB: sum.golang.org | ||||||
|  |       TAGS: bindata sqlite sqlite_unlock_notify | ||||||
|  |  | ||||||
|  |   - name: build-frontend | ||||||
|     pull: always |     pull: always | ||||||
|     image: node:10 # this step is kept at the lowest version of node that we support |     image: node:10 # this step is kept at the lowest version of node that we support | ||||||
|     commands: |     commands: | ||||||
|       - make webpack |       - make frontend | ||||||
|  |     depends_on: [lint-frontend] | ||||||
|  |  | ||||||
|   - name: build-without-gcc |   - name: build-backend-no-gcc | ||||||
|     pull: always |     pull: always | ||||||
|     image: golang:1.12 # this step is kept as the lowest version of golang that we support |     image: golang:1.12 # this step is kept as the lowest version of golang that we support | ||||||
|     environment: |     environment: | ||||||
| @@ -25,8 +49,9 @@ steps: | |||||||
|       GOPROXY: off |       GOPROXY: off | ||||||
|     commands: |     commands: | ||||||
|       - go build -mod=vendor -o gitea_no_gcc # test if build succeeds without the sqlite tag |       - go build -mod=vendor -o gitea_no_gcc # test if build succeeds without the sqlite tag | ||||||
|  |     depends_on: [lint-backend] | ||||||
|  |  | ||||||
|   - name: build-linux-386 |   - name: build-backend-386 | ||||||
|     pull: always |     pull: always | ||||||
|     image: golang:1.14 |     image: golang:1.14 | ||||||
|     environment: |     environment: | ||||||
| @@ -36,16 +61,7 @@ steps: | |||||||
|       GOARCH: 386 |       GOARCH: 386 | ||||||
|     commands: |     commands: | ||||||
|       - go build -mod=vendor -o gitea_linux_386 # test if compatible with 32 bit |       - go build -mod=vendor -o gitea_linux_386 # test if compatible with 32 bit | ||||||
|  |     depends_on: [lint-backend] | ||||||
|   - name: check |  | ||||||
|     pull: always |  | ||||||
|     image: golang:1.14 |  | ||||||
|     commands: |  | ||||||
|       - make clean golangci-lint revive swagger-check swagger-validate test-vendor |  | ||||||
|     environment: |  | ||||||
|       GOPROXY: https://goproxy.cn # proxy.golang.org is blocked in China, this proxy is not |  | ||||||
|       GOSUMDB: sum.golang.org |  | ||||||
|       TAGS: bindata sqlite sqlite_unlock_notify |  | ||||||
|  |  | ||||||
| --- | --- | ||||||
| kind: pipeline | kind: pipeline | ||||||
| @@ -55,6 +71,9 @@ platform: | |||||||
|   os: linux |   os: linux | ||||||
|   arch: amd64 |   arch: amd64 | ||||||
|  |  | ||||||
|  | depends_on: | ||||||
|  |   - compliance | ||||||
|  |  | ||||||
| workspace: | workspace: | ||||||
|   base: /go |   base: /go | ||||||
|   path: src/code.gitea.io/gitea |   path: src/code.gitea.io/gitea | ||||||
| @@ -209,8 +228,6 @@ steps: | |||||||
|         - push |         - push | ||||||
|         - pull_request |         - pull_request | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| --- | --- | ||||||
| kind: pipeline | kind: pipeline | ||||||
| name: testing-arm64 | name: testing-arm64 | ||||||
| @@ -219,6 +236,9 @@ platform: | |||||||
|   os: linux |   os: linux | ||||||
|   arch: arm64 |   arch: arm64 | ||||||
|  |  | ||||||
|  | depends_on: | ||||||
|  |   - compliance | ||||||
|  |  | ||||||
| workspace: | workspace: | ||||||
|   base: /go |   base: /go | ||||||
|   path: src/code.gitea.io/gitea |   path: src/code.gitea.io/gitea | ||||||
| @@ -537,6 +557,9 @@ platform: | |||||||
|   os: linux |   os: linux | ||||||
|   arch: arm64 |   arch: arm64 | ||||||
|  |  | ||||||
|  | depends_on: | ||||||
|  |   - compliance | ||||||
|  |  | ||||||
| steps: | steps: | ||||||
|   - name: build-docs |   - name: build-docs | ||||||
|     pull: always |     pull: always | ||||||
|   | |||||||
							
								
								
									
										33
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										33
									
								
								Makefile
									
									
									
									
									
								
							| @@ -69,7 +69,7 @@ LDFLAGS := $(LDFLAGS) -X "main.MakeVersion=$(MAKE_VERSION)" -X "main.Version=$(G | |||||||
| GO_PACKAGES ?= $(filter-out code.gitea.io/gitea/integrations/migration-test,$(filter-out code.gitea.io/gitea/integrations,$(shell GO111MODULE=on $(GO) list -mod=vendor ./... | grep -v /vendor/))) | GO_PACKAGES ?= $(filter-out code.gitea.io/gitea/integrations/migration-test,$(filter-out code.gitea.io/gitea/integrations,$(shell GO111MODULE=on $(GO) list -mod=vendor ./... | grep -v /vendor/))) | ||||||
|  |  | ||||||
| WEBPACK_SOURCES := $(shell find web_src/js web_src/less -type f) | WEBPACK_SOURCES := $(shell find web_src/js web_src/less -type f) | ||||||
| WEBPACK_CONFIGS := webpack.config.js .eslintrc .stylelintrc | WEBPACK_CONFIGS := webpack.config.js | ||||||
| WEBPACK_DEST := public/js/index.js public/css/index.css | WEBPACK_DEST := public/js/index.js public/css/index.css | ||||||
| WEBPACK_DEST_DIRS := public/js public/css | WEBPACK_DEST_DIRS := public/js public/css | ||||||
|  |  | ||||||
| @@ -133,14 +133,18 @@ help: | |||||||
| 	@echo " - backend           build backend files" | 	@echo " - backend           build backend files" | ||||||
| 	@echo " - clean             delete backend and integration files" | 	@echo " - clean             delete backend and integration files" | ||||||
| 	@echo " - clean-all         delete backend, frontend and integration files" | 	@echo " - clean-all         delete backend, frontend and integration files" | ||||||
|  | 	@echo " - lint              lint everything" | ||||||
|  | 	@echo " - lint-frontend     lint frontend files" | ||||||
|  | 	@echo " - lint-backend      lint backend files" | ||||||
| 	@echo " - webpack           build webpack files" | 	@echo " - webpack           build webpack files" | ||||||
| 	@echo " - fomantic          build fomantic files" | 	@echo " - fomantic          build fomantic files" | ||||||
| 	@echo " - generate          run \"go generate\"" | 	@echo " - generate          run \"go generate\"" | ||||||
| 	@echo " - fmt               format the Go code" | 	@echo " - fmt               format the Go code" | ||||||
| 	@echo " - generate-swagger  generate the swagger spec from code comments" | 	@echo " - generate-swagger  generate the swagger spec from code comments" | ||||||
| 	@echo " - swagger-validate  check if the swagger spec is valid" | 	@echo " - swagger-validate  check if the swagger spec is valid" | ||||||
| 	@echo " - revive            run code linter revive" | 	@echo " - golangci-lint     run golangci-lint linter" | ||||||
| 	@echo " - misspell          check if a word is written wrong" | 	@echo " - revive            run revive linter" | ||||||
|  | 	@echo " - misspell          check for misspellings" | ||||||
| 	@echo " - vet               examines Go source code and reports suspicious constructs" | 	@echo " - vet               examines Go source code and reports suspicious constructs" | ||||||
| 	@echo " - test              run unit test" | 	@echo " - test              run unit test" | ||||||
| 	@echo " - test-sqlite       run integration test for sqlite" | 	@echo " - test-sqlite       run integration test for sqlite" | ||||||
| @@ -259,6 +263,17 @@ fmt-check: | |||||||
| 		exit 1; \ | 		exit 1; \ | ||||||
| 	fi; | 	fi; | ||||||
|  |  | ||||||
|  | .PHONY: lint | ||||||
|  | lint: lint-backend lint-frontend | ||||||
|  |  | ||||||
|  | .PHONY: lint-backend | ||||||
|  | lint-backend: golangci-lint revive swagger-check swagger-validate test-vendor | ||||||
|  |  | ||||||
|  | .PHONY: lint-frontend | ||||||
|  | lint-frontend: node_modules | ||||||
|  | 	npx eslint web_src/js webpack.config.js | ||||||
|  | 	npx stylelint web_src/less | ||||||
|  |  | ||||||
| .PHONY: test | .PHONY: test | ||||||
| test: | test: | ||||||
| 	GO111MODULE=on $(GO) test $(GOTESTFLAGS) -mod=vendor -tags='sqlite sqlite_unlock_notify' $(GO_PACKAGES) | 	GO111MODULE=on $(GO) test $(GOTESTFLAGS) -mod=vendor -tags='sqlite sqlite_unlock_notify' $(GO_PACKAGES) | ||||||
| @@ -540,16 +555,6 @@ npm-update: node-check | node_modules | |||||||
| 	rm -rf node_modules package-lock.json | 	rm -rf node_modules package-lock.json | ||||||
| 	npm install --package-lock | 	npm install --package-lock | ||||||
|  |  | ||||||
| .PHONY: js |  | ||||||
| js: |  | ||||||
| 	@echo "'make js' is deprecated, please use 'make webpack'" |  | ||||||
| 	$(MAKE) webpack |  | ||||||
|  |  | ||||||
| .PHONY: css |  | ||||||
| css: |  | ||||||
| 	@echo "'make css' is deprecated, please use 'make webpack'" |  | ||||||
| 	$(MAKE) webpack |  | ||||||
|  |  | ||||||
| .PHONY: fomantic | .PHONY: fomantic | ||||||
| fomantic: $(FOMANTIC_DEST) | fomantic: $(FOMANTIC_DEST) | ||||||
|  |  | ||||||
| @@ -564,8 +569,6 @@ $(FOMANTIC_DEST): $(FOMANTIC_CONFIGS) package-lock.json | node_modules | |||||||
| webpack: $(WEBPACK_DEST) | webpack: $(WEBPACK_DEST) | ||||||
|  |  | ||||||
| $(WEBPACK_DEST): $(WEBPACK_SOURCES) $(WEBPACK_CONFIGS) package-lock.json | node_modules | $(WEBPACK_DEST): $(WEBPACK_SOURCES) $(WEBPACK_CONFIGS) package-lock.json | node_modules | ||||||
| 	npx eslint web_src/js webpack.config.js |  | ||||||
| 	npx stylelint web_src/less |  | ||||||
| 	npx webpack --hide-modules --display-entrypoints=false | 	npx webpack --hide-modules --display-entrypoints=false | ||||||
| 	@touch $(WEBPACK_DEST) | 	@touch $(WEBPACK_DEST) | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										480
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										480
									
								
								package-lock.json
									
									
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										10
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										10
									
								
								package.json
									
									
									
									
									
								
							| @@ -18,9 +18,6 @@ | |||||||
|     "css-loader": "3.4.2", |     "css-loader": "3.4.2", | ||||||
|     "cssnano": "4.1.10", |     "cssnano": "4.1.10", | ||||||
|     "dropzone": "5.7.0", |     "dropzone": "5.7.0", | ||||||
|     "eslint": "6.8.0", |  | ||||||
|     "eslint-config-airbnb-base": "14.1.0", |  | ||||||
|     "eslint-plugin-import": "2.20.1", |  | ||||||
|     "fast-glob": "3.2.2", |     "fast-glob": "3.2.2", | ||||||
|     "fomantic-ui": "2.8.4", |     "fomantic-ui": "2.8.4", | ||||||
|     "highlight.js": "9.18.1", |     "highlight.js": "9.18.1", | ||||||
| @@ -35,8 +32,6 @@ | |||||||
|     "postcss-loader": "3.0.0", |     "postcss-loader": "3.0.0", | ||||||
|     "postcss-preset-env": "6.7.0", |     "postcss-preset-env": "6.7.0", | ||||||
|     "postcss-safe-parser": "4.0.2", |     "postcss-safe-parser": "4.0.2", | ||||||
|     "stylelint": "13.2.1", |  | ||||||
|     "stylelint-config-standard": "20.0.0", |  | ||||||
|     "svg-sprite-loader": "4.2.1", |     "svg-sprite-loader": "4.2.1", | ||||||
|     "svgo": "1.3.2", |     "svgo": "1.3.2", | ||||||
|     "svgo-loader": "2.2.1", |     "svgo-loader": "2.2.1", | ||||||
| @@ -52,6 +47,11 @@ | |||||||
|     "webpack-fix-style-only-entries": "0.4.0" |     "webpack-fix-style-only-entries": "0.4.0" | ||||||
|   }, |   }, | ||||||
|   "devDependencies": { |   "devDependencies": { | ||||||
|  |     "eslint": "6.8.0", | ||||||
|  |     "eslint-config-airbnb-base": "14.1.0", | ||||||
|  |     "eslint-plugin-import": "2.20.1", | ||||||
|  |     "stylelint": "13.2.1", | ||||||
|  |     "stylelint-config-standard": "20.0.0", | ||||||
|     "updates": "10.2.4" |     "updates": "10.2.4" | ||||||
|   }, |   }, | ||||||
|   "browserslist": [ |   "browserslist": [ | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user