mirror of
https://github.com/scratchfoundation/scratch-www.git
synced 2024-11-30 02:56:20 -05:00
85 lines
1.8 KiB
Makefile
85 lines
1.8 KiB
Makefile
ESLINT=./node_modules/.bin/eslint
|
|
NODE=node
|
|
SASSLINT=./node_modules/.bin/sass-lint -v
|
|
TAP=./node_modules/.bin/tap
|
|
WATCH=./node_modules/.bin/watch
|
|
WEBPACK=./node_modules/.bin/webpack
|
|
GIT_VERSION=$(shell git rev-parse --verify --short=5 HEAD 2> /dev/null)
|
|
GIT_VERSION?=$(WWW_VERSION)
|
|
GIT_MESSAGE=$(shell git log -1 --pretty=%s 2> /dev/null)
|
|
|
|
# ------------------------------------
|
|
|
|
build:
|
|
@make clean
|
|
@make translations
|
|
@make webpack
|
|
@make tag
|
|
|
|
clean:
|
|
rm -rf ./build
|
|
mkdir -p build
|
|
mkdir -p locales
|
|
|
|
|
|
deploy:
|
|
ifeq ($(shell grep "artifact: deploy.zip" .elasticbeanstalk/config.yml 2> /dev/null), )
|
|
@echo "You must configure elasticbeanstalk to deploy an artifact."
|
|
@echo "Add the following to your .elasticbeanstalk/config.yml"
|
|
@echo "deploy:\n artifact: deploy.zip"
|
|
else
|
|
@make build
|
|
git archive -o deploy.zip HEAD
|
|
zip -rv deploy.zip build
|
|
eb deploy -l $(GIT_VERSION) -m "$(GIT_MESSAGE)"
|
|
endif
|
|
|
|
tag:
|
|
echo $(GIT_VERSION) > ./build/version.txt
|
|
|
|
translations:
|
|
./lib/bin/build-locales locales/translations.json
|
|
|
|
webpack:
|
|
$(WEBPACK) --bail
|
|
|
|
# ------------------------------------
|
|
|
|
start:
|
|
$(NODE) ./server/index.js
|
|
|
|
# ------------------------------------
|
|
|
|
test:
|
|
@make lint
|
|
@make build
|
|
@echo ""
|
|
@make unit
|
|
@echo ""
|
|
@make functional
|
|
@echo ""
|
|
|
|
lint:
|
|
$(ESLINT) ./*.js
|
|
$(ESLINT) ./server/*.js
|
|
$(ESLINT) ./src/*.js
|
|
$(ESLINT) ./src/*.jsx
|
|
$(ESLINT) ./src/mixins/*.jsx
|
|
$(ESLINT) ./src/views/**/*.jsx
|
|
$(ESLINT) ./src/components/**/*.jsx
|
|
$(SASSLINT) ./src/*.scss
|
|
$(SASSLINT) ./src/views/**/*.scss
|
|
$(SASSLINT) ./src/components/**/*.scss
|
|
|
|
unit:
|
|
$(TAP) ./test/unit/*.js
|
|
|
|
functional:
|
|
$(TAP) ./test/functional/*.js
|
|
|
|
integration:
|
|
$(TAP) ./test/integration/*.js
|
|
|
|
# ------------------------------------
|
|
|
|
.PHONY: build clean deploy static tag translations webpack watch stop start test lint
|