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
zio/stable
bnewbold 2023-05-11 13:22:56 -07:00 committed by GitHub
parent d624b7cf58
commit 34d8fa5991
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 36 additions and 4 deletions

View File

@ -35,9 +35,6 @@ RUN \. "$NVM_DIR/nvm.sh" && \
# DEBUG # DEBUG
RUN find ./bskyweb/static && find ./web-build/static 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. # Generate the bksyweb Go binary.
# #

35
Makefile 100644
View File

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

View File

@ -8,7 +8,7 @@
"android": "expo run:android", "android": "expo run:android",
"ios": "expo run:ios", "ios": "expo run:ios",
"web": "expo start --web", "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", "start": "expo start --dev-client",
"clean-cache": "rm -rf node_modules/.cache/babel-loader/*", "clean-cache": "rm -rf node_modules/.cache/babel-loader/*",
"test": "jest --forceExit --testTimeout=20000 --bail", "test": "jest --forceExit --testTimeout=20000 --bail",