ci: add reusable headless Docker build environment#1475
Draft
joaodinissf wants to merge 2 commits into
Draft
Conversation
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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 (includinglibXtst, without which the workbench fails to launch).docker/README.md— how to build the image and run the fullverifysuite (tests + Checkstyle/PMD/CPD/SpotBugs) headlessly under Xvfb. Documents running with--init(soxvfb-runis not PID 1, which otherwise hangs the container) and mounting a persistent.m2volume to cache p2/Maven downloads between runs. Includes aDockerfile.localoverride path for networks that cannot reach Docker Hub.64bit_linux_aarch64Maven profile inddk-parent/pom.xml— setsosgi.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
verifysuite (including SWT/SWTBot UI tests under Xvfb) runs green in the container: all modules build, 714 tests pass, 0 failures, 0 errors.