Browse Source

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
tags/v1.13.0-dev
silverwind 4 years ago
parent
commit
ad4026431b
No account linked to committer's email address
4 changed files with 419 additions and 159 deletions
  1. 39
    16
      .drone.yml
  2. 18
    15
      Makefile
  3. 357
    123
      package-lock.json
  4. 5
    5
      package.json

+ 39
- 16
.drone.yml View File

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:
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:
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

- 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
depends_on: [lint-backend]


--- ---
kind: pipeline kind: pipeline
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
- push - push
- pull_request - pull_request




--- ---
kind: pipeline kind: pipeline
name: testing-arm64 name: testing-arm64
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
os: linux os: linux
arch: arm64 arch: arm64


depends_on:
- compliance

steps: steps:
- name: build-docs - name: build-docs
pull: always pull: always

+ 18
- 15
Makefile View File

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


@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 " - misspell check if a word is written wrong"
@echo " - golangci-lint run golangci-lint linter"
@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"
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)
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)


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)



+ 357
- 123
package-lock.json
File diff suppressed because it is too large
View File


+ 5
- 5
package.json View File

"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",
"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",
"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": [

Loading…
Cancel
Save