test: remove cypress + migrate existing tests to playwright ()

* test: remove cypress + migrate existing tests to playwright + update workflows

* ci: remove leftover condition in ci-run-tests workflow

* ci: add missing matrix to tests-playwright-legacy

* ci: run playwright legacy as user 1001

* ci: set home var for firefox

* ci: allow firefox to run as root for tests
This commit is contained in:
Nicolas Giard 2022-11-22 17:26:19 -05:00 committed by GitHub
parent 72648dc01c
commit deb01f2d83
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
169 changed files with 5387 additions and 3631 deletions
.devcontainer
.eslintrc.js
.github/workflows
.pnp.cjs
.yarn/cache
@colors-colors-npm-1.5.0-875af3a8b4-d64d5260be.zip@cypress-request-npm-2.88.10-44c588c8fc-69c3e3b332.zip@cypress-xvfb-npm-1.2.4-396a3691f7-7bdcdaeb1b.zip@percy-cli-app-npm-1.13.0-73b45d945e-be7a603c01.zip@percy-cli-build-npm-1.13.0-76addcdb3c-e48a193e11.zip@percy-cli-command-npm-1.13.0-63a282536a-fa009eef5a.zip@percy-cli-config-npm-1.13.0-09cf4151f3-7fc555f60e.zip@percy-cli-exec-npm-1.13.0-a3d4d6536f-b9cff8071a.zip@percy-cli-npm-1.13.0-8220876fe7-48269037f2.zip@percy-cli-snapshot-npm-1.13.0-128915a6a2-156b5f215e.zip@percy-cli-upload-npm-1.13.0-a9a154c4a3-fe3887f8e6.zip@percy-client-npm-1.13.0-ec7ffa178b-327457a19f.zip@percy-config-npm-1.13.0-0710cab22b-226e46e1e9.zip@percy-core-npm-1.13.0-7defa0abca-eca1b249b9.zip@percy-cypress-npm-3.1.2-b10a40bb3c-576b14c076.zip@percy-dom-npm-1.13.0-5dfc1c89e3-3389358759.zip@percy-env-npm-1.13.0-bf20abc0e8-3174c25b5f.zip@percy-logger-npm-1.13.0-be5e4bd4d2-71dc463eac.zip@percy-sdk-utils-npm-1.10.0-bb3a5e31d6-9880758111.zip@types-node-npm-14.18.18-2f8f733938-a165225cd2.zip@types-sinonjs__fake-timers-npm-8.1.1-95ac9b59b5-ca09d54d47.zip@types-sizzle-npm-2.3.3-9403924950-586a9fb1f6.zip@types-yauzl-npm-2.10.0-7b242343cb-55d27ae5d3.zip@vue-test-utils-npm-2.2.1-fb4beba21f-6eccfbcd18.zipansi-colors-npm-4.1.3-8ffd0ae6c7-a9c2ec8420.zipansi-escapes-npm-4.3.2-3ad173702f-93111c4218.ziparch-npm-2.2.0-34797684d8-e21b763502.zipasn1-npm-0.2.6-bdd07356c4-39f2ae343b.zipassert-plus-npm-1.0.0-cac95ef098-19b4340cb8.zipastral-regex-npm-2.0.0-f30d866aab-876231688c.zipasync-npm-3.2.3-e9d6b79c88-c4bee57ab2.zipasynckit-npm-0.4.0-c718858525-7b78c451df.zipat-least-node-npm-1.0.0-2b36e661fa-463e2f8e43.zipaws-sign2-npm-0.7.0-656c6cb84d-b148b0bb07.zipaws4-npm-1.11.0-283476ad94-5a00d045fd.zipbase64-js-npm-1.5.1-b2f7275641-669632eb37.zipbcrypt-pbkdf-npm-1.0.2-80db8b16ed-4edfc9fe7d.zipblob-util-npm-2.0.2-8026c830fe-d543e6b92e.zipbluebird-npm-3.7.2-6a54136ee3-869417503c.zipbuffer-crc32-npm-0.2.13-c4b6fceac1-06252347ae.zipbuffer-npm-5.7.1-513ef8259e-e2cf8429e1.zipcachedir-npm-2.3.0-640dc16bbb-ec90cb0f2e.zipcaseless-npm-0.12.0-e83bc5df83-b43bd4c440.zipcheck-more-types-npm-2.24.0-fa2e491b27-b09080ec34.zipci-info-npm-3.3.1-c80845db6d-244546317c.zipcli-cursor-npm-3.1.0-fee1e46b5e-2692784c6c.zipcli-table3-npm-0.6.2-dff919b99d-2f82391698.zipcli-truncate-npm-2.1.0-72184d3467-bf1e4e6195.zipcolorette-npm-2.0.16-7b996485d7-cd55596a3a.zipcombined-stream-npm-1.0.8-dc14d4a63a-49fa4aeb49.zipcommander-npm-5.1.0-7e939e7832-0b7fec1712.zipcommon-tags-npm-1.8.2-2c30ba69b3-767a6255a8.zipcontent-disposition-npm-0.5.4-2d93678616-afb9d545e2.zipcore-util-is-npm-1.0.2-9fc2b94dc3-7a4c925b49.zipcypress-npm-10.11.0-89a066e772-938cc6a20f.zipcypress-real-events-npm-1.7.2-22188dde6b-d5b21592c1.zipdashdash-npm-1.14.1-be8f10a286-3634c24957.zipdayjs-npm-1.11.2-644b12fe04-78f8bd04a9.zipdelayed-stream-npm-1.0.0-c5a4c4cc02-46fe6e83e2.zipecc-jsbn-npm-0.1.2-85b7a7be89-22fef4b620.zipend-of-stream-npm-1.4.4-497fc6dee1-530a5a5a1e.zipenquirer-npm-2.3.6-7899175762-1c0911e14a.zipeventemitter2-npm-6.4.7-ad2467adaa-1b36a77e13.zipexeca-npm-4.1.0-cc675b4189-e30d298934.zipexecutable-npm-4.1.1-c06d32cd1b-f01927ce59.zipextend-npm-3.0.2-e1ca07ac54-a50a8309ca.zipextract-zip-npm-2.0.1-92a28e392b-8cbda9debd.zipextsprintf-npm-1.3.0-61a92b324c-cee7a4a1e3.zipfast-glob-npm-3.2.11-bc01135fef-f473105324.zipfd-slicer-npm-1.1.0-3cade0050a-c8585fd571.zipfigures-npm-3.2.0-85d357e955-85a6ad29e9.zipforever-agent-npm-0.6.1-01dae53bf9-766ae6e220.zipform-data-npm-2.3.3-c016cc11c0-10c1780fa1.zipfs-extra-npm-9.1.0-983c2ddb4c-ba71ba32e0.zipget-stream-npm-5.2.0-2cfd3b452b-8bc1a23174.zipgetos-npm-3.2.1-620c03aa34-42fd78a66d.zipgetpass-npm-0.1.7-519164a3be-ab18d55661.zipglobal-dirs-npm-3.0.0-45faebeb68-953c17cf14.ziphttp-signature-npm-1.3.6-5b2eff4373-10be2af476.ziphuman-signals-npm-1.1.1-616b2586c2-d587647c9e.zipieee754-npm-1.2.1-fb63b3caeb-5144c0c981.zipimage-size-npm-1.0.2-ed5424d843-01745fdb47.zipini-npm-2.0.0-28f7426761-e7aadc5fb2.zipis-ci-npm-3.0.1-d9aea361e1-192c66dc78.zipis-installed-globally-npm-0.4.0-a30dd056c7-3359840d59.zipis-stream-npm-2.0.1-c802db55e7-b8e05ccdf9.zipis-typedarray-npm-1.0.0-bbd99de5b6-3508c6cd0a.zipis-unicode-supported-npm-0.1.0-0833e1bbfb-a2aab86ee7.zipisstream-npm-0.1.2-8581c75385-1eb2fe63a7.zipjsbn-npm-0.1.1-0eb7132404-e5ff29c1b8.zipjson-schema-npm-0.4.0-e776313070-66389434c3.zipjson-stringify-safe-npm-5.0.1-064ddd6ab4-48ec0adad5.zipjsonfile-npm-6.1.0-20a4796cee-7af3b8e1ac.zipjsprim-npm-2.0.2-8c40f3719c-d175f6b199.zip

View file

@ -72,6 +72,7 @@
"vue.volar",
"mrmlnc.vscode-duplicate",
"ms-azuretools.vscode-docker",
"ms-playwright.playwright",
"ms-python.python",
"ms-python.vscode-pylance",
"mtxr.sqltools-driver-mysql",

View file

@ -11,7 +11,7 @@ services:
- /workspace/.vite
- /workspace/.yarn/unplugged
- app-assets:/assets
- datatracker-vscode-ext:/root/.vscode-server/extensions
# - datatracker-vscode-ext:/root/.vscode-server/extensions
# Runs app on the same network as the database container, allows "forwardPorts" in devcontainer.json function.
network_mode: service:db

View file

@ -9,8 +9,7 @@ module.exports = {
},
extends: [
// 'plugin:vue/vue3-essential', // Priority A: Essential (Error Prevention)
'plugin:vue/vue3-strongly-recommended', // Priority B: Strongly Recommended (Improving Readability)
'plugin:cypress/recommended'
'plugin:vue/vue3-strongly-recommended' // Priority B: Strongly Recommended (Improving Readability)
],
globals: {
d3: true

View file

@ -222,8 +222,8 @@ jobs:
path: playwright/test-results/
if-no-files-found: ignore
tests-cypress:
name: Run Tests (Cypress)
tests-playwright-legacy:
name: Run Tests (Playwright Legacy)
if: ${{ github.event.inputs.skiptests == 'false' }}
needs: [prepare]
runs-on: ubuntu-latest
@ -262,26 +262,26 @@ jobs:
/usr/local/bin/wait-for localhost:8000 -- echo "Datatracker ready"
- name: Run all tests
env:
HOME: ""
run: |
echo "Installing dependencies..."
yarn
echo "Installing Playwright..."
cd playwright
mkdir test-results
npm ci
npx playwright install --with-deps ${{ matrix.project }}
echo "Running tests..."
yarn cypress:legacy
npx playwright test --project=${{ matrix.project }} -c playwright-legacy.config.js
- name: Upload Video Recordings
- name: Upload Report
uses: actions/upload-artifact@v3
if: ${{ always() }}
continue-on-error: true
with:
name: videos-legacy
path: cypress/videos/
if-no-files-found: ignore
- name: Upload Screenshots
uses: actions/upload-artifact@v3
if: ${{ always() }}
continue-on-error: true
with:
name: screenshots-modern
path: cypress/screenshots/
name: playwright-legacy-results-${{ matrix.project }}
path: playwright/test-results/
if-no-files-found: ignore
# -----------------------------------------------------------------
@ -290,7 +290,7 @@ jobs:
release:
name: Make Release
if: ${{ always() }}
needs: [tests-python, tests-playwright, tests-cypress, prepare]
needs: [tests-python, tests-playwright, tests-playwright-legacy, prepare]
runs-on: ubuntu-latest
env:
SHOULD_DEPLOY: ${{needs.prepare.outputs.should_deploy}}

View file

@ -110,3 +110,67 @@ jobs:
name: playwright-results-${{ matrix.project }}
path: playwright/test-results/
if-no-files-found: ignore
tests-playwright-legacy:
name: Run Tests (Playwright Legacy)
runs-on: ubuntu-latest
container: ghcr.io/ietf-tools/datatracker-app-base:latest
strategy:
fail-fast: false
matrix:
project: [chromium, firefox]
services:
db:
image: ghcr.io/ietf-tools/datatracker-db:latest
volumes:
- mariadb-data:/var/lib/mysql
env:
MYSQL_ROOT_PASSWORD: ietf
MYSQL_DATABASE: ietf_utf8
MYSQL_USER: django
MYSQL_PASSWORD: RkTkDPFnKpko
steps:
- uses: actions/checkout@v3
- name: Prepare for tests
run: |
chmod +x ./dev/tests/prepare.sh
sh ./dev/tests/prepare.sh
- name: Ensure DB is ready
run: |
/usr/local/bin/wait-for db:3306 -- echo "DB ready"
- name: Start Datatracker
run: |
echo "Running checks..."
./ietf/manage.py check
echo "Starting datatracker..."
./ietf/manage.py runserver 0.0.0.0:8000 --settings=settings_local &
echo "Waiting for datatracker to be ready..."
/usr/local/bin/wait-for localhost:8000 -- echo "Datatracker ready"
- name: Run all tests
env:
HOME: ""
run: |
echo "Installing dependencies..."
yarn
echo "Installing Playwright..."
cd playwright
mkdir test-results
npm ci
npx playwright install --with-deps ${{ matrix.project }}
echo "Running tests..."
npx playwright test --project=${{ matrix.project }} -c playwright-legacy.config.js
- name: Upload Report
uses: actions/upload-artifact@v3
if: ${{ always() }}
continue-on-error: true
with:
name: playwright-legacy-results-${{ matrix.project }}
path: playwright/test-results/
if-no-files-found: ignore

1596
.pnp.cjs generated

File diff suppressed because it is too large Load diff

Some files were not shown because too many files have changed in this diff Show more