Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
94 commits
Select commit Hold shift + click to select a range
8d2b149
Localisation updates from https://translatewiki.net.
translatewiki Feb 19, 2026
ba34a90
chore: updated lock yaml
SamTV12345 Feb 22, 2026
5ce0ce7
build(deps): bump jsdom from 28.0.0 to 28.1.0 (#7331)
dependabot[bot] Feb 22, 2026
02beef6
build(deps): bump underscore from 1.13.7 to 1.13.8 (#7334)
dependabot[bot] Feb 22, 2026
75cc656
build(deps): bump oidc-provider from 9.6.0 to 9.6.1 (#7335)
dependabot[bot] Feb 22, 2026
8d5001a
chore: remove npmrc
SamTV12345 Mar 1, 2026
fbed2e4
Localisation updates from https://translatewiki.net.
translatewiki Mar 2, 2026
f8055b6
chore: added note about LLM usage in Etherpad
SamTV12345 Mar 3, 2026
b2f2f4d
ci: qodo best_practices.md file
JohnMcLear Mar 4, 2026
532a8b3
ci: force qodo to check PR desc (#7346)
JohnMcLear Mar 4, 2026
4d80659
docs: add AGENTS.MD for AI and developer guidance (#7348)
JohnMcLear Mar 4, 2026
3482c5b
build(deps): bump docker/login-action from 3 to 4 (#7352)
dependabot[bot] Mar 5, 2026
7938f69
build(deps): bump docker/build-push-action from 6 to 7 (#7356)
dependabot[bot] Mar 6, 2026
c2b28ae
build(deps): bump docker/metadata-action from 5 to 6 (#7355)
dependabot[bot] Mar 6, 2026
47280d6
build(deps): bump docker/setup-buildx-action from 3 to 4 (#7354)
dependabot[bot] Mar 8, 2026
7a7c382
build(deps): bump express-rate-limit from 8.2.1 to 8.2.2 (#7357)
dependabot[bot] Mar 8, 2026
ffd96eb
build(deps): bump docker/setup-qemu-action from 3 to 4 (#7351)
dependabot[bot] Mar 8, 2026
ed4f606
Localisation updates from https://translatewiki.net.
translatewiki Mar 12, 2026
8bf610c
build(deps-dev): bump the dev-dependencies group with 16 updates (#7358)
dependabot[bot] Mar 12, 2026
731d9a0
build(deps): bump openapi-backend from 5.15.0 to 5.16.1 (#7361)
dependabot[bot] Mar 12, 2026
06690c1
build(deps): bump jose from 6.1.3 to 6.2.1 (#7364)
dependabot[bot] Mar 12, 2026
4fd1d73
build(deps): bump ejs from 4.0.1 to 5.0.1 (#7362)
dependabot[bot] Mar 12, 2026
f34cdf0
build(deps): bump oidc-provider from 9.6.1 to 9.7.0 (#7363)
dependabot[bot] Mar 12, 2026
c5d5f5d
build(deps): bump axios from 1.13.5 to 1.13.6 (#7360)
dependabot[bot] Mar 12, 2026
14c4f47
build(deps-dev): bump the dev-dependencies group with 7 updates (#7366)
dependabot[bot] Mar 12, 2026
1b3b23b
build(deps): bump actions/upload-artifact from 6 to 7 (#7339)
dependabot[bot] Mar 13, 2026
4d32bd6
build(deps): bump esbuild from 0.27.3 to 0.27.4 (#7367)
dependabot[bot] Mar 13, 2026
7bd7102
build(deps): bump express-rate-limit from 8.2.2 to 8.3.1 (#7359)
dependabot[bot] Mar 13, 2026
d3c3418
build(deps-dev): bump the dev-dependencies group with 3 updates (#7368)
dependabot[bot] Mar 14, 2026
7e37441
Localisation updates from https://translatewiki.net.
translatewiki Mar 16, 2026
de6d13d
build(deps): bump rate-limiter-flexible from 9.1.1 to 10.0.1 (#7374)
dependabot[bot] Mar 16, 2026
2a81604
build(deps): bump jsdom from 28.1.0 to 29.0.0 (#7372)
dependabot[bot] Mar 16, 2026
6bdfd9f
build(deps-dev): bump the dev-dependencies group with 2 updates (#7371)
dependabot[bot] Mar 16, 2026
00dc6db
build(deps): bump reitzig/actions-asciidoctor from 2.0.3 to 2.0.4 (#7…
dependabot[bot] Mar 16, 2026
e165ceb
build(deps): bump lru-cache from 11.2.6 to 11.2.7 (#7373)
dependabot[bot] Mar 16, 2026
773ed30
build(deps-dev): bump the dev-dependencies group with 2 updates (#7376)
dependabot[bot] Mar 18, 2026
532c8d1
build(deps): bump oidc-provider from 9.7.0 to 9.7.1 (#7378)
dependabot[bot] Mar 19, 2026
e17890a
build(deps-dev): bump the dev-dependencies group with 2 updates (#7381)
dependabot[bot] Mar 19, 2026
6a0f932
build(deps): bump jose from 6.2.1 to 6.2.2 (#7382)
dependabot[bot] Mar 19, 2026
29ad3d9
chore: catch all errors that can occur and log the error (#7375)
SamTV12345 Mar 19, 2026
a99ddb6
build(deps-dev): bump the dev-dependencies group with 2 updates (#7384)
dependabot[bot] Mar 20, 2026
9a92295
build(deps): bump jsdom from 29.0.0 to 29.0.1 (#7385)
dependabot[bot] Mar 20, 2026
43e831b
build(deps-dev): bump the dev-dependencies group with 10 updates (#7386)
dependabot[bot] Mar 24, 2026
d3f085b
Localisation updates from https://translatewiki.net.
translatewiki Mar 30, 2026
737f673
build(deps): bump axios from 1.13.6 to 1.14.0 (#7394)
dependabot[bot] Mar 30, 2026
20fb7a3
build(deps): bump actions/configure-pages from 5 to 6 (#7393)
dependabot[bot] Mar 30, 2026
039f045
build(deps): bump actions/deploy-pages from 4 to 5 (#7391)
dependabot[bot] Mar 30, 2026
7484d9e
Update deprecated GitHub Actions in plugin workflow templates (#7395)
JohnMcLear Mar 30, 2026
892c52b
Fix plugin backend-tests workflow pnpm 10 symlink error (#7396)
JohnMcLear Mar 30, 2026
45fe8a3
Fix backend-tests find path for plugin test discovery (#7397)
JohnMcLear Mar 30, 2026
e97e203
Fix backend-tests find pattern for versioned plugin paths (#7398)
JohnMcLear Mar 30, 2026
0423477
Fix/plugin workflow templates clean (#7399)
JohnMcLear Mar 31, 2026
561ee64
Improve AGENTS.MD with practical details (#7400)
JohnMcLear Mar 31, 2026
a6d283a
Fix plugin frontend-tests template: use dev mode not prod (#7402)
JohnMcLear Mar 31, 2026
09df1ce
Add pnpm update step to checkPlugin for dependency updates (#7404)
JohnMcLear Mar 31, 2026
f9798cf
Add scheduled workflow to update all plugins daily (#7406)
JohnMcLear Mar 31, 2026
2358a05
Improve update-plugins workflow resilience and add summary (#7407)
JohnMcLear Mar 31, 2026
264bab5
Fix webkit frontend tests silently passing when they fail (#7408)
JohnMcLear Mar 31, 2026
cd65f30
Enable nice-select on Safari/WebKit (#7413)
JohnMcLear Mar 31, 2026
c048d0a
Disable Playwright test retries to surface real failures (#7415)
JohnMcLear Mar 31, 2026
0a76256
Enable globstar in plugin backend-tests template (#7414)
JohnMcLear Mar 31, 2026
1814718
Fix frontend test failures across all browsers (#7416)
JohnMcLear Apr 1, 2026
b5d4452
Fix flaky unordered_list and undo frontend tests (#7418)
JohnMcLear Apr 1, 2026
fd97532
Fix ESM/CJS interop for Settings module breaking plugin compatibility…
JohnMcLear Apr 1, 2026
3a8242c
Fix flaky tests, admin restart, and broken plugin search (#7422)
JohnMcLear Apr 1, 2026
d9ac279
Increase timeout for admin settings textarea to load (#7423)
JohnMcLear Apr 1, 2026
0e556ec
Move load test to daily schedule instead of every push (#7425)
JohnMcLear Apr 1, 2026
4d7646a
build(deps): bump actions/setup-node from 4 to 6 (#7409)
dependabot[bot] Apr 1, 2026
09d782f
Enforce 2-space indentation across codebase (#7426)
JohnMcLear Apr 1, 2026
e0ba5ee
build(deps): bump pnpm/action-setup from 3 to 5 (#7410)
dependabot[bot] Apr 1, 2026
3239320
build(deps): bump actions/checkout from 4 to 6 (#7411)
dependabot[bot] Apr 1, 2026
72a41b2
build(deps): bump express-rate-limit from 8.3.1 to 8.3.2 (#7412)
dependabot[bot] Apr 1, 2026
32d9c89
Bump dev dependencies including TypeScript 5→6 with compatibility fix…
JohnMcLear Apr 1, 2026
290a2b2
build(deps-dev): bump the dev-dependencies group with 8 updates (#7429)
dependabot[bot] Apr 1, 2026
a324b1e
fix: stabilize frontend tests and drop webkit from CI (#7433)
JohnMcLear Apr 1, 2026
2f8e378
fix: prevent crash when pasting bare <li> without parent list element…
JohnMcLear Apr 3, 2026
a42e072
fix: wait for server confirmation before navigating after pad delete …
JohnMcLear Apr 3, 2026
4c70991
fix: reset list numbering when switching from unordered to ordered li…
JohnMcLear Apr 3, 2026
d5acbb3
fix: filter already-deleted sessions when deleting a group (#7435)
JohnMcLear Apr 3, 2026
4ce2a1a
build(deps): bump esbuild from 0.27.4 to 0.27.5 (#7440)
dependabot[bot] Apr 3, 2026
712bfe6
fix: PageDown now advances caret by a full page of lines (#7437)
JohnMcLear Apr 3, 2026
bd60279
build(deps): bump esbuild from 0.27.5 to 0.28.0 (#7444)
dependabot[bot] Apr 3, 2026
6200230
build(deps-dev): bump the dev-dependencies group with 4 updates (#7443)
dependabot[bot] Apr 3, 2026
fd6b351
docs: add local test running guide to AGENTS.md (#7442)
JohnMcLear Apr 3, 2026
5199319
fix: secure-by-default error sanitization with dedup and regression t…
JohnMcLear Apr 3, 2026
8b7155b
fix: createDiffHTML API fails with "Not a changeset: undefined" (#7445)
JohnMcLear Apr 4, 2026
f186ea9
fix: skip identity changesets during timeslider playback (#7438)
JohnMcLear Apr 4, 2026
928eef8
fix: consecutive numbering fails after indented sub-bullets (#7447)
JohnMcLear Apr 4, 2026
287a1fd
fix: allow undo of clear authorship colors without disconnect (#2802)
JohnMcLear Apr 1, 2026
d159738
fix: use robust Playwright assertions in authorship undo tests
JohnMcLear Apr 1, 2026
3bc8bd1
fix: handle confirm dialog and sync timing in Playwright tests
JohnMcLear Apr 1, 2026
81457c5
fix: use persistent socket listeners to avoid missing messages in CI
JohnMcLear Apr 1, 2026
1aefafa
fix: reject - ops with foreign author to prevent pool injection
JohnMcLear Apr 1, 2026
02f11dd
test: use not.toHaveClass for cleared authorship spans
JohnMcLear Apr 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 2 additions & 6 deletions .github/workflows/backend-tests.yml
Original file line number Diff line number Diff line change
Expand Up @@ -124,14 +124,13 @@ jobs:
ep_author_hover
ep_cursortrace
ep_font_size
ep_hash_auth
ep_headings2
ep_markdown
ep_readonly_guest
ep_set_title_on_pad
ep_spellcheck
ep_subscript_and_superscript
ep_table_of_contents --runtimeVersion="${{ matrix.node }}"
ep_table_of_contents
-
name: Run the backend tests
run: gnpm test --runtimeVersion="${{ matrix.node }}"
Expand Down Expand Up @@ -232,22 +231,19 @@ jobs:
run: gnpm build --runtimeVersion="${{ matrix.node }}"
-
name: Install Etherpad plugins
# The --legacy-peer-deps flag is required to work around a bug in npm
# v7: https://github.com/npm/cli/issues/2199
run: >
gnpm install --workspace-root
ep_align
ep_author_hover
ep_cursortrace
ep_font_size
ep_hash_auth
ep_headings2
ep_markdown
ep_readonly_guest
ep_set_title_on_pad
ep_spellcheck
ep_subscript_and_superscript
ep_table_of_contents --runtimeVersion="${{ matrix.node }}"
ep_table_of_contents
# Etherpad core dependencies must be installed after installing the
# plugin's dependencies, otherwise npm will try to hoist common
# dependencies by removing them from src/node_modules and installing them
Expand Down
4 changes: 2 additions & 2 deletions .github/workflows/build-and-deploy-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ jobs:
with:
version: 0.0.12
- name: Setup Pages
uses: actions/configure-pages@v5
uses: actions/configure-pages@v6
- name: Install dependencies
run: gnpm install
- name: Build app
Expand All @@ -65,4 +65,4 @@ jobs:
path: './doc/.vitepress/dist'
- name: Deploy to GitHub Pages
id: deployment
uses: actions/deploy-pages@v4
uses: actions/deploy-pages@v5
12 changes: 6 additions & 6 deletions .github/workflows/docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,13 +30,13 @@ jobs:
-
name: Set up QEMU
if: github.event_name == 'push'
uses: docker/setup-qemu-action@v3
uses: docker/setup-qemu-action@v4
-
name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
uses: docker/setup-buildx-action@v4
-
name: Build and export to Docker
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: ./etherpad
target: production
Expand Down Expand Up @@ -82,7 +82,7 @@ jobs:
name: Docker meta
if: github.event_name == 'push'
id: meta
uses: docker/metadata-action@v5
uses: docker/metadata-action@v6
with:
images: etherpad/etherpad
tags: |
Expand All @@ -93,15 +93,15 @@ jobs:
-
name: Log in to Docker Hub
if: github.event_name == 'push'
uses: docker/login-action@v3
uses: docker/login-action@v4
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
-
name: Build and push
id: build-docker
if: github.event_name == 'push'
uses: docker/build-push-action@v6
uses: docker/build-push-action@v7
with:
context: ./etherpad
target: production
Expand Down
83 changes: 16 additions & 67 deletions .github/workflows/frontend-admin-tests.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# Leave the powered by Sauce Labs bit in as this means we get additional concurrency
name: "Frontend admin tests"

on:
push:
paths-ignore:
- 'doc/**'
pull_request:
paths-ignore:
- 'doc/**'

permissions:
contents: read # to fetch code (actions/checkout)
contents: read

jobs:
withplugins:
Expand All @@ -22,12 +24,6 @@ jobs:
node: [20, 22, 24]

steps:
-
name: Generate Sauce Labs strings
id: sauce_strings
run: |
printf %s\\n '::set-output name=name::${{ github.workflow }} - ${{ github.job }} - Node ${{ matrix.node }}'
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}-node${{ matrix.node }}'
-
name: Checkout repository
uses: actions/checkout@v6
Expand All @@ -47,38 +43,20 @@ jobs:
uses: SamTV12345/gnpm-setup@main
with:
version: 0.0.12
- name: Cache playwright binaries
uses: actions/cache@v5
id: playwright-cache
with:
path: |
~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ env.PLAYWRIGHT_VERSION }}
#-
# name: Install etherpad plugins
# # We intentionally install an old ep_align version to test upgrades to
# # the minor version number. The --legacy-peer-deps flag is required to
# # work around a bug in npm v7: https://github.com/npm/cli/issues/2199
# run: pnpm install --workspace-root ep_align@0.2.27
# Etherpad core dependencies must be installed after installing the
# plugin's dependencies, otherwise npm will try to hoist common
# dependencies by removing them from src/node_modules and installing them
# in the top-level node_modules. As of v6.14.10, npm's hoist logic appears
# to be buggy, because it sometimes removes dependencies from
# src/node_modules but fails to add them to the top-level node_modules.
# Even if npm correctly hoists the dependencies, the hoisting seems to
# confuse tools such as `npm outdated`, `npm update`, and some ESLint
# rules.
-
name: Install all dependencies and symlink for ep_etherpad-lite
run: gnpm i --runtimeVersion="${{ matrix.node }}"
#-
# name: Install etherpad plugins
# run: rm -Rf node_modules/ep_align/static/tests/*
-
name: export GIT_HASH to env
id: environment
run: echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
- name: Cache Playwright browsers
uses: actions/cache@v5
id: playwright-cache
with:
path: ~/.cache/ms-playwright
key: ${{ runner.os }}-playwright-${{ hashFiles('src/package.json') }}
- name: Install Playwright browsers
if: steps.playwright-cache.outputs.cache-hit != 'true'
run: cd src && npx playwright install
- name: Install Playwright system dependencies
run: cd src && npx playwright install-deps
-
name: Create settings.json
run: cp settings.json.template settings.json
Expand All @@ -96,33 +74,6 @@ jobs:
working-directory: admin
run: |
gnpm run build --runtimeVersion="${{ matrix.node }}"
# name: Run the frontend admin tests
# shell: bash
# env:
# SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
# SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
# SAUCE_NAME: ${{ steps.sauce_strings.outputs.name }}
# TRAVIS_JOB_NUMBER: ${{ steps.sauce_strings.outputs.tunnel_id }}
# GIT_HASH: ${{ steps.environment.outputs.sha_short }}
# run: |
# src/tests/frontend/travis/adminrunner.sh
#-
# uses: saucelabs/sauce-connect-action@v2.3.6
# with:
# username: ${{ secrets.SAUCE_USERNAME }}
# accessKey: ${{ secrets.SAUCE_ACCESS_KEY }}
# tunnelIdentifier: ${{ steps.sauce_strings.outputs.tunnel_id }}
#-
# name: Run the frontend admin tests
# shell: bash
# env:
# SAUCE_USERNAME: ${{ secrets.SAUCE_USERNAME }}
# SAUCE_ACCESS_KEY: ${{ secrets.SAUCE_ACCESS_KEY }}
# SAUCE_NAME: ${{ steps.sauce_strings.outputs.name }}
# TRAVIS_JOB_NUMBER: ${{ steps.sauce_strings.outputs.tunnel_id }}
# GIT_HASH: ${{ steps.environment.outputs.sha_short }}
# run: |
# src/tests/frontend/travis/adminrunner.sh
- name: Run the frontend admin tests
shell: bash
run: |
Expand All @@ -138,10 +89,8 @@ jobs:
sleep 1
done
cd src
gnpm exec playwright install --runtimeVersion="${{ matrix.node }}"
gnpm exec playwright install-deps --runtimeVersion="${{ matrix.node }}"
gnpm run test-admin --runtimeVersion="${{ matrix.node }}"
- uses: actions/upload-artifact@v6
- uses: actions/upload-artifact@v7
if: always()
with:
name: playwright-report-${{ matrix.node }}
Expand Down
101 changes: 9 additions & 92 deletions .github/workflows/frontend-tests.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
# Leave the powered by Sauce Labs bit in as this means we get additional concurrency
name: "Frontend tests powered by Sauce Labs"
name: "Frontend tests"

on:
push:
paths-ignore:
- 'doc/**'
pull_request:
paths-ignore:
- 'doc/**'

permissions:
contents: read # to fetch code (actions/checkout)
contents: read

jobs:
playwright-chrome:
Expand All @@ -16,12 +18,6 @@ jobs:
name: Playwright Chrome
runs-on: ubuntu-latest
steps:
-
name: Generate Sauce Labs strings
id: sauce_strings
run: |
printf %s\\n '::set-output name=name::${{ github.workflow }} - ${{ github.job }}'
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}'
-
name: Checkout repository
uses: actions/checkout@v6
Expand All @@ -45,10 +41,6 @@ jobs:
-
name: Install all dependencies and symlink for ep_etherpad-lite
run: gnpm install --frozen-lockfile
-
name: export GIT_HASH to env
id: environment
run: echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
-
name: Create settings.json
run: cp ./src/tests/settings.json settings.json
Expand All @@ -69,10 +61,10 @@ jobs:
cd src
gnpm exec playwright install chromium --with-deps
gnpm run test-ui --project=chromium
- uses: actions/upload-artifact@v6
- uses: actions/upload-artifact@v7
if: always()
with:
name: playwright-report-${{ matrix.node }}-chrome
name: playwright-report-chrome
path: src/playwright-report/
retention-days: 30
playwright-firefox:
Expand All @@ -81,11 +73,6 @@ jobs:
name: Playwright Firefox
runs-on: ubuntu-latest
steps:
- name: Generate Sauce Labs strings
id: sauce_strings
run: |
printf %s\\n '::set-output name=name::${{ github.workflow }} - ${{ github.job }}'
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}'
- name: Checkout repository
uses: actions/checkout@v6
- uses: actions/cache@v5
Expand All @@ -107,9 +94,6 @@ jobs:
version: 0.0.12
- name: Install all dependencies and symlink for ep_etherpad-lite
run: gnpm install --frozen-lockfile
- name: export GIT_HASH to env
id: environment
run: echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
- name: Create settings.json
run: cp ./src/tests/settings.json settings.json
- name: Run the frontend tests
Expand All @@ -129,76 +113,9 @@ jobs:
cd src
gnpm exec playwright install firefox --with-deps
gnpm run test-ui --project=firefox
- uses: actions/upload-artifact@v6
- uses: actions/upload-artifact@v7
if: always()
with:
name: playwright-report-${{ matrix.node }}-firefox
name: playwright-report-firefox
path: src/playwright-report/
retention-days: 30
playwright-webkit:
name: Playwright Webkit
runs-on: ubuntu-latest
env:
PNPM_HOME: ~/.pnpm-store
steps:
-
name: Generate Sauce Labs strings
id: sauce_strings
run: |
printf %s\\n '::set-output name=name::${{ github.workflow }} - ${{ github.job }}'
printf %s\\n '::set-output name=tunnel_id::${{ github.run_id }}-${{ github.run_number }}-${{ github.job }}'
-
name: Checkout repository
uses: actions/checkout@v6
- uses: actions/cache@v5
name: Setup gnpm cache
if: always()
with:
path: |
${{ env.PNPM_HOME }}
~/.local/share/gnpm
~/.cache/ms-playwright
/usr/local/bin/gnpm
/usr/local/bin/gnpm-0.0.12
key: ${{ runner.os }}-gnpm-store-${{ hashFiles('**/pnpm-lock.yaml') }}
restore-keys: ${{ runner.os }}-gnpm-store-
- name: Setup gnpm
uses: SamTV12345/gnpm-setup@main
with:
version: 0.0.12
-
name: Install all dependencies and symlink for ep_etherpad-lite
run: gnpm install --frozen-lockfile
-
name: export GIT_HASH to env
id: environment
run: echo "::set-output name=sha_short::$(git rev-parse --short ${{ github.sha }})"
-
name: Create settings.json
run: cp ./src/tests/settings.json settings.json
- name: Run the frontend tests
shell: bash
run: |
gnpm run prod &
connected=false
can_connect() {
curl -sSfo /dev/null http://localhost:9001/ || return 1
connected=true
}
now() { date +%s; }
start=$(now)
while [ $(($(now) - $start)) -le 15 ] && ! can_connect; do
sleep 1
done
cd src
gnpm exec playwright install webkit --with-deps
gnpm run test-ui --project=webkit || true
- uses: actions/upload-artifact@v6
if: always()
with:
name: playwright-report-${{ matrix.node }}-webkit
path: src/playwright-report/
retention-days: 30



10 changes: 3 additions & 7 deletions .github/workflows/load-test.yml
Original file line number Diff line number Diff line change
@@ -1,13 +1,9 @@
name: "Loadtest"

# any branch is useful for testing before a PR is submitted
on:
push:
paths-ignore:
- "doc/**"
pull_request:
paths-ignore:
- "doc/**"
schedule:
- cron: '0 8 * * *' # Daily at 08:00 UTC
workflow_dispatch: # Allow manual trigger

permissions:
contents: read
Expand Down
Loading
Loading