1
0
mirror of https://gitlab.nic.cz/turris/reforis/foris-js.git synced 2024-12-25 00:11:36 +01:00
foris-js/Makefile

129 lines
2.6 KiB
Makefile
Raw Normal View History

# 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"
2021-01-28 11:43:36 +01:00
DEV_PYTHON=python3
VENV_NAME?=venv
VENV_BIN=$(shell pwd)/$(VENV_NAME)/bin
.PHONY: all
all:
2019-09-10 10:30:42 +02:00
@echo "make install-js"
@echo " Install dependencies"
@echo "make watch-js"
@echo " Compile JS in watch mode."
@echo "make build-js"
@echo " Compile JS."
@echo "make lint-js"
@echo " Run linter"
@echo "make test-js"
@echo " Run tests"
@echo "make create-messages"
@echo " Create locale messages (.pot)."
@echo "make update-messages"
@echo " Update locale messages from .pot file."
2019-09-25 15:43:37 +02:00
@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
2019-09-10 10:30:42 +02:00
install-js: package.json
npm install --save-dev
# Publishing
.PHONY: collect-files
2019-11-01 10:28:28 +01:00
collect-files:
sh scripts/collect_files.sh
.PHONY: pack
2019-11-01 10:28:28 +01:00
pack: collect-files
cd dist && npm pack
.PHONY: publish-beta
2019-11-01 10:28:28 +01:00
publish-beta: collect-files
sh scripts/publish.sh beta
.PHONY: publish-latest
2019-11-01 10:28:28 +01:00
publish-latest: collect-files
sh scripts/publish.sh latest
# Linting
.PHONY: lint
2019-09-25 13:56:08 +02:00
lint:
2019-09-10 10:30:42 +02:00
npm run lint
.PHONY: lint-js-fix
2020-01-09 11:25:29 +01:00
lint-js-fix:
npm run lint:fix
2019-09-10 10:30:42 +02:00
# Testing
.PHONY: test
2019-09-25 13:56:08 +02:00
test:
2019-09-10 10:30:42 +02:00
npm test
2022-02-21 16:06:05 +01:00
.PHONY: test-js-watch
test-js-watch:
cd $(JS_DIR); npm test -- --watch
.PHONY: test-js-update-snapshots
2019-10-24 10:12:39 +02:00
test-js-update-snapshots:
npm test -- -u
2019-09-10 10:30:42 +02:00
# 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
2019-09-25 15:43:37 +02:00
docs:
npm run-script docs
.PHONY: docs-watch
2019-09-25 15:43:37 +02:00
docs-watch:
npm run-script docs:watch
# Other
.PHONY: clean
clean:
rm -rf node_modules dist