Skip to content

Merge branch 'master' into links-to-item-view #7560

Merge branch 'master' into links-to-item-view

Merge branch 'master' into links-to-item-view #7560

Workflow file for this run

name: Acceptance Tests
on: [push, pull_request]
jobs:
core:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
runs-on: ubuntu-latest
name: Core Basic
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
node-version: [16.x, 18.x]
steps:
- uses: actions/checkout@v3
# node setup
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
## node install
- run: yarn --immutable
- name: Cypress acceptance tests
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: false # Since they run on different node versions, we can't parallel
browser: chrome
group: Core ${{ matrix.node-version }}
spec: cypress/tests/core/basic/**/*.js
start: |
make start-test-acceptance-server
make start-test-acceptance-frontend
wait-on: 'npx wait-on --httpTimeout 20000 http-get://127.0.0.1:55001/plone http://127.0.0.1:3000'
# Upload Cypress screenshots
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
# Upload Cypress videos
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-videos
path: cypress/videos
coreblocks:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
runs-on: ubuntu-latest
name: Core Blocks
timeout-minutes: 35
strategy:
fail-fast: false
matrix:
node-version: [16.x, 18.x]
steps:
- uses: actions/checkout@v3
# node setup
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
## node install
- run: yarn --immutable
- name: Cypress acceptance tests
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: false # Since they run on different node versions, we can't parallel
browser: chrome
group: Core Blocks ${{ matrix.node-version }}
spec: cypress/tests/core/blocks/**/*.js
start: |
make start-test-acceptance-server
make start-test-acceptance-frontend
wait-on: 'npx wait-on --httpTimeout 20000 http-get://127.0.0.1:55001/plone http://127.0.0.1:3000'
# Upload Cypress screenshots
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
# Upload Cypress videos
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-videos
path: cypress/videos
corevoltoslate:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
runs-on: ubuntu-latest
name: Core Volto Slate
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
node-version: [16.x, 18.x]
steps:
- uses: actions/checkout@v3
# node setup
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
## node install
- run: yarn --immutable
- name: Cypress acceptance tests
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: false # Since they run on different node versions, we can't parallel
browser: chrome
group: Core Volto Slate ${{ matrix.node-version }}
spec: cypress/tests/core/volto-slate/**/*.js
start: |
make start-test-acceptance-server
make start-test-acceptance-frontend
wait-on: 'npx wait-on --httpTimeout 20000 http-get://127.0.0.1:55001/plone http://127.0.0.1:3000'
# Upload Cypress screenshots
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
# Upload Cypress videos
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-videos
path: cypress/videos
core5:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
runs-on: ubuntu-latest
name: Core Basic - Plone 5
strategy:
fail-fast: false
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v3
# node setup
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
## node install
- run: yarn --immutable
- name: Cypress acceptance tests
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: false # Since they run on different node versions, we can't parallel
browser: chrome
group: Core Basic - Plone 5
spec: cypress/tests/core/basic/**/*.js
start: |
make start-test-acceptance-server-5
make start-test-acceptance-frontend
wait-on: 'npx wait-on --httpTimeout 20000 http-get://127.0.0.1:55001/plone http://127.0.0.1:3000'
# Upload Cypress screenshots
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
# Upload Cypress videos
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-videos
path: cypress/videos
coresandbox:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
runs-on: ubuntu-latest
name: Coresandbox
timeout-minutes: 35
strategy:
fail-fast: false
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v3
# node setup
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
- run: yarn --immutable
- name: Cypress Coresandbox Acceptance tests
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: true
browser: chrome
group: Coresandbox
spec: cypress/tests/coresandbox/**/*.js
start: |
make start-test-acceptance-server-coresandbox
make start-test-acceptance-frontend-coresandbox
wait-on: 'npx wait-on --httpTimeout 20000 http-get://127.0.0.1:55001/plone http://127.0.0.1:3000'
# Upload Cypress screenshots
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
# Upload Cypress videos
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-videos
path: cypress/videos
guillotina:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
name: Guillotina
runs-on: ubuntu-latest
timeout-minutes: 35
strategy:
fail-fast: false
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v3
# node setup
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
# node install
- run: yarn --immutable
- name: Cypress acceptance tests
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_API: guillotina
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: true
browser: chrome
group: Guillotina
spec: cypress/tests/guillotina/**/*.js
start: |
make start-test-acceptance-server-guillotina
make start-test-acceptance-frontend-guillotina
wait-on: 'npx wait-on --httpTimeout 20000 http-get://127.0.0.1:8081 http://127.0.0.1:3000'
# Upload Cypress screenshots
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
# Upload Cypress videos
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-videos
path: cypress/videos
multilingual:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
name: Multilingual
runs-on: ubuntu-latest
timeout-minutes: 35
strategy:
fail-fast: false
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v3
# node setup
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
# node install
- run: yarn --immutable
- name: Cypress acceptance tests
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: true
browser: chrome
group: Multilingual
spec: cypress/tests/multilingual/**/*.js
start: |
make start-test-acceptance-server-multilingual
make start-test-acceptance-frontend-multilingual
wait-on: 'npx wait-on --httpTimeout 20000 http-get://127.0.0.1:55001/plone http://127.0.0.1:3000'
# Upload Cypress screenshots
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
# Upload Cypress videos
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-videos
path: cypress/videos
workingcopy:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
name: Working Copy
runs-on: ubuntu-latest
timeout-minutes: 35
strategy:
fail-fast: false
matrix:
node-version: [18.x]
# python-version: [3.7]
steps:
- uses: actions/checkout@v3
# node setup
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
# node install
- run: yarn --immutable
# # python setup (temporary, while p.a.iterate changes are in a PR)
# - name: Set up Python ${{ matrix.python-version }}
# uses: actions/setup-python@v1
# with:
# python-version: ${{ matrix.python-version }}
# # python cache
# - uses: actions/cache@v1
# with:
# path: ~/.cache/pip
# key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements.txt') }}
# restore-keys: |
# ${{ runner.os }}-pip-
# # python install
# - run: pip install virtualenv
# - name: pip install
# working-directory: api
# run: pip install -r requirements.txt
# - name: buildout
# working-directory: api
# run: buildout
# env:
# CI: true
- name: Cypress acceptance tests
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: true
browser: chrome
group: Working Copy
spec: cypress/tests/workingCopy/**/*.js
start: |
make start-test-acceptance-server-workingcopy
make start-test-acceptance-frontend-workingcopy
wait-on: 'npx wait-on --httpTimeout 20000 http-get://127.0.0.1:55001/plone http://127.0.0.1:3000'
# Upload Cypress screenshots
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
# Upload Cypress videos
- uses: actions/upload-artifact@v1
if: always()
with:
name: cypress-videos
path: cypress/videos
generator:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
name: Project Generator
runs-on: ubuntu-latest
timeout-minutes: 35
strategy:
fail-fast: false
matrix:
node-version: [18.x]
env:
generator-directory: ./packages/generator-volto
project-directory: ./my-volto-app
steps:
- uses: actions/checkout@v3
# node setup
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
# Build main Volto environment
- name: Build main Volto environment
run: yarn --immutable
# Generator own tests
- name: Generator tests
run: yarn && yarn test
working-directory: ${{env.generator-directory}}
# install Yeoman and the generator
- run: npm -g install yo
working-directory: ${{env.generator-directory}}
- run: npm -g install ./
working-directory: ${{env.generator-directory}}
# create a project
- run: yo @plone/volto my-volto-app --description "test volto project" --volto . --skip-install --no-interactive
- name: Install yalc
run: npm -g install yalc
- name: Install a yalc'ed version of the current Volto in the project - publish
run: |
yalc publish
yalc publish packages/scripts
- name: Install a yalc'ed version of the current Volto in the project - add
run: |
yalc add @plone/volto --no-pure
yalc add @plone/scripts --no-pure
working-directory: ${{env.project-directory}}
- name: Install a yalc'ed version of the current Volto in the project - install
run: yarn config set -H enableImmutableInstalls false && yarn
working-directory: ${{env.project-directory}}
- name: Cypress acceptance tests
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: true
browser: chrome
group: Project Generator
spec: cypress/tests/minimal/**/*.js
start: |
make start-test-acceptance-server
make start-test-acceptance-frontend-project
wait-on: 'npx wait-on --httpTimeout 20000 http-get://127.0.0.1:55001/plone http://127.0.0.1:3000'
# Upload Cypress screenshots
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
# Upload Cypress videos
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-videos
path: cypress/videos
- name: Test if npm packs correctly
run: npm pack --dry-run
if: success()
working-directory: ${{env.generator-directory}}
seamless:
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name
name: Seamless Mode
runs-on: ubuntu-latest
timeout-minutes: 35
strategy:
fail-fast: false
matrix:
node-version: [18.x]
steps:
- uses: actions/checkout@v3
# node setup
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v3
with:
node-version: ${{ matrix.node-version }}
cache: 'yarn'
# node install
- run: yarn --immutable
- name: Cypress acceptance tests
uses: cypress-io/github-action@v5
env:
BABEL_ENV: production
CYPRESS_RECORD_KEY: ${{ secrets.CYPRESS_RECORD_KEY }}
CYPRESS_RETRIES: 2
# Recommended: pass the GitHub token lets this action correctly
# determine the unique run id necessary to re-run the checks
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
install: false
record: true
parallel: true
browser: chrome
group: Seamless
spec: cypress/tests/core/basic/**/*.js
config: baseUrl=http://localhost
start: |
make start-test-acceptance-server
make start-test-acceptance-frontend-seamless
make start-test-acceptance-webserver-seamless
wait-on: 'npx wait-on --httpTimeout 20000 http-get://127.0.0.1:55001/plone http://127.0.0.1:3000 http://localhost'
# Upload Cypress screenshots
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-screenshots
path: cypress/screenshots
# Upload Cypress videos
- uses: actions/upload-artifact@v1
if: failure()
with:
name: cypress-videos
path: cypress/videos