ci(desktop): add skipVlcSetup opt-out to bypass flaky VLC downloads

get.videolan.org regularly times out from GitHub-hosted runners and
Claude Code web sandboxes, taking the desktop CI build down with it
even though the failure is unrelated to the change under review.

Wire a -PskipVlcSetup=true (env: AMETHYST_SKIP_VLC=true) opt-out in
desktopApp/build.gradle.kts that disables the vlcDownload, upxDownload,
and vlcSetup tasks. Pass it from build.yml so PR CI no longer gates on
VLC reachability, and export the env from the CCW session-start hook.

Release packaging (create-release.yml) intentionally does not set the
flag, so shipped artifacts still bundle VLC.
This commit is contained in:
Claude
2026-05-05 15:41:01 +00:00
parent f2c8e154cf
commit ab68f827ce
3 changed files with 28 additions and 1 deletions
+4
View File
@@ -172,6 +172,10 @@ if [ -n "${CLAUDE_ENV_FILE:-}" ]; then
echo "export ANDROID_HOME=$ANDROID_SDK_DIR" >> "$CLAUDE_ENV_FILE" echo "export ANDROID_HOME=$ANDROID_SDK_DIR" >> "$CLAUDE_ENV_FILE"
echo "export ANDROID_SDK_ROOT=$ANDROID_SDK_DIR" >> "$CLAUDE_ENV_FILE" echo "export ANDROID_SDK_ROOT=$ANDROID_SDK_DIR" >> "$CLAUDE_ENV_FILE"
echo "export PATH=\$PATH:$ANDROID_SDK_DIR/platform-tools" >> "$CLAUDE_ENV_FILE" echo "export PATH=\$PATH:$ANDROID_SDK_DIR/platform-tools" >> "$CLAUDE_ENV_FILE"
# get.videolan.org is unreachable / heavily rate-limited from CCW egress,
# so disable the desktopApp vlcDownload / upxDownload / vlcSetup tasks by
# default. See desktopApp/build.gradle.kts for the opt-out wiring.
echo "export AMETHYST_SKIP_VLC=true" >> "$CLAUDE_ENV_FILE"
fi fi
# --- Kotlin/Native: pre-install native dependencies (GCC sysroot, LLDB) --- # --- Kotlin/Native: pre-install native dependencies (GCC sysroot, LLDB) ---
+6 -1
View File
@@ -65,8 +65,13 @@ jobs:
java-version: 21 java-version: 21
cache: gradle cache: gradle
# `-PskipVlcSetup=true` disables the vlcDownload / upxDownload / vlcSetup
# tasks (see desktopApp/build.gradle.kts). PR CI artifacts are smoke-test
# only — get.videolan.org is too flaky from GitHub-hosted runners to gate
# PRs on. Release packaging (create-release.yml) deliberately omits this
# flag so shipped artifacts still bundle VLC.
- name: Test + Build Desktop (gradle) - name: Test + Build Desktop (gradle)
run: ./gradlew :quartz:jvmTest :commons:jvmTest :nestsClient:jvmTest :cli:test :desktopApp:test :desktopApp:${{ matrix.desktop-task }} --no-daemon run: ./gradlew :quartz:jvmTest :commons:jvmTest :nestsClient:jvmTest :cli:test :desktopApp:test :desktopApp:${{ matrix.desktop-task }} --no-daemon -PskipVlcSetup=true
# jpackage pins libicu to the build host's version (libicu74 on # jpackage pins libicu to the build host's version (libicu74 on
# ubuntu-24.04). Rewrite the .deb so testers on other Debian/Ubuntu # ubuntu-24.04). Rewrite the .deb so testers on other Debian/Ubuntu
+18
View File
@@ -164,6 +164,24 @@ tasks.withType<Download>().configureEach {
tempAndMove(true) tempAndMove(true)
} }
// Opt-out for VLC bundling. CI (build.yml) and ephemeral build sandboxes
// (Claude Code web) routinely lose connectivity to get.videolan.org and the
// retry budget above is not enough to mask it. Setting `-PskipVlcSetup=true`
// (or env `AMETHYST_SKIP_VLC=true`) disables the vlc/upx download + extract
// tasks so packaging proceeds without bundling VLC. The release workflow
// (create-release.yml) does NOT set this, so production artifacts still ship
// with VLC bundled.
val skipVlcSetup =
(project.findProperty("skipVlcSetup") as? String)?.toBoolean() == true ||
System.getenv("AMETHYST_SKIP_VLC") == "true"
if (skipVlcSetup) {
logger.lifecycle("desktopApp: skipVlcSetup=true — disabling vlcDownload/upxDownload/vlcSetup. Built artifacts will NOT bundle VLC.")
tasks.matching { it.name in setOf("vlcDownload", "upxDownload", "vlcSetup") }.configureEach {
enabled = false
}
}
// --- AppImage packaging (Linux) --- // --- AppImage packaging (Linux) ---
// //
// Compose Multiplatform's TargetFormat.AppImage is known-broken in 1.10.x (CMP-7101). // Compose Multiplatform's TargetFormat.AppImage is known-broken in 1.10.x (CMP-7101).