| Age | Commit message (Collapse) | Author |
|
audio daemon, and pre-create Gradle output dirs
Three fixes found by actually building the image and then running the pipeline
against it, rather than by reading the Dockerfile:
1. Android SDK levels. apps/android, modules/orgflow-domain, modules/orgflow-ui
and modules/zero-bridge-android all set compileSdk/targetSdk = 35, but the
image only shipped platform 36 + build-tools 36. The first assemble died with
"Failed to install the following SDK components: build-tools;35.0.0,
platforms;android-35 / The SDK directory is not writable". Install 35 and 36
both, and chown /opt/android-sdk to the build user, since AGP writes into the
SDK itself (it installs missing components and maintains .knownPackages).
2. No audio daemon. The pulseaudio *server* package pulls in systemd, and
systemd's postinst blocks forever when the image is built under a runtime
without systemd - observed under FreeBSD's podman + Linuxulator, where
"systemd.postinst configure" hung the build indefinitely. Only the client
libraries (libasound2, libpulse0) are needed so webrtc-java natives can link;
the worker never plays media back. start-worker.sh no longer launches the
daemon either.
3. prepare-build-dirs.sh (new). Gradle tasks create their output trees at
execution time, and on Linuxulator a Gradle-internal directory creation can
fail with "Failed to create parent directory X when creating directory X/Y"
even though the same mkdir -p from a shell succeeds - and the created parents
must be owned by the build user or the next run dies with "Unable to delete
directory". Pre-creating the usual build/reports, build/outputs, build/tmp,
build/intermediates, ... trees as the build user side-steps both. On a real
Linux kernel this script is a harmless no-op.
The apt cache-size bump (APT::Cache-Start) is retained from the earlier revision:
the default 24MB mmap cache cannot parse the jammy package lists and fails with
"Dynamic MMap ran out of room" on hosts where the apt cache is expanded.
|
|
eclipse-temurin:21-jdk plus an explicit toolchain
WHY: the base image the worker used to inherit from (jenkins-kotlin:latest) was
built interactively during the Jenkins era and its Dockerfile was never
committed. It is now nowhere to be found - verified by searching this repo's
full history on both main and backup/full-pre-reset (only *references* to the
name appear, never a definition), the cgit server's repository list (no
jenkins/docker repo; the name 404s), and the build host's filesystem. The
worker therefore could not be rebuilt on any host, which is exactly what
blocked rebuilding it here on FreeBSD.
WHAT: the toolchain that image provided is now reproduced explicitly so the
image builds from source anywhere. Parent is eclipse-temurin:21-jdk-jammy, and
everything master.cfg's pipeline needs is installed on top:
- JDK 21 (modules target Java 17 via jvmTarget=17, so 21 as the toolchain is
correct and matches the master's own comment)
- Gradle 8.14.3 arrives through the committed wrapper (services.gradle.org),
so no Gradle is baked in
- node 20 (NodeSource) for wasmJsNodeTest and the web bundle
- Android SDK fully provisioned non-interactively: cmdline-tools 13114758
(verified HTTP 200 before pinning), then sdkmanager installs platform-tools,
platforms;android-36 and build-tools;36.0.0 - the same platform/build-tools
pair found installed on the known-good Ubuntu host, and the ones AGP 8.13.2
needs
- X11/xcb/xext/xrender/xi/xtst + ALSA + PulseAudio for the webrtc-java native
library
- python3 + buildbot-worker 4.1.0, git/curl/unzip for checkout and deploy
Compatibility: the image still runs as user "jenkins" with HOME=/var/jenkins_home
and GRADLE_USER_HOME=/var/jenkins_home/.gradle, so the existing run-worker.sh
docker run line (including -v jenkins-data:/var/jenkins_home) works unchanged and
the Gradle/Konan caches still persist across rebuilds. The one real regression is
the loss of the old image's pre-warmed caches, so the first build after this
change re-downloads dependencies; that is stated in the file's header comment.
|
|
its artifact to lighttpd; run-worker.sh: mount git_pass+github_token
|
|
reconfig procedure
|
|
was always empty); README: CLI watcher
|
|
lambda; README: error-log retrieval
|
|
|
|
bundleApk (config-cache); deploy/README.txt build+deploy guide
|
|
androidTarget
|
|
Full pre-reset history preserved on branch backup/full-pre-reset (2ccab79).
|