From 34d8fa59916d87922c83a6cf93e3e288d43dadcc Mon Sep 17 00:00:00 2001 From: bnewbold Date: Thu, 11 May 2023 13:22:56 -0700 Subject: [PATCH] top-level Makefile (#597) * top-level Makefile The primary motivation here is the `build-web` command, which calls the yarn build and then also copies over JS files. The Dockerfile does this and I always forget when doing it manually. * build-web: cp bundles in yarn command, not Makefile+Dockerfile --- Dockerfile | 3 --- Makefile | 35 +++++++++++++++++++++++++++++++++++ package.json | 2 +- 3 files changed, 36 insertions(+), 4 deletions(-) create mode 100644 Makefile diff --git a/Dockerfile b/Dockerfile index 95f0ec02..fbd13beb 100644 --- a/Dockerfile +++ b/Dockerfile @@ -35,9 +35,6 @@ RUN \. "$NVM_DIR/nvm.sh" && \ # DEBUG RUN find ./bskyweb/static && find ./web-build/static -# Copy the bundle js files. -RUN cp --verbose ./web-build/static/js/*.* ./bskyweb/static/js/ - # # Generate the bksyweb Go binary. # diff --git a/Makefile b/Makefile new file mode 100644 index 00000000..e93b6357 --- /dev/null +++ b/Makefile @@ -0,0 +1,35 @@ + +SHELL = /bin/bash +.SHELLFLAGS = -o pipefail -c + +.PHONY: help +help: ## Print info about all commands + @echo "Commands:" + @echo + @grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | awk 'BEGIN {FS = ":.*?## "}; {printf " \033[01;32m%-20s\033[0m %s\n", $$1, $$2}' + +.PHONY: build-web +build-web: ## Compile web bundle, copy to bskyweb directory + yarn build-web + +.PHONY: test +test: ## Run all tests + yarn test + +.PHONY: lint +lint: ## Run style checks and verify syntax + yarn run lint + +#.PHONY: fmt +#fmt: ## Run syntax re-formatting +# yarn prettier + +.PHONY: deps +deps: ## Installs dependent libs using 'yarn install' + yarn install --frozen-lockfile + +.PHONY: nvm-setup +nvm-setup: ## Use NVM to install and activate node+yarn + nvm install 18 + nvm use 18 + npm install --global yarn diff --git a/package.json b/package.json index 3f35f9bd..29d0449d 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,7 @@ "android": "expo run:android", "ios": "expo run:ios", "web": "expo start --web", - "build-web": "expo export:web && node ./scripts/post-web-build.js", + "build-web": "expo export:web && node ./scripts/post-web-build.js && cp --verbose ./web-build/static/js/*.* ./bskyweb/static/js/", "start": "expo start --dev-client", "clean-cache": "rm -rf node_modules/.cache/babel-loader/*", "test": "jest --forceExit --testTimeout=20000 --bail",