From d285b5d35a44bf9fde0682532aeef9550f78cf83 Mon Sep 17 00:00:00 2001
From: silverwind <me@silverwind.io>
Date: Sun, 16 Aug 2020 23:43:09 +0200
Subject: [PATCH] Add 'checks' Make and CI tasks (#12352)

* Add 'checks' Make and CI tasks

Introduce new "checks" targets that perform tasks that we've been piling
onto the linting tasks. This will make the linter tasks faster and
hopefully encourage some users to use them locally.

* add checks to --help

Co-authored-by: techknowlogick <techknowlogick@gitea.io>
---
 .drone.yml | 20 +++++++++++++++++---
 Makefile   | 26 +++++++++++++++++++-------
 2 files changed, 36 insertions(+), 10 deletions(-)

diff --git a/.drone.yml b/.drone.yml
index 107cbf59ac..fd32ad829c 100644
--- a/.drone.yml
+++ b/.drone.yml
@@ -34,6 +34,20 @@ steps:
       GOSUMDB: sum.golang.org
       TAGS: bindata sqlite sqlite_unlock_notify
 
+  - name: checks-frontend
+    pull: always
+    image: node:12
+    commands:
+      - make checks-frontend
+    depends_on: [deps-frontend]
+
+  - name: checks-backend
+    pull: always
+    image: golang:1.14
+    commands:
+      - make checks-backend
+    depends_on: [lint-backend]
+
   - name: build-frontend
     pull: always
     image: node:10 # this step is kept at the lowest version of node that we support
@@ -49,7 +63,7 @@ steps:
       GOPROXY: off
     commands:
       - go build -mod=vendor -o gitea_no_gcc # test if build succeeds without the sqlite tag
-    depends_on: [lint-backend]
+    depends_on: [checks-backend]
 
   - name: build-backend-arm64
     pull: always
@@ -63,7 +77,7 @@ steps:
     commands:
       - make backend # test cross compile
       - rm ./gitea # clean
-    depends_on: [lint-backend]
+    depends_on: [checks-backend]
 
   - name: build-backend-386
     pull: always
@@ -75,7 +89,7 @@ steps:
       GOARCH: 386
     commands:
       - go build -mod=vendor -o gitea_linux_386 # test if compatible with 32 bit
-    depends_on: [lint-backend]
+    depends_on: [checks-backend]
 
 ---
 kind: pipeline
diff --git a/Makefile b/Makefile
index e395d942b6..d022f5cab2 100644
--- a/Makefile
+++ b/Makefile
@@ -154,13 +154,16 @@ help:
 	@echo " - build                            build everything"
 	@echo " - frontend                         build frontend files"
 	@echo " - backend                          build backend files"
+	@echo " - watch-frontend                   watch frontend files and continuously rebuild"
+	@echo " - watch-backend                    watch backend files and continuously rebuild"
 	@echo " - clean                            delete backend 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 " - watch-frontend                   watch frontend files and continuously rebuild"
-	@echo " - watch-backend                    watch backend files and continuously rebuild"
+	@echo " - check                            run various consistency checks"
+	@echo " - check-frontend                   check frontend files"
+	@echo " - check-backend                    check backend files"
 	@echo " - webpack                          build webpack files"
 	@echo " - svg                              build svg files"
 	@echo " - fomantic                         build fomantic files"
@@ -290,17 +293,26 @@ fmt-check:
 		exit 1; \
 	fi;
 
-.PHONY: lint
-lint: lint-backend lint-frontend
+.PHONY: checks
+checks: checks-frontend checks-backend
 
-.PHONY: lint-backend
-lint-backend: golangci-lint revive vet swagger-check swagger-validate test-vendor
+.PHONY: checks-frontend
+checks-frontend: svg-check
+
+.PHONY: checks-backend
+checks-backend: misspell-check test-vendor swagger-check swagger-validate
+
+.PHONY: lint
+lint: lint-frontend lint-backend
 
 .PHONY: lint-frontend
-lint-frontend: node_modules svg-check
+lint-frontend: node_modules
 	npx eslint web_src/js build webpack.config.js
 	npx stylelint web_src/less
 
+.PHONY: lint-backend
+lint-backend: golangci-lint revive vet
+
 .PHONY: watch-frontend
 watch-frontend: node-check $(FOMANTIC_DEST) node_modules
 	rm -rf $(WEBPACK_DEST_ENTRIES)