Skip to content

Commit cac3963

Browse files
author
ADFA
committed
Daily merge from stage to main
2 parents a675e09 + 3ec19ad commit cac3963

3 files changed

Lines changed: 34 additions & 139 deletions

File tree

.github/workflows/generate_assets.yml

Lines changed: 0 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -159,77 +159,6 @@ jobs:
159159
-Dorg.gradle.workers.max=1 \
160160
-Dorg.gradle.parallel=false
161161
162-
- name: Create Release Assets
163-
run: |
164-
flox activate -d flox/base -- ./gradlew :app:bundleV7LlamaAssets :app:bundleV8LlamaAssets :app:bundlePluginArtifactsForRelease --no-daemon \
165-
-Dorg.gradle.jvmargs="-Xmx10g -XX:MaxMetaspaceSize=2g -XX:+HeapDumpOnOutOfMemoryError --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.io=ALL-UNNAMED" \
166-
-Dandroid.aapt2.daemonHeapSize=4096M \
167-
-Dorg.gradle.workers.max=1 \
168-
-Dorg.gradle.parallel=false
169-
170-
- name: Compress and Prepare Release Assets
171-
env:
172-
SCP_HOST: ${{ vars.GREENGEEKS_SSH_HOST }}
173-
run: |
174-
if [ -z "$SCP_HOST" ]; then
175-
echo "Warning: SCP_HOST not set, skipping release assets preparation"
176-
exit 0
177-
fi
178-
179-
echo "Compressing release assets with Brotli..."
180-
181-
# Create temporary directory for flattened structure
182-
TEMP_DIR=$(mktemp -d)
183-
mkdir -p "$TEMP_DIR/release"
184-
mkdir -p "$TEMP_DIR/release/v7"
185-
mkdir -p "$TEMP_DIR/release/v8"
186-
187-
# Function to compress a file with brotli and generate MD5
188-
compress_file() {
189-
local source_file="$1"
190-
local dest_file="$2"
191-
192-
if [ -f "$source_file" ]; then
193-
mkdir -p "$(dirname "$dest_file")"
194-
brotli -f -o "$dest_file" "$source_file"
195-
/bin/ls -l $source_file $dest_file
196-
197-
# Generate MD5 checksum
198-
md5sum "$dest_file" | awk '{print $1}' > "${dest_file}.md5"
199-
echo "Generated checksum: ${dest_file}.md5"
200-
else
201-
echo "Warning: Source file not found: $source_file"
202-
fi
203-
}
204-
205-
# Compress common files to release/ (flattened)
206-
compress_file "assets/gradle-8.14.3-bin.zip" "$TEMP_DIR/release/gradle-8.14.3-bin.zip.br" &
207-
compress_file "assets/gradle-api-8.14.3.jar.zip" "$TEMP_DIR/release/gradle-api-8.14.3.jar.br" &
208-
compress_file "assets/localMvnRepository.zip" "$TEMP_DIR/release/localMvnRepository.zip.br" &
209-
compress_file "assets/documentation.db" "$TEMP_DIR/release/documentation.db.br" &
210-
compress_file "assets/android-sdk-armeabi-v7a.zip" "$TEMP_DIR/release/v7/android-sdk.zip.br" &
211-
compress_file "assets/bootstrap-armeabi-v7a.zip" "$TEMP_DIR/release/v7/bootstrap.zip.br" &
212-
compress_file "assets/android-sdk-arm64-v8a.zip" "$TEMP_DIR/release/v8/android-sdk.zip.br" &
213-
compress_file "assets/bootstrap-arm64-v8a.zip" "$TEMP_DIR/release/v8/bootstrap.zip.br" &
214-
215-
wait
216-
217-
# Copy plugin-artifacts.zip.br from Gradle task output (already compressed)
218-
if [ -f "assets/release/common/data/common/plugin-artifacts.zip.br" ]; then
219-
cp "assets/release/common/data/common/plugin-artifacts.zip.br" "$TEMP_DIR/release/plugin-artifacts.zip.br"
220-
md5sum "$TEMP_DIR/release/plugin-artifacts.zip.br" | awk '{print $1}' > "$TEMP_DIR/release/plugin-artifacts.zip.br.md5"
221-
echo "Copied plugin-artifacts.zip.br -> $TEMP_DIR/release/plugin-artifacts.zip.br"
222-
fi
223-
224-
# Upload the flattened structure
225-
echo "Uploading release assets to server..."
226-
scp -r "$TEMP_DIR/release" "$SCP_HOST:public_html/dev-assets/"
227-
228-
# Cleanup
229-
rm -rf "$TEMP_DIR"
230-
231-
echo "Release assets uploaded successfully"
232-
233162
- name: V8 Assets Path
234163
id: assets_v8
235164
run: |

app/build.gradle.kts

Lines changed: 2 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -676,64 +676,6 @@ tasks.register("assembleAssets") {
676676
val bundleLlamaV7Assets = registerBundleLlamaAssetsTask(flavor = "v7", arch = "armeabi-v7a")
677677
val bundleLlamaV8Assets = registerBundleLlamaAssetsTask(flavor = "v8", arch = "arm64-v8a")
678678

679-
tasks.register("bundlePluginArtifactsForRelease") {
680-
dependsOn("createPluginArtifactsZip")
681-
682-
val sourceZip = rootProject.file("assets/plugin-artifacts.zip")
683-
val targetDir = rootProject.file("assets/release/common/data/common")
684-
val destBr = File(targetDir, "plugin-artifacts.zip.br")
685-
val destZip = File(targetDir, "plugin-artifacts.zip")
686-
687-
inputs.file(sourceZip)
688-
outputs.file(destBr)
689-
690-
doLast {
691-
if (!sourceZip.exists()) {
692-
throw GradleException("plugin-artifacts.zip not found: ${sourceZip.absolutePath}")
693-
}
694-
695-
targetDir.mkdirs()
696-
destBr.delete()
697-
destZip.delete()
698-
699-
val brotliAvailable =
700-
try {
701-
val result =
702-
project.exec {
703-
commandLine("brotli", "--version")
704-
isIgnoreExitValue = true
705-
}
706-
result.exitValue == 0
707-
} catch (_: Exception) {
708-
false
709-
}
710-
711-
if (brotliAvailable) {
712-
project.exec {
713-
commandLine("brotli", "-f", "-o", destBr.absolutePath, sourceZip.absolutePath)
714-
}
715-
project.logger.lifecycle(
716-
"Bundled plugin-artifacts.zip compressed to ${
717-
destBr.relativeTo(
718-
project.rootProject.projectDir
719-
)
720-
}"
721-
)
722-
destZip.delete()
723-
} else {
724-
project.logger.warn(
725-
"brotli CLI not found; bundling plugin-artifacts.zip uncompressed at ${
726-
destZip.relativeTo(
727-
project.rootProject.projectDir
728-
)
729-
}"
730-
)
731-
sourceZip.copyTo(destZip, overwrite = true)
732-
destBr.delete()
733-
}
734-
}
735-
}
736-
737679
tasks.register("recompressApk") {
738680
doLast {
739681
val abi: String = extensions.extraProperties["abi"].toString()
@@ -761,15 +703,9 @@ val noCompress = setOf("so", "ogg", "mp3", "mp4", "zip", "jar", "ttf", "otf", "b
761703
afterEvaluate {
762704
tasks.matching { it.name.contains("V8") && it.name.lowercase().contains("lint") }.configureEach {
763705
dependsOn(bundleLlamaV8Assets)
764-
if (name.lowercase().contains("release")) {
765-
dependsOn("bundlePluginArtifactsForRelease")
766-
}
767706
}
768707
tasks.matching { it.name.contains("V7") && it.name.lowercase().contains("lint") }.configureEach {
769708
dependsOn(bundleLlamaV7Assets)
770-
if (name.lowercase().contains("release")) {
771-
dependsOn("bundlePluginArtifactsForRelease")
772-
}
773709
}
774710

775711
tasks.named("assembleV8Release").configure {
@@ -783,7 +719,7 @@ afterEvaluate {
783719
}
784720
}
785721

786-
dependsOn(bundleLlamaV8Assets, "bundlePluginArtifactsForRelease")
722+
dependsOn(bundleLlamaV8Assets)
787723
if (!isCiCd) {
788724
dependsOn("assetsDownloadRelease")
789725
}
@@ -800,7 +736,7 @@ afterEvaluate {
800736
}
801737
}
802738

803-
dependsOn(bundleLlamaV7Assets, "bundlePluginArtifactsForRelease")
739+
dependsOn(bundleLlamaV7Assets)
804740
if (!isCiCd) {
805741
dependsOn("assetsDownloadRelease")
806742
}
@@ -997,8 +933,6 @@ val releaseAssets = listOf(
997933
"gradle-api-8.14.3.jar.br", "release"),
998934
Asset("assets/release/common/data/common/localMvnRepository.zip.br", "https://appdevforall.org/dev-assets/release/localMvnRepository.zip.br",
999935
"localMvnRepository.zip.br", "release"),
1000-
Asset("assets/release/common/data/common/plugin-artifacts.zip.br", "https://appdevforall.org/dev-assets/release/plugin-artifacts.zip.br",
1001-
"plugin-artifacts.zip.br", "release"),
1002936
Asset("assets/release/common/database/documentation.db.br", "https://appdevforall.org/dev-assets/release/documentation.db.br",
1003937
"documentation.db.br", "release"),
1004938
Asset("assets/release/v7/data/common/android-sdk.zip.br", "https://appdevforall.org/dev-assets/release/v7/android-sdk.zip.br",

composite-builds/build-logic/plugins/src/main/java/com/itsaky/androidide/plugins/AndroidIDEAssetsPlugin.kt

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,10 +70,42 @@ class AndroidIDEAssetsPlugin : Plugin<Project> {
7070

7171
// Add logsender.aar
7272
registerLogSenderAarCopierTask(variant, variantNameCapitalized)
73+
74+
// Add plugin-artifacts.zip
75+
registerPluginArtifactsCopierTask(variant, variantNameCapitalized)
7376
}
7477
}
7578
}
7679

80+
private fun Project.registerPluginArtifactsCopierTask(
81+
variant: Variant,
82+
variantName: String,
83+
) {
84+
val taskName = "copy${variantName}PluginArtifacts"
85+
val projectPath = ":app"
86+
val projectTask = "createPluginArtifactsZip"
87+
val inputFile: (Project) -> Provider<RegularFile> =
88+
{ _ -> rootProject.providers.provider { rootProject.layout.projectDirectory.file("assets/plugin-artifacts.zip") } }
89+
90+
if (hasBundledAssets(variant)) {
91+
addProjectArtifactToAssets<AddBrotliFileToAssetsTask>(
92+
variant = variant,
93+
taskName = taskName,
94+
projectPath = projectPath,
95+
projectTask = projectTask,
96+
onGetInputFile = inputFile,
97+
)
98+
} else {
99+
addProjectArtifactToAssets<AddFileToAssetsTask>(
100+
variant = variant,
101+
taskName = taskName,
102+
projectPath = projectPath,
103+
projectTask = projectTask,
104+
onGetInputFile = inputFile,
105+
)
106+
}
107+
}
108+
77109
private fun Project.registerInitScriptGeneratorTask(
78110
variant: Variant,
79111
variantName: String,

0 commit comments

Comments
 (0)