Skip to content

ci: e2e job overlaying fresh server build on nightly image#30

Merged
juliusknorr merged 3 commits into
mainfrom
ci/e2e-overlay-nightly
Jun 26, 2026
Merged

ci: e2e job overlaying fresh server build on nightly image#30
juliusknorr merged 3 commits into
mainfrom
ci/e2e-overlay-nightly

Conversation

@juliusknorr

@juliusknorr juliusknorr commented Jun 12, 2026

Copy link
Copy Markdown
Member

Adds an e2e workflow that builds the server binaries, overlays them onto ghcr.io/euro-office/documentserver:nightly, and runs the DocumentServer Playwright e2e suite against it. Full-stack feedback on a server change without rebuilding core/sdkjs/web-apps.

How it works

  • Pulls the nightly image and reads the PRODUCT_VERSION it was built with.
  • Stamps that version into commondefines.js (mirroring the bake), then pkg-builds the service binaries (docservice, fileconverter, metrics).
  • Replaces the matching binaries in the image (server/DocService/docservice, server/FileConverter/converter, server/Metrics/metrics); install path discovered via the sdkjs dir. Runs the e2e suite from Euro-Office/DocumentServer (matching branch, fallback main).

Notes

  • docservice rejects an editor whose buildVersion differs from its own, so the fresh docservice must carry the nightly image version — hence the commondefines.js stamp.
  • The AdminPanel webpack client is intentionally not overlaid; the e2e suite never exercises the admin UI.
  • All involved repos and the documentserver package are public (no PAT).

Verified green against the current nightly.

@juliusknorr juliusknorr force-pushed the ci/e2e-overlay-nightly branch from c8e362c to 18faa56 Compare June 12, 2026 19:12
@juliusknorr juliusknorr marked this pull request as ready for review June 13, 2026 19:14
@juliusknorr juliusknorr requested review from a team and chrip June 18, 2026 12:42

@chrip chrip left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The e2e workflow is well designed and addresses a real need (server-only CI feedback). But the PR contains a lot of redundant changes that are already on main — the branch was created before those were merged. Please rebase on main to drop them, leaving only e2e.yml.

Redundant changes (already on main):

  • eslint.config.js: react/react-hooks config is already present
  • .prettierignore: AiIntegration entries are already there
  • package.json: eslint-plugin-react and eslint-plugin-react-hooks already in devDeps
  • npm-shrinkwrap.json: auto-generated changes from above
  • Color changes (#0082C9#0082c9): already normalized on main
  • webpack.config.js: formatting changes already on main
  • All the .module.scss files: color changes already merged

e2e workflow — verified correct:

  • sed replacement of buildVersion in commondefines.js matches current format (const buildVersion = '4.1.2';) ✓
  • buildVersion stamp is necessary: docservice rejects editors with differing versions (DocsCoServer.js:2776) ✓
  • pkg builds for DocService, FileConverter, Metrics ✓
  • Overlay Dockerfile correctly discovers install path via sdkjs dir ✓
  • Nightly version extraction from api/documents/api.js
  • E2E checkout fallback logic (branch → main) ✓
  • AdminPanel webpack client intentionally not overlaid ✓

Suggestion: Consider npm ci instead of npm install in the build step for reproducible builds.

@chrip chrip left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The e2e workflow is well designed and addresses a real need (server-only CI feedback). But the PR contains a lot of redundant changes that are already on main — the branch was created before those were merged. Please rebase on main to drop them, leaving only e2e.yml.

Redundant changes (already on main):

  • eslint.config.js: react/react-hooks config is already present
  • .prettierignore: AiIntegration entries are already there
  • package.json: eslint-plugin-react and eslint-plugin-react-hooks already in devDeps
  • npm-shrinkwrap.json: auto-generated changes from above
  • Color changes (#0082C9#0082c9): already normalized on main
  • webpack.config.js: formatting changes already on main
  • All the .module.scss files: color changes already merged

e2e workflow — verified correct:

  • sed replacement of buildVersion in commondefines.js matches current format (const buildVersion = '4.1.2';) ✓
  • buildVersion stamp is necessary: docservice rejects editors with differing versions (DocsCoServer.js:2776) ✓
  • pkg builds for DocService, FileConverter, Metrics ✓
  • Overlay Dockerfile correctly discovers install path via sdkjs dir ✓
  • Nightly version extraction from api/documents/api.js
  • E2E checkout fallback logic (branch → main) ✓
  • AdminPanel webpack client intentionally not overlaid ✓

Suggestion: Consider npm ci instead of npm install in the build step for reproducible builds.

Builds the pkg service binaries and overlays them onto
ghcr.io/euro-office/documentserver:nightly, then runs the DocumentServer
Playwright e2e suite for fast full-stack feedback.

Assisted-by: ClaudeCode:claude-opus-4-8
Signed-off-by: Julius Knorr <jus@bitgrid.net>
docservice rejects an editor whose buildVersion differs from its own,
leaving the document loading mask up. Mirror the bake's commondefines.js
sed with the version read from the nightly image so the fresh docservice
matches the nightly editor.

Assisted-by: ClaudeCode:claude-opus-4-8
Signed-off-by: Julius Knorr <jus@bitgrid.net>
Assisted-by: ClaudeCode:claude-opus-4-8
Signed-off-by: Julius Knorr <jus@bitgrid.net>
@juliusknorr juliusknorr force-pushed the ci/e2e-overlay-nightly branch from 42c5770 to 504a4ad Compare June 26, 2026 09:35
@juliusknorr

Copy link
Copy Markdown
Member Author

That is a lot of text for just requiring a rebase 😁

Did that, just relevant pieces left as it was based on #28

@juliusknorr juliusknorr merged commit 5d97eab into main Jun 26, 2026
6 of 7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants