mirror of
https://gitlab.nic.cz/turris/reforis/foris-js.git
synced 2024-12-27 00:31:35 +01:00
130 lines
2.7 KiB
Makefile
130 lines
2.7 KiB
Makefile
# Copyright (C) 2019-2022 CZ.NIC z.s.p.o. (https://www.nic.cz/)
|
|
#
|
|
# This is free software, licensed under the GNU General Public License v3.
|
|
# See /LICENSE for more information.
|
|
|
|
PROJECT="Foris JS"
|
|
# Retrieve Foris JS version from package.json
|
|
VERSION= $(shell sed -En "s/.*version['\"]: ['\"](.+)['\"].*/\1/p" package.json)
|
|
COPYRIGHT_HOLDER="CZ.NIC, z.s.p.o. (https://www.nic.cz/)"
|
|
MSGID_BUGS_ADDRESS="tech.support@turris.cz"
|
|
|
|
DEV_PYTHON=python3
|
|
VENV_NAME?=venv
|
|
JS_DIR=js
|
|
VENV_BIN=$(shell pwd)/$(VENV_NAME)/bin
|
|
|
|
.PHONY: all
|
|
all:
|
|
@echo "make install-js"
|
|
@echo " Install npm dependencies."
|
|
@echo "make lint"
|
|
@echo " Run linter on the project."
|
|
@echo "make test"
|
|
@echo " Run tests on the project."
|
|
@echo "make test-js-watch"
|
|
@echo " Run tests on the project in watch mode."
|
|
@echo "make test-js-update-snapshots"
|
|
@echo " Update snapshots."
|
|
@echo "make create-messages"
|
|
@echo " Create locale messages (.pot)."
|
|
@echo "make update-messages"
|
|
@echo " Update locale messages from .pot file."
|
|
@echo "make docs"
|
|
@echo " Build project documentation."
|
|
@echo "make docs-watch"
|
|
@echo " Start styleguidist server."
|
|
@echo "make clean"
|
|
@echo " Remove python artifacts and virtualenv."
|
|
|
|
|
|
# Preparation
|
|
|
|
.PHONY: venv
|
|
venv: $(VENV_NAME)/bin/activate
|
|
$(VENV_NAME)/bin/activate:
|
|
test -d $(VENV_NAME) || $(DEV_PYTHON) -m virtualenv -p $(DEV_PYTHON) $(VENV_NAME)
|
|
$(VENV_BIN)/$(DEV_PYTHON) -m pip install -r requirements.txt
|
|
touch $(VENV_NAME)/bin/activate
|
|
|
|
|
|
# Installation
|
|
|
|
.PHONY: install-js
|
|
install-js: package.json
|
|
npm install --save-dev
|
|
|
|
|
|
# Publishing
|
|
|
|
.PHONY: collect-files
|
|
collect-files:
|
|
sh scripts/collect_files.sh
|
|
|
|
.PHONY: pack
|
|
pack: collect-files
|
|
cd dist && npm pack
|
|
|
|
.PHONY: publish-beta
|
|
publish-beta: collect-files
|
|
sh scripts/publish.sh beta
|
|
|
|
.PHONY: publish-latest
|
|
publish-latest: collect-files
|
|
sh scripts/publish.sh latest
|
|
|
|
|
|
# Linting
|
|
|
|
.PHONY: lint
|
|
lint:
|
|
npm run lint
|
|
|
|
.PHONY: lint-js-fix
|
|
lint-js-fix:
|
|
npm run lint:fix
|
|
|
|
|
|
# Testing
|
|
|
|
.PHONY: test
|
|
test:
|
|
npm test
|
|
|
|
.PHONY: test-js-watch
|
|
test-js-watch:
|
|
cd $(JS_DIR); npm test -- --watch
|
|
|
|
.PHONY: test-js-update-snapshots
|
|
test-js-update-snapshots:
|
|
npm test -- -u
|
|
|
|
|
|
# Translations
|
|
|
|
.PHONY: create-messages
|
|
create-messages: venv
|
|
$(VENV_BIN)/pybabel extract -F babel.cfg -o ./translations/forisjs.pot . --project=$(PROJECT) --version=$(VERSION) --copyright-holder=$(COPYRIGHT_HOLDER) --msgid-bugs-address=$(MSGID_BUGS_ADDRESS)
|
|
|
|
.PHONY: update-messages
|
|
update-messages: venv
|
|
$(VENV_BIN)/pybabel update -i ./translations/forisjs.pot -d ./translations -D forisjs --update-header-comment
|
|
|
|
|
|
# Documentation
|
|
|
|
.PHONY: docs
|
|
docs:
|
|
npm run-script docs
|
|
|
|
.PHONY: docs-watch
|
|
docs-watch:
|
|
npm run-script docs:watch
|
|
|
|
|
|
# Other
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
rm -rf node_modules dist
|