npm-install-%: ## install specified % npm package npm install $* --save-dev git add package.json transifex_resource = frontend-app-gradebook transifex_langs = "ar,fr,es_419,zh_CN" transifex_utils = ./node_modules/.bin/transifex-utils.js i18n = ./src/i18n transifex_input = $(i18n)/transifex_input.json tx_url1 = https://www.transifex.com/api/2/project/edx-platform/resource/$(transifex_resource)/translation/en/strings/ tx_url2 = https://www.transifex.com/api/2/project/edx-platform/resource/$(transifex_resource)/source/ # This directory must match .babelrc . transifex_temp = ./temp/babel-plugin-react-intl NPM_TESTS=build i18n_extract lint test is-es5 .PHONY: test test: $(addprefix test.npm.,$(NPM_TESTS)) ## validate ci suite .PHONY: test.npm.* test.npm.%: validate-no-uncommitted-package-lock-changes test -d node_modules || $(MAKE) requirements npm run $(*) .PHONY: requirements requirements: ## install ci requirements npm ci i18n.extract: # Pulling display strings from .jsx files into .json files... rm -rf $(transifex_temp) npm run-script i18n_extract i18n.concat: # Gathering JSON messages into one file... $(transifex_utils) $(transifex_temp) $(transifex_input) extract_translations: | requirements i18n.extract i18n.concat # Despite the name, we actually need this target to detect changes in the incoming translated message files as well. detect_changed_source_translations: # Checking for changed translations... git diff --exit-code $(i18n) # Pushes translations to Transifex. You must run make extract_translations first. push_translations: # Pushing strings to Transifex... tx push -s # Fetching hashes from Transifex... ./node_modules/reactifex/bash_scripts/get_hashed_strings.sh $(tx_url1) # Writing out comments to file... $(transifex_utils) $(transifex_temp) --comments # Pushing comments to Transifex... ./node_modules/reactifex/bash_scripts/put_comments.sh $(tx_url2) # Pulls translations from Transifex. pull_translations: tx pull -f --mode reviewed --language=$(transifex_langs) # This target is used by CI. validate-no-uncommitted-package-lock-changes: # Checking for package-lock.json changes... git diff --exit-code package-lock.json