ci: add reusable headless Docker build environment - #1475
Open
joaodinissf wants to merge 2 commits into
Open
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>
joaodinissf
force-pushed
the
wip/docker-build-env
branch
from
August 26, 2026 13:23
cccf372 to
69c6ead
Compare
joaodinissf
marked this pull request as ready for review
August 26, 2026 13:38
joaodinissf
enabled auto-merge (rebase)
August 26, 2026 13:43
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 reusable Docker image for building and testing DSL DevKit headlessly in a Linux container, plus the Tycho target-environment profile required on Linux ARM64.
This supersedes #1501: the first commit contains the ARM64 profile from that PR, and the second adds the tested container environment and documentation.
What it adds
64bit_linux_aarch64Maven profile withosgi.os=linux,osgi.ws=gtk, andosgi.arch=aarch64.MAVEN_IMAGEbuild argument, replacing the previous copiedDockerfile.localworkaround.Local verification
All Maven invocations used
-T 3C.Linux AMD64 on Windows
<testcase>elements.Linux ARM64 on Windows
--platform linux/arm64under Docker Desktop emulation.64bit_linux_aarch64and Tycho launched the Eclipse test runtime aslinux/gtk/aarch64.-Dtest.timeout=7200. Native ARM64 should be substantially faster.The exact final AMD64 and ARM64 images also launched an SWT
DisplayandShellunder Xvfb.Image cleanup
The original Dockerfile explicitly requested 20 packages, including redundant transitive dependencies and unused GTK4/ALSA fallback packages. The final image explicitly installs four:
libgtk-3-0t64librsvg2-commonlibxtst6xvfbCompared with the original image, this reduces the AMD64 image by 13.35 MiB and the ARM64 image by 14.70 MiB while retaining the required SWT/GTK behavior.