From 5174ca56236579d07f9ff79469b1f75e645f2e6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20M=C3=BCller?= Date: Wed, 6 May 2026 21:53:47 +0200 Subject: [PATCH 1/4] feat: Add tests for docker with plugins --- .github/workflows/e2e-test.yml | 57 +++++++++++++++++++++ tests/e2e/docker/docker-compose.plugins.yml | 6 +++ 2 files changed, 63 insertions(+) create mode 100644 tests/e2e/docker/docker-compose.plugins.yml diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index 5e4182c..c394e77 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -352,6 +352,63 @@ jobs: diff -u /tmp/latest.txt /tmp/actual.txt + EtherpadDockerWithPlugins: + name: Docker [${{ matrix.versions.tag }}] with plugins + runs-on: ubuntu-latest + needs: DynamicVersionMatrix + + strategy: + matrix: + versions: ${{ fromJSON(needs.DynamicVersionMatrix.outputs.matrix) }} + fail-fast: false + steps: + - name: Checkout repository + uses: actions/checkout@v6 + + - name: Start docker containers + run: | + EP_VERSION=${{ matrix.versions.tag }} docker compose -f ./tests/e2e/docker/docker-compose.plugins.yml up -d --wait + + - name: Cache Composer packages + id: composer-cache + uses: actions/cache@v5 + with: + path: vendor + key: ${{ runner.os }}-php-${{ hashFiles('**/composer.lock') }} + restore-keys: | + ${{ runner.os }}-php- + + - name: Install dependencies + run: composer install --prefer-dist --no-progress + + - name: Scan etherpad instance + run: | + set -euo pipefail + output="$(bin/console.php ether:scan http://localhost:9001)" + echo "$output" + + expected="Package version: ${{ matrix.versions.expected }}" + if ! grep -Fq "$expected" <<< "$output"; then + echo "Assertion failed: expected output to contain: $expected" + exit 1 + fi + + expectedPackages=( + "ep_align" + "ep_headings2" + "ep_font_color" + "ep_adminpads2" + "ep_comments_page" + "ep_font_size" + "ep_markdown" + ) + for pkg in "${expectedPackages[@]}"; do + if ! grep -Fq "* $pkg" <<< "$output"; then + echo "Assertion failed: expected output to contain: * $pkg" + exit 1 + fi + done + EtherpadDifferentVersion: name: Docker [${{ matrix.versions.tag }}] runs-on: ubuntu-latest diff --git a/tests/e2e/docker/docker-compose.plugins.yml b/tests/e2e/docker/docker-compose.plugins.yml new file mode 100644 index 0000000..6242194 --- /dev/null +++ b/tests/e2e/docker/docker-compose.plugins.yml @@ -0,0 +1,6 @@ +services: + etherpad: + image: etherpad/etherpad:$EP_VERSION + command: ["sh", "-c", "pnpm run plugins i ep_align ep_headings2 ep_font_color ep_adminpads2 ep_comments_page ep_font_size ep_markdown && pnpm run prod"] + ports: + - 9001:9001 From 3785631f16169c50ff938b2ea09a5eeca55e678c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20M=C3=BCller?= Date: Mon, 11 May 2026 21:06:43 +0200 Subject: [PATCH 2/4] Reduce test matrix for docker with plugins test --- .github/workflows/e2e-test.yml | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index c394e77..d34e725 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -355,11 +355,14 @@ jobs: EtherpadDockerWithPlugins: name: Docker [${{ matrix.versions.tag }}] with plugins runs-on: ubuntu-latest - needs: DynamicVersionMatrix strategy: matrix: - versions: ${{ fromJSON(needs.DynamicVersionMatrix.outputs.matrix) }} + versions: [ + { tag: "2.7.2" }, + { tag: "2.6.1" }, + { tag: "2.5.0" }, + ] fail-fast: false steps: - name: Checkout repository @@ -387,7 +390,7 @@ jobs: output="$(bin/console.php ether:scan http://localhost:9001)" echo "$output" - expected="Package version: ${{ matrix.versions.expected }}" + expected="Package version: ${{ matrix.versions.tag }}" if ! grep -Fq "$expected" <<< "$output"; then echo "Assertion failed: expected output to contain: $expected" exit 1 From 32c0275a5200566db1920459abf9161856b08ec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20M=C3=BCller?= Date: Mon, 11 May 2026 21:11:09 +0200 Subject: [PATCH 3/4] Update api version lookup --- src/Service/ApiVersionLookupService.php | 3 ++- tests/e2e/fixture/latest.txt | 2 +- tests/e2e/fixture/master_with_plugins.txt | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/src/Service/ApiVersionLookupService.php b/src/Service/ApiVersionLookupService.php index 3b44a4e..bfc70c5 100644 --- a/src/Service/ApiVersionLookupService.php +++ b/src/Service/ApiVersionLookupService.php @@ -21,7 +21,8 @@ class ApiVersionLookupService '1.2.13' => ['1.6.0', '1.8.0'], '1.2.14' => ['1.8.1', '1.8.5'], '1.2.15' =>['1.8.6', '1.8.18'], - '1.3.0' => ['1.9.0', null], + '1.3.0' => ['1.9.0', '2.7.2'], + '1.3.1' => ['2.7.3', null], ]; public function getEtherpadVersionRange(string $apiVersion): ?VersionRange diff --git a/tests/e2e/fixture/latest.txt b/tests/e2e/fixture/latest.txt index 5d865c5..dc647b8 100644 --- a/tests/e2e/fixture/latest.txt +++ b/tests/e2e/fixture/latest.txt @@ -4,7 +4,7 @@ Starting scan of api: http://localhost:9001/ [INFO] No revision in server header - [INFO] api version: 1.3.0 + [INFO] api version: 1.3.1 Starting scan of a pad... ========================= diff --git a/tests/e2e/fixture/master_with_plugins.txt b/tests/e2e/fixture/master_with_plugins.txt index 94e465f..5f77e5d 100644 --- a/tests/e2e/fixture/master_with_plugins.txt +++ b/tests/e2e/fixture/master_with_plugins.txt @@ -4,7 +4,7 @@ Starting scan of api: http://localhost:9001/ [INFO] No revision in server header - [INFO] api version: 1.3.0 + [INFO] api version: 1.3.1 Starting scan of a pad... ========================= From 133e89c9a44c35b565b3f06d4151f80a9e64939d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Stefan=20M=C3=BCller?= Date: Mon, 11 May 2026 21:18:41 +0200 Subject: [PATCH 4/4] Show docker compose logs on failure --- .github/workflows/e2e-test.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/e2e-test.yml b/.github/workflows/e2e-test.yml index d34e725..d210d49 100644 --- a/.github/workflows/e2e-test.yml +++ b/.github/workflows/e2e-test.yml @@ -372,6 +372,11 @@ jobs: run: | EP_VERSION=${{ matrix.versions.tag }} docker compose -f ./tests/e2e/docker/docker-compose.plugins.yml up -d --wait + - name: Dump docker compose logs on failure + if: failure() + run: | + docker compose -f ./tests/e2e/docker/docker-compose.plugins.yml logs --no-color --timestamps + - name: Cache Composer packages id: composer-cache uses: actions/cache@v5