Compare commits

..
Author SHA1 Message Date
Rsclub2_2andClaude Opus 5.5 ed5ef82e95 ci: print full stacks of failed tests and keep reports on a cancel
Nightly #303 named the hanging test, SelectedStationMessageUiVisual-
RenderingTest at scene.render(), but the short exception format showed
only that line, not the call that blocked below it. The job timeout
cancels the run, and the test reports were kept only on failure().

Failed tests now print their full stack, causes included, and the
reports are uploaded on cancelled() as well.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-25 01:11:04 +02:00
2 changed files with 6 additions and 37 deletions

No files matched your search

+3 -19
View File
@@ -7,22 +7,12 @@ arch=('x86_64')
url="https://github.com/HamRadioOnline/kst4contest" url="https://github.com/HamRadioOnline/kst4contest"
license=('GPL-3.0-only') license=('GPL-3.0-only')
depends=('gst-plugins-base' 'gst-plugins-good') depends=('gst-plugins-base' 'gst-plugins-good')
makedepends=('git') makedepends=('java-environment=21' 'git')
provides=('kst4contest') provides=('kst4contest')
conflicts=('kst4contest' 'kst4contest-bin') conflicts=('kst4contest' 'kst4contest-bin')
source=("kst4contest::git+https://github.com/HamRadioOnline/kst4contest.git") source=("kst4contest::git+https://github.com/HamRadioOnline/kst4contest.git")
sha256sums=('SKIP') sha256sums=('SKIP')
# The launcher is built with Temurin, not with the system JDK. Arch's openjdk links
# jpackage's launcher library against the shared libstdc++, and that build aborts
# with "pure virtual method called" (SIGABRT, core dump) in a static destructor when
# the application exits; Temurin links libstdc++ statically, like the CI packages.
# The _x86_64 arrays are deliberate: aur-publish.yml rewrites the plain sha256sums=
# line on every release and would drop a second entry there.
_temurin=21.0.13+9
source_x86_64=("https://github.com/adoptium/temurin21-binaries/releases/download/jdk-${_temurin/+/%2B}/OpenJDK21U-jdk_x64_linux_hotspot_${_temurin/+/_}.tar.gz")
sha256sums_x86_64=('d7f5d5cf865a2902b70ff549b97586a7d3f234e016f041ab447ea740c7d66d1c')
pkgver() { pkgver() {
cd "${srcdir}/kst4contest" cd "${srcdir}/kst4contest"
BASE=$(grep -m1 '^version=' gradle.properties \ BASE=$(grep -m1 '^version=' gradle.properties \
@@ -33,7 +23,7 @@ pkgver() {
build() { build() {
cd "${srcdir}/kst4contest" cd "${srcdir}/kst4contest"
export JAVA_HOME="${srcdir}/jdk-${_temurin}" export JAVA_HOME=$(find /usr/lib/jvm -maxdepth 1 -name 'java-21-*' -type d | head -n 1)
export PATH="${JAVA_HOME}/bin:${PATH}" export PATH="${JAVA_HOME}/bin:${PATH}"
# A Gradle home inside $srcdir keeps the build independent of whatever the # A Gradle home inside $srcdir keeps the build independent of whatever the
@@ -41,13 +31,7 @@ build() {
# cache, every dependency added since the last local build broke the package. # cache, every dependency added since the last local build broke the package.
export GRADLE_USER_HOME="${srcdir}/gradle-home" export GRADLE_USER_HOME="${srcdir}/gradle-home"
# The Java toolchain, and with it jpackage, would otherwise pick any JDK 21 it ./gradlew --no-daemon -S :app-desktop:createDistributable
# finds in /usr/lib/jvm, the system one included.
./gradlew --no-daemon -S \
-Porg.gradle.java.installations.auto-detect=false \
-Porg.gradle.java.installations.auto-download=false \
-Porg.gradle.java.installations.paths="${JAVA_HOME}" \
:app-desktop:createDistributable
# package() reads dist/KST4Contest. Application name, icon and the JDK # package() reads dist/KST4Contest. Application name, icon and the JDK
# module list come from app-desktop/build.gradle.kts. # module list come from app-desktop/build.gradle.kts.
+3 -18
View File
@@ -7,25 +7,16 @@ arch=('x86_64')
url="https://github.com/HamRadioOnline/kst4contest" url="https://github.com/HamRadioOnline/kst4contest"
license=('GPL-3.0-only') license=('GPL-3.0-only')
depends=('gst-plugins-base' 'gst-plugins-good') depends=('gst-plugins-base' 'gst-plugins-good')
makedepends=('java-environment=21')
provides=('kst4contest') provides=('kst4contest')
conflicts=('kst4contest-bin' 'kst4contest-git') conflicts=('kst4contest-bin' 'kst4contest-git')
source=("${pkgname}-${pkgver}.tar.gz::https://github.com/HamRadioOnline/kst4contest/archive/refs/tags/v${pkgver}.tar.gz") source=("${pkgname}-${pkgver}.tar.gz::https://github.com/HamRadioOnline/kst4contest/archive/refs/tags/v${pkgver}.tar.gz")
sha256sums=('e702df24a29e6f914a43934df0095bc4adbd00a9f02df3a632816c832272e914') sha256sums=('e702df24a29e6f914a43934df0095bc4adbd00a9f02df3a632816c832272e914')
# The launcher is built with Temurin, not with the system JDK. Arch's openjdk links
# jpackage's launcher library against the shared libstdc++, and that build aborts
# with "pure virtual method called" (SIGABRT, core dump) in a static destructor when
# the application exits; Temurin links libstdc++ statically, like the CI packages.
# The _x86_64 arrays are deliberate: aur-publish.yml rewrites the plain sha256sums=
# line on every release and would drop a second entry there.
_temurin=21.0.13+9
source_x86_64=("https://github.com/adoptium/temurin21-binaries/releases/download/jdk-${_temurin/+/%2B}/OpenJDK21U-jdk_x64_linux_hotspot_${_temurin/+/_}.tar.gz")
sha256sums_x86_64=('d7f5d5cf865a2902b70ff549b97586a7d3f234e016f041ab447ea740c7d66d1c')
build() { build() {
cd "${srcdir}/kst4contest-${pkgver}" cd "${srcdir}/kst4contest-${pkgver}"
export JAVA_HOME="${srcdir}/jdk-${_temurin}" export JAVA_HOME=$(find /usr/lib/jvm -maxdepth 1 -name 'java-21-*' -type d | head -n 1)
export PATH="${JAVA_HOME}/bin:${PATH}" export PATH="${JAVA_HOME}/bin:${PATH}"
# A Gradle home inside $srcdir keeps the build independent of whatever the # A Gradle home inside $srcdir keeps the build independent of whatever the
@@ -33,13 +24,7 @@ build() {
# cache, every dependency added since the last local build broke the package. # cache, every dependency added since the last local build broke the package.
export GRADLE_USER_HOME="${srcdir}/gradle-home" export GRADLE_USER_HOME="${srcdir}/gradle-home"
# The Java toolchain, and with it jpackage, would otherwise pick any JDK 21 it ./gradlew --no-daemon -S :app-desktop:createDistributable
# finds in /usr/lib/jvm, the system one included.
./gradlew --no-daemon -S \
-Porg.gradle.java.installations.auto-detect=false \
-Porg.gradle.java.installations.auto-download=false \
-Porg.gradle.java.installations.paths="${JAVA_HOME}" \
:app-desktop:createDistributable
# package() reads dist/KST4Contest. Application name, icon and the JDK # package() reads dist/KST4Contest. Application name, icon and the JDK
# module list come from app-desktop/build.gradle.kts, so this PKGBUILD no # module list come from app-desktop/build.gradle.kts, so this PKGBUILD no