Merge branch 'main' into 5885-linked-heading-docs #14170
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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: [18.x, 20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
# We don't want to install until later, | |
# when the cache and Cypress are in place | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
- name: Cypress acceptance tests | |
uses: cypress-io/github-action@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: packages/volto/cypress/videos | |
corecontent: | |
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 Content | |
timeout-minutes: 45 | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
- name: Cypress acceptance tests | |
uses: cypress-io/github-action@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
spec: cypress/tests/core/content/**/*.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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: packages/volto/cypress/videos | |
corecontrolpanels: | |
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 Control Panels | |
timeout-minutes: 45 | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
- name: Cypress acceptance tests | |
uses: cypress-io/github-action@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
spec: cypress/tests/core/controlpanels/**/*.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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: packages/volto/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: [18.x, 20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
- name: Cypress acceptance tests | |
uses: cypress-io/github-action@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: packages/volto/cypress/videos | |
coreblockslisting: | |
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 - Listing | |
timeout-minutes: 35 | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x, 20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
- name: Cypress acceptance tests | |
uses: cypress-io/github-action@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
spec: cypress/tests/core/blocks/listing/*.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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: packages/volto/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: [18.x, 20.x] | |
steps: | |
- uses: actions/checkout@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
- name: Cypress acceptance tests | |
uses: cypress-io/github-action@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: packages/volto/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@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
- name: Cypress acceptance tests | |
uses: cypress-io/github-action@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: packages/volto/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@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
- name: Cypress Coresandbox Acceptance tests | |
uses: cypress-io/github-action@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: packages/volto/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@v4 | |
# # node setup | |
# - name: Use Node.js ${{ matrix.node-version }} | |
# uses: actions/setup-node@v4 | |
# with: | |
# node-version: ${{ matrix.node-version }} | |
# - uses: pnpm/action-setup@v3 | |
# name: Install pnpm | |
# with: | |
# version: 8 | |
# run_install: false | |
# - name: Get pnpm store directory | |
# shell: bash | |
# run: | | |
# echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
# - uses: actions/cache@v4 | |
# name: Setup pnpm cache | |
# with: | |
# path: ${{ env.STORE_PATH }} | |
# key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
# restore-keys: | | |
# ${{ runner.os }}-pnpm-store- | |
# - run: pnpm i | |
# - name: Cypress acceptance tests | |
# uses: cypress-io/github-action@v6 | |
# env: | |
# BABEL_ENV: production | |
# CYPRESS_API: guillotina | |
# 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 | |
# working-directory: packages/volto | |
# browser: chrome | |
# 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: packages/volto/cypress/screenshots | |
# # Upload Cypress videos | |
# - uses: actions/upload-artifact@v1 | |
# if: failure() | |
# with: | |
# name: cypress-videos | |
# path: packages/volto/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@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
- name: Cypress acceptance tests | |
uses: cypress-io/github-action@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: packages/volto/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@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
# # 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@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: packages/volto/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, 20.x] | |
env: | |
generator-directory: ./packages/generator-volto | |
project-directory: ./my-volto-app | |
steps: | |
- uses: actions/checkout@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Build packages | |
run: pnpm build:registry | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
# Generator own tests | |
- name: Generator tests | |
run: pnpm 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 | |
# When main is canary, make sure we use it in the generator | |
# - run: yo @plone/volto my-volto-app --description "test volto project" --volto . --skip-install --no-interactive --canary | |
- 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 packages/types | |
(cd packages/registry && yalc add @plone/types --no-pure && yalc publish) | |
yalc publish packages/scripts | |
yalc publish packages/volto-slate | |
(cd packages/volto && yalc add @plone/scripts --no-pure && yalc add @plone/registry --no-pure && yalc add @plone/volto-slate --no-pure && yalc publish) | |
- name: Install a yalc'ed version of the current Volto in the project - add | |
run: | | |
yalc add @plone/volto --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: Running lint on a project works | |
run: yarn lint | |
working-directory: ${{env.project-directory}} | |
- name: Running prettier on a project works | |
run: yarn prettier | |
working-directory: ${{env.project-directory}} | |
- name: Running stylelint on a project works | |
run: yarn stylelint | |
working-directory: ${{env.project-directory}} | |
- name: Cypress acceptance tests | |
uses: cypress-io/github-action@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: packages/volto/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@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
- name: Cypress acceptance tests | |
uses: cypress-io/github-action@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos-seamless | |
path: packages/volto/cypress/videos | |
multilingualseamless: | |
if: github.event_name != 'pull_request' || github.event.pull_request.head.repo.full_name != github.event.pull_request.base.repo.full_name | |
name: Multilingual in Seamless Mode | |
runs-on: ubuntu-latest | |
timeout-minutes: 25 | |
strategy: | |
fail-fast: false | |
matrix: | |
node-version: [18.x] | |
steps: | |
- uses: actions/checkout@v4 | |
# node setup | |
- name: Use Node.js ${{ matrix.node-version }} | |
uses: actions/setup-node@v4 | |
with: | |
node-version: ${{ matrix.node-version }} | |
- uses: pnpm/action-setup@v3 | |
name: Install pnpm | |
with: | |
version: 8 | |
run_install: false | |
- name: Get pnpm store directory | |
shell: bash | |
run: | | |
echo "STORE_PATH=$(pnpm store path --silent)" >> $GITHUB_ENV | |
- uses: actions/cache@v4 | |
name: Setup pnpm cache | |
with: | |
path: ${{ env.STORE_PATH }} | |
key: ${{ runner.os }}-pnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }} | |
restore-keys: | | |
${{ runner.os }}-pnpm-store- | |
- name: Cache Cypress Binary | |
id: cache-cypress-binary | |
uses: actions/cache@v4 | |
with: | |
path: ~/.cache/Cypress | |
key: binary-${{ matrix.node-version }}-${{ hashFiles('pnpm-lock.yaml') }} | |
- run: pnpm i | |
- name: Install Cypress if not in cache | |
if: steps.cache-cypress-binary.outputs.cache-hit != 'true' | |
working-directory: packages/volto | |
run: make cypress-install | |
- name: Cypress acceptance tests | |
uses: cypress-io/github-action@v6 | |
env: | |
BABEL_ENV: production | |
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 | |
working-directory: packages/volto | |
browser: chrome | |
spec: cypress/tests/multilingual/**/*.js | |
config: baseUrl=http://localhost | |
start: | | |
make start-test-acceptance-server-seamless-multilingual | |
make start-test-acceptance-frontend-seamless-multilingual | |
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: packages/volto/cypress/screenshots | |
# Upload Cypress videos | |
- uses: actions/upload-artifact@v1 | |
if: failure() | |
with: | |
name: cypress-videos | |
path: packages/volto/cypress/videos |