From 15f514d5fbd1c151e62d7611140bd0b213608105 Mon Sep 17 00:00:00 2001 From: denis0001-dev Date: Sun, 13 Sep 2026 18:07:59 +0300 Subject: [PATCH] Fix CI prebuilt ProGuard task ordering and env scoping. Co-authored-by: Cursor --- .github/workflows/release.yml | 11 ++++++++--- app/desktop/build.gradle.kts | 25 ++++++++++++++++--------- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index e177a0d..73ce906 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -25,7 +25,6 @@ concurrency: env: GRADLE_OPTS: -Dorg.gradle.jvmargs=-Xmx6g -Dkotlin.daemon.jvm.options=-Xmx6g - FROMCHAT_PREBUILT_PROGUARD: "1" jobs: resolve-version: @@ -53,6 +52,8 @@ jobs: needs: resolve-version runs-on: ubuntu-latest timeout-minutes: 45 + env: + FROMCHAT_PREBUILT_PROGUARD: "0" steps: - uses: actions/checkout@v4 - uses: actions/setup-java@v4 @@ -115,6 +116,8 @@ jobs: windows-package: needs: [resolve-version, desktop-proguard, windows-common] + env: + FROMCHAT_PREBUILT_PROGUARD: "1" strategy: fail-fast: false matrix: @@ -158,8 +161,6 @@ jobs: run: | export FROMCHAT_PACKAGING_JDK="$JAVA_HOME" args=( - :app:desktop:createReleaseDistributable - :app:desktop:patchWindowsJpackageReleaseIcon :app:desktop:packSetupOnly "-PdesktopArch=${{ matrix.arch }}" --no-daemon @@ -177,6 +178,8 @@ jobs: macos: needs: [resolve-version, desktop-proguard] + env: + FROMCHAT_PREBUILT_PROGUARD: "1" strategy: fail-fast: false matrix: @@ -238,6 +241,8 @@ jobs: linux: needs: [resolve-version, desktop-proguard] + env: + FROMCHAT_PREBUILT_PROGUARD: "1" strategy: fail-fast: false matrix: diff --git a/app/desktop/build.gradle.kts b/app/desktop/build.gradle.kts index 6ddd2d5..1d9f09f 100644 --- a/app/desktop/build.gradle.kts +++ b/app/desktop/build.gradle.kts @@ -989,8 +989,7 @@ val patchWindowsJpackageReleaseIcon = tasks.register("patchWindowsJpackage group = "compose desktop" description = "Embed branded icon into release jpackage FromChat.exe." onlyIf { runningOnWindows } - dependsOn(ensureWindowsRustBinaries) - mustRunAfter("createReleaseDistributable") + dependsOn(ensureWindowsRustBinaries, "createReleaseDistributable") doFirst { val appImageDir = releaseAppImageDir.get().asFile check(appImageDir.isDirectory) { "Missing app image at ${appImageDir.absolutePath}" } @@ -1094,7 +1093,7 @@ tasks.register("packSetupOnly") { group = "compose desktop" description = "Repack setup EXE from existing app-image + Rust (skips ProGuard)." onlyIf { runningOnWindows } - dependsOn(ensureWindowsRustBinaries) + dependsOn(ensureWindowsRustBinaries, "createReleaseDistributable", "patchWindowsJpackageReleaseIcon") configureWindowsPackTask( appImageDir = releaseAppImageDir, setupOutput = windowsSetupOutput, @@ -1149,16 +1148,24 @@ tasks.register("packageBetaWindows") { } afterEvaluate { + val exportingProguardForCi = gradle.startParameter.taskNames.any { + it.contains("exportReleaseProguardForCi") + } tasks.matching { it.name == "proguardReleaseJars" }.configureEach { onlyIf { - !useCiPrebuiltProguard() || !ciPrebuiltProguardDir.get().asFile.isDirectory + exportingProguardForCi || + !useCiPrebuiltProguard() || + !ciPrebuiltProguardDir.get().asFile.isDirectory } } - tasks.matching { - it.name == "createReleaseDistributable" || it.name == "createReleaseDistributableImpl" - }.configureEach { - if (useCiPrebuiltProguard()) { - dependsOn("stageCiPrebuiltProguard") + if (useCiPrebuiltProguard()) { + val stagePrebuilt = tasks.named("stageCiPrebuiltProguard") + tasks.matching { + it.name == "createReleaseDistributable" || + it.name == "createReleaseDistributableImpl" || + (it.name.startsWith("packageRelease") && it.name != "packageReleaseFromPrebuiltProguard") + }.configureEach { + dependsOn(stagePrebuilt) } } tasks.matching { it.name == "createRuntimeImage" || it.name == "createReleaseRuntimeImage" }.configureEach {