mirror of
https://github.com/hasura/graphql-engine.git
synced 2024-08-14 21:20:46 +03:00
make: Add make targets for formatting and linting frontend code.
This adds linting and formatting of frontend code when running `make lint`, `make format`, or any of the variations. I am adding this because I didn't know how to check the code and so I had to wait for CI to fail, which I found irritating. In order to make this reasonable, I factored out `make` targets for building *frontend/node_modules*, so I could depend on them. PR-URL: https://github.com/hasura/graphql-engine-mono/pull/8463 GitOrigin-RevId: 71882ec90490efbf87d428d08eaec2ae849a0a36
This commit is contained in:
parent
14fcaafa43
commit
17855bf65a
1
Makefile
1
Makefile
@ -9,6 +9,7 @@ help:
|
|||||||
|
|
||||||
include ./scripts/make/build.mk
|
include ./scripts/make/build.mk
|
||||||
include ./scripts/make/ci.mk
|
include ./scripts/make/ci.mk
|
||||||
|
include ./scripts/make/frontend.mk
|
||||||
include ./scripts/make/ghcid.mk
|
include ./scripts/make/ghcid.mk
|
||||||
include ./scripts/make/legacy-tests.mk
|
include ./scripts/make/legacy-tests.mk
|
||||||
include ./scripts/make/lint.mk
|
include ./scripts/make/lint.mk
|
||||||
|
@ -9,11 +9,6 @@ GENERATED_CABAL_FILES = $(foreach package_file,$(PACKAGE_YAML_FILES),$(wildcard
|
|||||||
build-all: $(GENERATED_CABAL_FILES)
|
build-all: $(GENERATED_CABAL_FILES)
|
||||||
cabal build all --enable-tests --enable-benchmarks
|
cabal build all --enable-tests --enable-benchmarks
|
||||||
|
|
||||||
.PHONY: build-console-assets
|
|
||||||
## build-console-assets
|
|
||||||
build-console-assets:
|
|
||||||
cd frontend && npm install && npm run server-build:ce
|
|
||||||
|
|
||||||
.PHONY: build
|
.PHONY: build
|
||||||
## build: build non-pro graphql executable
|
## build: build non-pro graphql executable
|
||||||
build: $(GENERATED_CABAL_FILES)
|
build: $(GENERATED_CABAL_FILES)
|
||||||
|
12
scripts/make/frontend.mk
Normal file
12
scripts/make/frontend.mk
Normal file
@ -0,0 +1,12 @@
|
|||||||
|
.PHONY: build-console-assets
|
||||||
|
## build-console-assets
|
||||||
|
build-console-assets: frontend/node_modules
|
||||||
|
cd frontend && npm run server-build:ce
|
||||||
|
|
||||||
|
# Install node_modules if package-lock.json changes
|
||||||
|
frontend/node_modules: frontend/package-lock.json
|
||||||
|
cd frontend && npm install && touch node_modules
|
||||||
|
|
||||||
|
# Cleanly install node_modules if package.json changes
|
||||||
|
frontend/package-lock.json: frontend/package.json
|
||||||
|
cd frontend && npm ci
|
@ -83,17 +83,41 @@ check-format-nix:
|
|||||||
echo "$(NIX_FMT) is not installed; skipping"; \
|
echo "$(NIX_FMT) is not installed; skipping"; \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
.PHONY: format-frontend
|
||||||
|
## format-frontend: auto-format all frontend code
|
||||||
|
format-frontend: frontend/node_modules
|
||||||
|
@echo 'running nx format:write'
|
||||||
|
cd frontend && npm run format:write:all
|
||||||
|
|
||||||
|
.PHONY: format-frontend-changed
|
||||||
|
## format-frontend-changed: auto-format all frontend code (changed files only)
|
||||||
|
format-frontend-changed: frontend/node_modules
|
||||||
|
@echo 'running nx format:write'
|
||||||
|
cd frontend && npm run format:write
|
||||||
|
|
||||||
|
.PHONY: check-format-frontend
|
||||||
|
## check-format-frontend: check frontend code
|
||||||
|
check-format-frontend: frontend/node_modules
|
||||||
|
@echo 'running nx format:check'
|
||||||
|
cd frontend && npx nx format:check
|
||||||
|
|
||||||
|
.PHONY: check-format-frontend-changed
|
||||||
|
## check-format-frontend-changed: check frontend code (changed files only)
|
||||||
|
check-format-frontend-changed: frontend/node_modules
|
||||||
|
@echo 'running nx format:check'
|
||||||
|
cd frontend && npx nx format:check --base=origin/main
|
||||||
|
|
||||||
.PHONY: format
|
.PHONY: format
|
||||||
format: format-hs format-nix
|
format: format-hs format-nix format-frontend
|
||||||
|
|
||||||
.PHONY: format-changed
|
.PHONY: format-changed
|
||||||
format-changed: format-hs-changed format-nix
|
format-changed: format-hs-changed format-nix format-frontend-changed
|
||||||
|
|
||||||
.PHONY: check-format
|
.PHONY: check-format
|
||||||
check-format: check-format-hs check-format-nix
|
check-format: check-format-hs check-format-nix check-format-frontend
|
||||||
|
|
||||||
.PHONY: check-format-changed
|
.PHONY: check-format-changed
|
||||||
check-format-changed: check-format-hs-changed check-format-nix
|
check-format-changed: check-format-hs-changed check-format-nix check-format-frontend-changed
|
||||||
|
|
||||||
.PHONY: lint-hs
|
.PHONY: lint-hs
|
||||||
## lint-hs: lint Haskell code using `hlint`
|
## lint-hs: lint Haskell code using `hlint`
|
||||||
@ -135,8 +159,22 @@ lint-shell-changed:
|
|||||||
$(SHELLCHECK) $(CHANGED_SHELL_FILES); \
|
$(SHELLCHECK) $(CHANGED_SHELL_FILES); \
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
.PHONY: lint-frontend
|
||||||
|
## lint-frontend: lint all frontend code
|
||||||
|
lint-frontend: frontend/node_modules
|
||||||
|
@echo 'running nx lint'
|
||||||
|
cd frontend && npm run lint
|
||||||
|
|
||||||
|
.PHONY: lint-frontend-changed
|
||||||
|
## lint-frontend-changed: lint all frontend code
|
||||||
|
lint-frontend-changed: frontend/node_modules
|
||||||
|
@echo 'running nx lint'
|
||||||
|
cd frontend && npx nx affected --target=lint --fix --parallel=3
|
||||||
|
|
||||||
.PHONY: lint
|
.PHONY: lint
|
||||||
lint: lint-hs lint-shell check-format
|
## lint: run all lint commands, and check formatting
|
||||||
|
lint: lint-hs lint-shell lint-frontend check-format
|
||||||
|
|
||||||
.PHONY: lint-changed
|
.PHONY: lint-changed
|
||||||
lint-changed: lint-hs-changed lint-shell-changed check-format-changed
|
## lint: run all lint commands, and check formatting (changed files only)
|
||||||
|
lint-changed: lint-hs-changed lint-shell-changed lint-frontend-changed check-format-changed
|
||||||
|
Loading…
Reference in New Issue
Block a user