Skip to content

ci: add reusable headless Docker build environment#1475

Draft
joaodinissf wants to merge 2 commits into
dsldevkit:masterfrom
joaodinissf:wip/docker-build-env
Draft

ci: add reusable headless Docker build environment#1475
joaodinissf wants to merge 2 commits into
dsldevkit:masterfrom
joaodinissf:wip/docker-build-env

Conversation

@joaodinissf

@joaodinissf joaodinissf commented Jul 19, 2026

Copy link
Copy Markdown
Collaborator

Adds a self-contained Docker image and documentation for building and testing DSL DevKit headlessly in a Linux container, plus the Tycho target-environment profile needed to make that work on arm64 hosts.

What it adds

  • docker/Dockerfile — Maven + Eclipse Temurin 21 base, with Xvfb and the GTK/X11 libraries that Eclipse SWT and AWT require at runtime (including libXtst, without which the workbench fails to launch).
  • docker/README.md — how to build the image and run the full verify suite (tests + Checkstyle/PMD/CPD/SpotBugs) headlessly under Xvfb. Documents running with --init (so xvfb-run is not PID 1, which otherwise hangs the container) and mounting a persistent .m2 volume to cache p2/Maven downloads between runs. Includes a Dockerfile.local override path for networks that cannot reach Docker Hub.
  • 64bit_linux_aarch64 Maven profile in ddk-parent/pom.xml — sets osgi.os=linux, osgi.ws=gtk, osgi.arch=aarch64. Without it, Tycho falls back to the default win32 target environment on arm64 Linux and builds an unlaunchable test runtime, so SWT/UI tests cannot run there.

Verification

Full verify suite (including SWT/SWTBot UI tests under Xvfb) runs green in the container: all modules build, 714 tests pass, 0 failures, 0 errors.

joaodinissf and others added 2 commits July 19, 2026 18:28
Add a Maven profile activated on linux/aarch64 that sets osgi.os=linux,
osgi.ws=gtk, osgi.arch=aarch64. Without it, Tycho falls back to the pom's
default win32 target environment on arm64 Linux and builds an unlaunchable
test runtime (NoClassDefFoundError: org.eclipse.swt.SWTError, exit code 13),
so SWT/UI tests cannot run in an arm64 container.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Add docker/Dockerfile (Maven + Temurin 21 base plus Xvfb and the GTK/X11
libraries Eclipse SWT and AWT require) and a README documenting how to run
the full verify suite headlessly in a container. Runs --init so xvfb-run is
not PID 1, and mounts a persistent .m2 volume to cache p2/Maven downloads
between runs.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant