Skip to content

Commit 165ef4a

Browse files
committed
Use latest cypress
1 parent 45037b0 commit 165ef4a

20 files changed

+679
-189
lines changed

.coverage.babel.config.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ const defaultBabel = require('@plone/volto/babel');
22

33
function applyDefault(api) {
44
const voltoBabel = defaultBabel(api);
5-
voltoBabel.plugins.push('@babel/plugin-transform-modules-commonjs', 'transform-class-properties', 'istanbul');
5+
voltoBabel.plugins.push('istanbul');
66
return voltoBabel;
77
}
88

.gitignore

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,27 @@
11
.vscode/
22
.history
3+
.eslintrc.js
4+
.nyc_output
5+
project
6+
coverage
37
logs
48
*.log
59
npm-debug.log*
610
.DS_Store
711
*.swp
812
yarn-error.log
13+
yarn.lock
14+
package-lock.json
915

1016
node_modules
1117
build
1218
dist
13-
screenshots
1419
cypress/videos
1520
cypress/reports
21+
screenshots
22+
videos
1623
.env.local
1724
.env.development.local
1825
.env.test.local
1926
.env.production.local
27+
*~

.i18n.babel.config.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
module.exports = require('@plone/volto/babel');

.npmignore

Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
# https://docs.npmjs.com/using-npm/developers.html#keeping-files-out-of-your-package
2+
3+
# Directories
4+
api/
5+
bin/
6+
build/
7+
lib/
8+
g-api/
9+
tests/
10+
11+
# Docs
12+
docs/
13+
14+
# Cypress
15+
cypress/
16+
17+
# Tests
18+
__tests__/
19+
*.snap
20+
21+
# Files
22+
.travis.yml
23+
requirements-docs.txt
24+
requirements-tests.txt
25+
yarn.lock
26+
.dockerignore
27+
.gitattributes
28+
.yarnrc
29+
.nvmrc
30+
changelogupdater.js
31+
pip-selfcheck.json
32+
Dockerfile
33+
CNAME
34+
entrypoint.sh
35+
Jenkinsfile
36+
Makefile
37+
38+
# Logs
39+
logs
40+
*.log
41+
npm-debug.log*
42+
yarn-debug.log*
43+
yarn-error.log*
44+
45+
# Runtime data
46+
pids
47+
*.pid
48+
*.seed
49+
*.pid.lock
50+
51+
# Directory for instrumented libs generated by jscoverage/JSCover
52+
lib-cov
53+
54+
# Coverage directory used by tools like istanbul
55+
coverage
56+
57+
# nyc test coverage
58+
.nyc_output
59+
60+
# node-waf configuration
61+
.lock-wscript
62+
63+
# Compiled binary addons (https://nodejs.org/api/addons.html)
64+
build/Release
65+
66+
# Dependency directories
67+
node_modules/
68+
jspm_packages/
69+
70+
# TypeScript v1 declaration files
71+
typings/
72+
73+
# Optional npm cache directory
74+
.npm
75+
76+
# Optional eslint cache
77+
.eslintcache
78+
79+
# Optional REPL history
80+
.node_repl_history
81+
82+
# Output of 'npm pack'
83+
*.tgz
84+
85+
# Yarn Integrity file
86+
.yarn-integrity
87+
88+
# dotenv environment variables file
89+
.env
90+
91+
# next.js build output
92+
.next
93+
94+
styleguide.config
95+
.vscode
96+
packages

.project.eslintrc.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
const fs = require('fs');
2+
const path = require('path');
3+
4+
const projectRootPath = fs.realpathSync('./project'); // __dirname
5+
const packageJson = require(path.join(projectRootPath, 'package.json'));
6+
const jsConfig = require(path.join(projectRootPath, 'jsconfig.json')).compilerOptions;
7+
8+
const pathsConfig = jsConfig.paths;
9+
10+
let voltoPath = path.join(projectRootPath, 'node_modules/@plone/volto');
11+
12+
Object.keys(pathsConfig).forEach(pkg => {
13+
if (pkg === '@plone/volto') {
14+
voltoPath = `./${jsConfig.baseUrl}/${pathsConfig[pkg][0]}`;
15+
}
16+
});
17+
const AddonConfigurationRegistry = require(`${voltoPath}/addon-registry.js`);
18+
const reg = new AddonConfigurationRegistry(projectRootPath);
19+
20+
// Extends ESlint configuration for adding the aliases to `src` directories in Volto addons
21+
const addonAliases = Object.keys(reg.packages).map(o => [
22+
o,
23+
reg.packages[o].modulePath,
24+
]);
25+
26+
27+
module.exports = {
28+
extends: `${projectRootPath}/node_modules/@plone/volto/.eslintrc`,
29+
settings: {
30+
'import/resolver': {
31+
alias: {
32+
map: [
33+
['@plone/volto', '@plone/volto/src'],
34+
...addonAliases,
35+
['@package', `${__dirname}/src`],
36+
['~', `${__dirname}/src`],
37+
],
38+
extensions: ['.js', '.jsx', '.json'],
39+
},
40+
'babel-plugin-root-import': {
41+
rootPathSuffix: 'src',
42+
},
43+
},
44+
},
45+
};
46+

Jenkinsfile

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,19 @@ pipeline {
4141

4242
"ES lint": {
4343
node(label: 'docker') {
44-
sh '''docker run -i --rm --name="$BUILD_TAG-eslint" -e NAMESPACE="$NAMESPACE" -e GIT_NAME=$GIT_NAME -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" plone/volto-addon-ci eslint'''
44+
sh '''docker run -i --rm --name="$BUILD_TAG-eslint" -e NAMESPACE="$NAMESPACE" -e GIT_NAME=$GIT_NAME -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" -e VOLTO=$VOLTO plone/volto-addon-ci:alpha eslint'''
4545
}
4646
},
4747

4848
"Style lint": {
4949
node(label: 'docker') {
50-
sh '''docker run -i --rm --name="$BUILD_TAG-stylelint" -e NAMESPACE="$NAMESPACE" -e GIT_NAME=$GIT_NAME -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" plone/volto-addon-ci stylelint'''
50+
sh '''docker run -i --rm --name="$BUILD_TAG-stylelint" -e NAMESPACE="$NAMESPACE" -e GIT_NAME=$GIT_NAME -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" -e VOLTO=$VOLTO plone/volto-addon-ci:alpha stylelint'''
5151
}
5252
},
5353

5454
"Prettier": {
5555
node(label: 'docker') {
56-
sh '''docker run -i --rm --name="$BUILD_TAG-prettier" -e NAMESPACE="$NAMESPACE" -e GIT_NAME=$GIT_NAME -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" plone/volto-addon-ci prettier'''
56+
sh '''docker run -i --rm --name="$BUILD_TAG-prettier" -e NAMESPACE="$NAMESPACE" -e GIT_NAME=$GIT_NAME -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" -e VOLTO=$VOLTO plone/volto-addon-ci:alpha prettier'''
5757
}
5858
}
5959
)
@@ -77,8 +77,8 @@ pipeline {
7777
node(label: 'docker') {
7878
script {
7979
try {
80-
sh '''docker pull plone/volto-addon-ci'''
81-
sh '''docker run -i --name="$BUILD_TAG-volto" -e NAMESPACE="$NAMESPACE" -e GIT_NAME=$GIT_NAME -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" plone/volto-addon-ci'''
80+
sh '''docker pull plone/volto-addon-ci:alpha'''
81+
sh '''docker run -i --name="$BUILD_TAG-volto" -e NAMESPACE="$NAMESPACE" -e GIT_NAME=$GIT_NAME -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" -e VOLTO=$VOLTO plone/volto-addon-ci:alpha'''
8282
sh '''rm -rf xunit-reports'''
8383
sh '''mkdir -p xunit-reports'''
8484
sh '''docker cp $BUILD_TAG-volto:/opt/frontend/my-volto-project/coverage xunit-reports/'''
@@ -126,7 +126,7 @@ pipeline {
126126
script {
127127
try {
128128
sh '''docker pull eeacms/plone-backend; docker run --rm -d --name="$BUILD_TAG-plone" -e SITE="Plone" -e PROFILES="eea.kitkat:testing" eeacms/plone-backend'''
129-
sh '''docker pull plone/volto-addon-ci; docker run -i --name="$BUILD_TAG-cypress" --link $BUILD_TAG-plone:plone -e NAMESPACE="$NAMESPACE" -e GIT_NAME=$GIT_NAME -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" -e DEPENDENCIES="$DEPENDENCIES" -e NODE_ENV=development -e VOLTO="$VOLTO" plone/volto-addon-ci cypress'''
129+
sh '''docker pull plone/volto-addon-ci:alpha; docker run -i --name="$BUILD_TAG-cypress" --link $BUILD_TAG-plone:plone -e NAMESPACE="$NAMESPACE" -e GIT_NAME=$GIT_NAME -e GIT_BRANCH="$BRANCH_NAME" -e GIT_CHANGE_ID="$CHANGE_ID" -e DEPENDENCIES="$DEPENDENCIES" -e NODE_ENV=development -e VOLTO=$VOLTO plone/volto-addon-ci:alpha cypress'''
130130
} finally {
131131
try {
132132
sh '''rm -rf cypress-reports cypress-results cypress-coverage'''

Makefile

Lines changed: 98 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
SHELL=/bin/bash
2+
3+
DIR=$(shell basename $$(pwd))
4+
ADDON ?= "@eeacms/volto-addon-template"
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
36+
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
46+
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 :)"
50+
51+
52+
ifeq ($(wildcard ./project),)
53+
NODE_MODULES = "../../../node_modules"
54+
else
55+
NODE_MODULES = "./project/node_modules"
56+
endif
57+
58+
.PHONY: stylelint
59+
stylelint:
60+
$(NODE_MODULES)/stylelint/bin/stylelint.js --allow-empty-input 'src/**/*.{css,less}'
61+
62+
.PHONY: stylelint-overrides
63+
stylelint-overrides:
64+
$(NODE_MODULES)/.bin/stylelint --syntax less --allow-empty-input 'theme/**/*.overrides' 'src/**/*.overrides'
65+
66+
.PHONY: stylelint-fix
67+
stylelint-fix:
68+
$(NODE_MODULES)/stylelint/bin/stylelint.js --allow-empty-input 'src/**/*.{css,less}' --fix
69+
$(NODE_MODULES)/.bin/stylelint --syntax less --allow-empty-input 'theme/**/*.overrides' 'src/**/*.overrides' --fix
70+
71+
.PHONY: prettier
72+
prettier:
73+
$(NODE_MODULES)/.bin/prettier --single-quote --check 'src/**/*.{js,jsx,json,css,less,md}'
74+
75+
.PHONY: prettier-fix
76+
prettier-fix:
77+
$(NODE_MODULES)/.bin/prettier --single-quote --write 'src/**/*.{js,jsx,json,css,less,md}'
78+
79+
.PHONY: lint
80+
lint:
81+
$(NODE_MODULES)/eslint/bin/eslint.js --max-warnings=0 'src/**/*.{js,jsx}'
82+
83+
.PHONY: lint-fix
84+
lint-fix:
85+
$(NODE_MODULES)/eslint/bin/eslint.js --fix 'src/**/*.{js,jsx}'
86+
87+
.PHONY: i18n
88+
i18n:
89+
rm -rf build/messages
90+
NODE_ENV=development $(NODE_MODULES)/.bin/i18n --addon
91+
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

0 commit comments

Comments
 (0)