|
1 |
| -SHELL=/bin/bash |
| 1 | +############################################################################## |
| 2 | +# Run: |
| 3 | +# make |
| 4 | +# make start |
| 5 | +# |
| 6 | +# Go to: |
| 7 | +# |
| 8 | +# http://localhost:3000 |
| 9 | +# |
| 10 | +# Cypress: |
| 11 | +# |
| 12 | +# make cypress-open |
| 13 | +# |
| 14 | +############################################################################## |
| 15 | +# SETUP MAKE |
| 16 | +# |
| 17 | +## Defensive settings for make: https://tech.davis-hansson.com/p/make/ |
| 18 | +SHELL:=bash |
| 19 | +.ONESHELL: |
| 20 | +# for Makefile debugging purposes add -x to the .SHELLFLAGS |
| 21 | +.SHELLFLAGS:=-eu -o pipefail -O inherit_errexit -c |
| 22 | +.SILENT: |
| 23 | +.DELETE_ON_ERROR: |
| 24 | +MAKEFLAGS+=--warn-undefined-variables |
| 25 | +MAKEFLAGS+=--no-builtin-rules |
| 26 | + |
| 27 | +# Colors |
| 28 | +# OK=Green, warn=yellow, error=red |
| 29 | +ifeq ($(TERM),) |
| 30 | +# no colors if not in terminal |
| 31 | + MARK_COLOR= |
| 32 | + OK_COLOR= |
| 33 | + WARN_COLOR= |
| 34 | + ERROR_COLOR= |
| 35 | + NO_COLOR= |
| 36 | +else |
| 37 | + MARK_COLOR=`tput setaf 6` |
| 38 | + OK_COLOR=`tput setaf 2` |
| 39 | + WARN_COLOR=`tput setaf 3` |
| 40 | + ERROR_COLOR=`tput setaf 1` |
| 41 | + NO_COLOR=`tput sgr0` |
| 42 | +endif |
2 | 43 |
|
| 44 | +############################################################################## |
| 45 | +# SETTINGS AND VARIABLE |
3 | 46 | DIR=$(shell basename $$(pwd))
|
4 |
| -ADDON ?= "@eeacms/volto-widget-toggle" |
5 |
| - |
6 |
| -# We like colors |
7 |
| -# From: https://coderwall.com/p/izxssa/colored-makefile-for-golang-projects |
8 |
| -RED=`tput setaf 1` |
9 |
| -GREEN=`tput setaf 2` |
10 |
| -RESET=`tput sgr0` |
11 |
| -YELLOW=`tput setaf 3` |
12 |
| - |
13 |
| -project: |
14 |
| - npm install -g yo |
15 |
| - npm install -g @plone/generator-volto |
16 |
| - npm install -g mrs-developer |
17 |
| - yo @plone/volto project --addon ${ADDON} --workspace "src/addons/${DIR}" --no-interactive |
18 |
| - ln -sf $$(pwd) project/src/addons/ |
19 |
| - cp .project.eslintrc.js .eslintrc.js |
20 |
| - cd project && yarn |
21 |
| - @echo "-------------------" |
22 |
| - @echo "$(GREEN)Volto project is ready!$(RESET)" |
23 |
| - @echo "$(RED)Now run: cd project && yarn start$(RESET)" |
24 |
| - |
25 |
| -all: project |
26 |
| - |
27 |
| -.PHONY: start-test-backend |
28 |
| -start-test-backend: ## Start Test Plone Backend |
29 |
| - @echo "$(GREEN)==> Start Test Plone Backend$(RESET)" |
30 |
| - docker run -i --rm -e ZSERVER_HOST=0.0.0.0 -e ZSERVER_PORT=55001 -p 55001:55001 -e SITE=plone -e APPLY_PROFILES=plone.app.contenttypes:plone-content,plone.restapi:default,kitconcept.volto:default-homepage -e CONFIGURE_PACKAGES=plone.app.contenttypes,plone.restapi,kitconcept.volto,kitconcept.volto.cors -e ADDONS='plone.app.robotframework plone.app.contenttypes plone.restapi kitconcept.volto' plone ./bin/robot-server plone.app.robotframework.testing.PLONE_ROBOT_TESTING |
31 |
| - |
32 |
| -.PHONY: start-backend-docker |
33 |
| -start-backend-docker: ## Starts a Docker-based backend |
34 |
| - @echo "$(GREEN)==> Start Docker-based Plone Backend$(RESET)" |
35 |
| - docker run -it --rm --name=plone -p 8080:8080 -e SITE=Plone -e ADDONS="kitconcept.volto" -e ZCML="kitconcept.volto.cors" plone |
| 47 | +NODE_MODULES?="../../../node_modules" |
| 48 | +PLONE_VERSION?=6 |
| 49 | +VOLTO_VERSION?=16 |
| 50 | +ADDON_PATH="${DIR}" |
| 51 | +ADDON_NAME="@eeacms/${ADDON_PATH}" |
| 52 | +DOCKER_COMPOSE=PLONE_VERSION=${PLONE_VERSION} VOLTO_VERSION=${VOLTO_VERSION} ADDON_NAME=${ADDON_NAME} ADDON_PATH=${ADDON_PATH} docker compose |
| 53 | + |
| 54 | +# Top-level targets |
| 55 | +.PHONY: all |
| 56 | +all: clean install |
| 57 | + |
| 58 | +.PHONY: clean |
| 59 | +clean: ## Cleanup development environment |
| 60 | + ${DOCKER_COMPOSE} down --volumes --remove-orphans |
| 61 | + |
| 62 | +.PHONY: install |
| 63 | +install: ## Build and install development environment |
| 64 | + echo "Running: ${DOCKER_COMPOSE} build" |
| 65 | + ${DOCKER_COMPOSE} pull |
| 66 | + ${DOCKER_COMPOSE} build |
| 67 | + |
| 68 | +.PHONY: start |
| 69 | +start: ## Start development environment |
| 70 | + echo "Running: ${DOCKER_COMPOSE} up" |
| 71 | + ${DOCKER_COMPOSE} up |
36 | 72 |
|
37 |
| -.PHONY: test |
38 |
| -test: |
39 |
| - docker pull plone/volto-addon-ci:alpha |
40 |
| - docker run -it --rm -e NAMESPACE="@eeacms" -e GIT_NAME="${DIR}" -e RAZZLE_JEST_CONFIG=jest-addon.config.js -v "$$(pwd):/opt/frontend/my-volto-project/src/addons/${DIR}" -e CI="true" plone/volto-addon-ci:alpha |
41 |
| - |
42 |
| -.PHONY: test-update |
43 |
| -test-update: |
44 |
| - docker pull plone/volto-addon-ci:alpha |
45 |
| - docker run -it --rm -e NAMESPACE="@eeacms" -e GIT_NAME="${DIR}" -e RAZZLE_JEST_CONFIG=jest-addon.config.js -v "$$(pwd):/opt/frontend/my-volto-project/src/addons/${DIR}" -e CI="true" plone/volto-addon-ci:alpha yarn test src/addons/${DIR}/src --watchAll=false -u |
| 73 | +.PHONY: cypress-open |
| 74 | +cypress-open: ## Open cypress integration tests |
| 75 | + NODE_ENV=development $(NODE_MODULES)/cypress/bin/cypress open |
46 | 76 |
|
47 |
| -.PHONY: help |
48 |
| -help: ## Show this help. |
49 |
| - @echo -e "$$(grep -hE '^\S+:.*##' $(MAKEFILE_LIST) | sed -e 's/:.*##\s*/:/' -e 's/^\(.\+\):\(.*\)/\\x1b[36m\1\\x1b[m:\2/' | column -c2 -t -s :)" |
| 77 | +.PHONY: cypress-run |
| 78 | +cypress-run: ## Run cypress integration tests |
| 79 | + NODE_ENV=development $(NODE_MODULES)/cypress/bin/cypress run |
50 | 80 |
|
| 81 | +.PHONY: test |
| 82 | +test: ## Run jest tests |
| 83 | + ${DOCKER_COMPOSE} run -e CI=1 frontend test |
51 | 84 |
|
52 |
| -ifeq ($(wildcard ./project),) |
53 |
| - NODE_MODULES = "../../../node_modules" |
54 |
| -else |
55 |
| - NODE_MODULES = "./project/node_modules" |
56 |
| -endif |
| 85 | +.PHONY: test-update |
| 86 | +test-update: ## Update jest tests snapshots |
| 87 | + ${DOCKER_COMPOSE} run -e CI=1 frontend test -u |
57 | 88 |
|
58 | 89 | .PHONY: stylelint
|
59 |
| -stylelint: |
| 90 | +stylelint: ## Stylelint |
60 | 91 | $(NODE_MODULES)/stylelint/bin/stylelint.js --allow-empty-input 'src/**/*.{css,less}'
|
61 | 92 |
|
62 | 93 | .PHONY: stylelint-overrides
|
63 | 94 | stylelint-overrides:
|
64 | 95 | $(NODE_MODULES)/.bin/stylelint --syntax less --allow-empty-input 'theme/**/*.overrides' 'src/**/*.overrides'
|
65 | 96 |
|
66 | 97 | .PHONY: stylelint-fix
|
67 |
| -stylelint-fix: |
| 98 | +stylelint-fix: ## Fix stylelint |
68 | 99 | $(NODE_MODULES)/stylelint/bin/stylelint.js --allow-empty-input 'src/**/*.{css,less}' --fix
|
69 | 100 | $(NODE_MODULES)/.bin/stylelint --syntax less --allow-empty-input 'theme/**/*.overrides' 'src/**/*.overrides' --fix
|
70 | 101 |
|
71 | 102 | .PHONY: prettier
|
72 |
| -prettier: |
| 103 | +prettier: ## Prettier |
73 | 104 | $(NODE_MODULES)/.bin/prettier --single-quote --check 'src/**/*.{js,jsx,json,css,less,md}'
|
74 | 105 |
|
75 | 106 | .PHONY: prettier-fix
|
76 |
| -prettier-fix: |
| 107 | +prettier-fix: ## Fix prettier |
77 | 108 | $(NODE_MODULES)/.bin/prettier --single-quote --write 'src/**/*.{js,jsx,json,css,less,md}'
|
78 | 109 |
|
79 | 110 | .PHONY: lint
|
80 |
| -lint: |
| 111 | +lint: ## ES Lint |
81 | 112 | $(NODE_MODULES)/eslint/bin/eslint.js --max-warnings=0 'src/**/*.{js,jsx}'
|
82 | 113 |
|
83 | 114 | .PHONY: lint-fix
|
84 |
| -lint-fix: |
| 115 | +lint-fix: ## Fix ES Lint |
85 | 116 | $(NODE_MODULES)/eslint/bin/eslint.js --fix 'src/**/*.{js,jsx}'
|
86 | 117 |
|
87 | 118 | .PHONY: i18n
|
88 |
| -i18n: |
| 119 | +i18n: ## i18n |
89 | 120 | rm -rf build/messages
|
90 | 121 | NODE_ENV=development $(NODE_MODULES)/.bin/i18n --addon
|
91 | 122 |
|
92 |
| -.PHONY: cypress-run |
93 |
| -cypress-run: |
94 |
| - NODE_ENV=development $(NODE_MODULES)/cypress/bin/cypress run |
95 |
| - |
96 |
| -.PHONY: cypress-open |
97 |
| -cypress-open: |
98 |
| - NODE_ENV=development $(NODE_MODULES)/cypress/bin/cypress open |
| 123 | +.PHONY: help |
| 124 | +help: ## Show this help. |
| 125 | + @echo -e "$$(grep -hE '^\S+:.*##' $(MAKEFILE_LIST) | sed -e 's/:.*##\s*/:/' -e 's/^\(.\+\):\(.*\)/\\x1b[36m\1\\x1b[m:\2/' | column -c2 -t -s :)" |
| 126 | + head -n 14 Makefile |
0 commit comments