157 lines
3.8 KiB
Makefile
157 lines
3.8 KiB
Makefile
NODE=$(shell which node)
|
|
NPM=$(shell which npm)
|
|
YARN=$(shell which yarn)
|
|
JQ=$(shell which jq)
|
|
|
|
BABEL=./node_modules/.bin/babel
|
|
COVERALLS=./node_modules/coveralls/bin/coveralls.js
|
|
REMOTE="git@github.com:reactjs/react-modal"
|
|
CURRENT_VERSION:=$(shell jq ".version" package.json)
|
|
COVERAGE?=true
|
|
|
|
help: info
|
|
@echo
|
|
@echo "Current version: $(CURRENT_VERSION)"
|
|
@echo
|
|
@echo "List of commands:"
|
|
@echo
|
|
@echo " make info - display node, npm and yarn versions..."
|
|
@echo " make deps - install all dependencies."
|
|
@echo " make serve - start the server."
|
|
@echo " make tests - run tests."
|
|
@echo " make tests-single-run - run tests (used by continuous integration)."
|
|
@echo " make coveralls - show coveralls."
|
|
@echo " make lint - run lint."
|
|
@echo " make docs - build and serve the docs."
|
|
@echo " make build - build project artifacts."
|
|
@echo " make publish - build and publish version on npm."
|
|
@echo " make publish-docs - build the docs and publish to gh-pages."
|
|
@echo " make publish-all - publish version and docs."
|
|
|
|
info:
|
|
@echo node version: `$(NODE) --version` "($(NODE))"
|
|
@echo npm version: `$(NPM) --version` "($(NPM))"
|
|
@echo yarn version: `$(YARN) --version` "($(YARN))"
|
|
@echo jq version: `$(JQ) --version` "($(JQ))"
|
|
|
|
deps: deps-project deps-docs
|
|
|
|
deps-project:
|
|
@[[ ! -z "$(YARN)" ]] && $(YARN) install || $(NPM) install
|
|
|
|
deps-docs:
|
|
@gitbook install
|
|
|
|
# Rules for development
|
|
|
|
serve:
|
|
@npm start
|
|
|
|
tests:
|
|
@npm run test
|
|
|
|
tests-single-run:
|
|
@npm run test -- --single-run
|
|
|
|
coveralls:
|
|
-cat ./coverage/lcov.info | ./node_modules/coveralls/bin/coveralls.js 2>/dev/null
|
|
|
|
tests-ci: clean lint
|
|
@COVERAGE=$(COVERAGE) make tests-single-run coveralls
|
|
|
|
lint:
|
|
@npm run lint
|
|
|
|
docs: build-docs
|
|
gitbook serve
|
|
|
|
# Rules for build and publish
|
|
|
|
check-working-tree:
|
|
@sh ./scripts/repo_status
|
|
|
|
.version:
|
|
@echo "[Updating react-modal version]"
|
|
@sh ./scripts/version $(CURRENT_VERSION)
|
|
@$(JQ) '.version' package.json | cut -d\" -f2 > .version
|
|
|
|
.branch:
|
|
@echo "[Release from branch]"
|
|
@git branch | grep '^*' | awk '{ print $$2 }' > .branch
|
|
@echo "Current branch: `cat .branch`"
|
|
|
|
changelog:
|
|
@echo "[Updating CHANGELOG.md $(CURRENT_VERSION) > `cat .version`]"
|
|
@python3 ./scripts/changelog.py v$(CURRENT_VERSION) v`cat .version` > .changelog_update
|
|
@cat .changelog_update CHANGELOG.md > tmp && mv tmp CHANGELOG.md
|
|
|
|
compile:
|
|
@echo "[Compiling source]"
|
|
$(BABEL) src --out-dir lib
|
|
|
|
build: compile
|
|
@echo "[Building dists]"
|
|
@./node_modules/.bin/webpack --config webpack.dist.config.js
|
|
|
|
release-commit:
|
|
git commit --allow-empty -m "Release v`cat .version`."
|
|
@git add .
|
|
@git commit --amend -m "`git log -1 --format=%s`"
|
|
|
|
release-tag:
|
|
git tag "v`cat .version`"
|
|
|
|
publish-version: release-commit release-tag
|
|
@echo "[Publishing]"
|
|
git push $(REMOTE) "`cat .branch`" "v`cat .version`"
|
|
npm publish
|
|
|
|
pre-publish: clean .branch .version changelog
|
|
pre-build: deps-project tests-ci build
|
|
|
|
publish: check-working-tree pre-publish pre-build publish-version publish-finished
|
|
|
|
publish-finished: clean
|
|
|
|
# Rules for documentation
|
|
|
|
init-docs-repo:
|
|
@mkdir _book
|
|
|
|
build-docs:
|
|
@echo "[Building documentation]"
|
|
@rm -rf _book
|
|
@gitbook build -g reactjs/react-modal
|
|
|
|
pre-publish-docs: clean-docs init-docs-repo deps-docs
|
|
|
|
publish-docs: clean pre-publish-docs build-docs
|
|
@echo "[Publishing docs]"
|
|
@make -C _book -f ../Makefile _publish-docs
|
|
|
|
_publish-docs:
|
|
git init .
|
|
git commit --allow-empty -m 'update book'
|
|
git checkout -b gh-pages
|
|
touch .nojekyll
|
|
git add .
|
|
git commit -am 'update book'
|
|
git push git@github.com:reactjs/react-modal gh-pages --force
|
|
|
|
# Run for a full publish
|
|
|
|
publish-all: publish publish-docs
|
|
|
|
# Rules for clean up
|
|
|
|
clean-docs:
|
|
@rm -rf _book
|
|
|
|
clean-coverage:
|
|
@rm -rf ./coverage/*
|
|
|
|
clean-build:
|
|
@rm -rf .version .branch lib/*
|
|
|
|
clean: clean-build clean-docs clean-coverage
|