Skip to content

Commit

Permalink
refactor: gradle tasks (#62)
Browse files Browse the repository at this point in the history
  • Loading branch information
xfqwdsj authored Apr 26, 2024
1 parent 325d39d commit c788a57
Show file tree
Hide file tree
Showing 2 changed files with 63 additions and 50 deletions.
109 changes: 61 additions & 48 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -123,33 +123,42 @@ tasks.register("releaseAndroidApp") {
dependsOn("compose-app:assembleRelease")

doLast {
val apkDir = file(project(":compose-app").layout.buildDirectory.dir("outputs/apk/release"))
val apkDir = file(project("compose-app").layout.buildDirectory.dir("outputs/apk/release"))
val outputDir = file(outputDirectoryOf("android"))
apkDir.copyRecursively(outputDir, overwrite = true)
logger.lifecycle("output directory: ${outputDir.absolutePath}")
}
}

tasks.register("releaseLinuxApp") {
tasks.register("releaseDesktopAppUberJar") {
group = "project build"
description = "Build the Linux release executable"
description = "Build the desktop release uber jar"

if (!SystemEnvironment.isLinux) {
enabled = false
}
dependsOn("compose-app:packageReleaseUberJarForCurrentOS")

dependsOn("compose-app:packageReleaseAppImage", "compose-app:packageReleaseDeb", "compose-app:packageReleaseRpm")
doLast {
val outputDir = file(outputDirectoryOf("desktop-uber-jar"))
file(project("compose-app").layout.buildDirectory.dir("compose/jars")).listFiles()
?.filter { it.name.contains("$projectDevVer.$projectReversion") && it.name.endsWith(".jar") }?.forEach {
val arch = Regex(".+?-.+?-(.+?)-.+").find(it.name)?.groupValues?.get(1) ?: return@forEach
it.copyTo(
outputDir.resolve("fhraise-${operatingSystem.familyName}-$projectVersion.$projectBuildNumber-${arch}.jar"),
overwrite = true
)
logger.lifecycle("output directory: ${outputDir.absolutePath}")
}
}
}

tasks.register<Tar>("releaseTarLinuxApp") {
tasks.register<Tar>("releaseLinuxAppAndTar") {
group = "project build"
description = "Build the Linux release tar"
description = "Build the Linux release and create a tar archive"

if (!SystemEnvironment.isLinux) {
if (!operatingSystem.isLinux) {
enabled = false
}

dependsOn("releaseLinuxApp")
dependsOn("compose-app:packageReleaseAppImage")

archiveBaseName = "fhraise"
archiveAppendix = "linux"
Expand All @@ -161,26 +170,15 @@ tasks.register<Tar>("releaseTarLinuxApp") {
from(file(outputDirectoryOf("desktop/main-release/app/Fhraise")))
}

tasks.register("releaseWindowsApp") {
group = "project build"
description = "Build the Windows release executable"

if (!SystemEnvironment.isWindows) {
enabled = false
}

dependsOn("compose-app:packageReleaseAppImage", "compose-app:packageReleaseMsi")
}

tasks.register<Zip>("releaseZipWindowsApp") {
tasks.register<Zip>("releaseWindowsAppAndZip") {
group = "project build"
description = "Build the Windows release zip"
description = "Build the Windows release and create a zip archive"

if (!SystemEnvironment.isWindows) {
if (!operatingSystem.isWindows) {
enabled = false
}

dependsOn("releaseWindowsApp")
dependsOn("compose-app:packageReleaseAppImage")

archiveBaseName = "fhraise"
archiveAppendix = "windows"
Expand All @@ -191,25 +189,27 @@ tasks.register<Zip>("releaseZipWindowsApp") {
from(file(outputDirectoryOf("desktop/main-release/app/Fhraise")))
}

tasks.register("releaseDesktopApp") {
tasks.register("releaseDesktopAppAndArchive") {
group = "project build"
description = "Build the desktop release"
description = "Build the desktop release and create an archive"

if (SystemEnvironment.isLinux) {
dependsOn("releaseLinuxApp")
} else if (SystemEnvironment.isWindows) {
dependsOn("releaseWindowsApp")
if (operatingSystem.isLinux) {
dependsOn("releaseLinuxAppAndTar")
} else if (operatingSystem.isWindows) {
dependsOn("releaseWindowsAppAndZip")
}
}

tasks.register("releaseArchiveDesktopApp") {
tasks.register("releaseDesktopApp") {
group = "project build"
description = "Build the desktop release archive"
description = "Build the desktop release"

dependsOn("releaseDesktopAppAndArchive", "releaseDesktopAppUberJar")

if (SystemEnvironment.isLinux) {
dependsOn("releaseTarLinuxApp")
} else if (SystemEnvironment.isWindows) {
dependsOn("releaseZipWindowsApp")
if (operatingSystem.isLinux) {
dependsOn("compose-app:packageReleaseDeb", "compose-app:packageReleaseRpm")
} else if (operatingSystem.isWindows) {
dependsOn("compose-app:packageReleaseMsi")
}
}

Expand All @@ -224,9 +224,9 @@ tasks.register("releaseWebApp") {
}
}

tasks.register<Tar>("releaseTarWebApp") {
tasks.register<Tar>("releaseWebAppAndTar") {
group = "project build"
description = "Build the Web release tar"
description = "Build the Web release and create a tar archive"

dependsOn("releaseWebApp")

Expand All @@ -246,7 +246,7 @@ tasks.register("releaseServer") {
dependsOn("server:shadowJar")

doLast {
val jar = file(project(":server").layout.buildDirectory.file("libs/server-all.jar"))
val jar = file(project("server").layout.buildDirectory.file("libs/server-all.jar"))
val outputDir = file(outputDirectoryOf("server"))
jar.copyTo(outputDir.resolve("fhraise-server-$projectVersion.$projectBuildNumber.jar"), overwrite = true)
logger.lifecycle("output directory: ${outputDir.absolutePath}")
Expand All @@ -268,9 +268,13 @@ tasks.register("ciVersioning") {

tasks.register("ciReleaseLinuxApp") {
group = "ci"
description = "Build on the linux platform"
description = "Build on the Linux platform"

if (!operatingSystem.isLinux) {
enabled = false
}

dependsOn("releaseAndroidApp", "releaseTarLinuxApp", "releaseTarWebApp", "releaseServer")
dependsOn("releaseAndroidApp", "releaseDesktopApp", "releaseWebAppAndTar", "releaseServer")

doLast {
val assetsDir = file(layout.buildDirectory.dir("assets"))
Expand All @@ -297,9 +301,13 @@ tasks.register("ciReleaseLinuxApp") {

tasks.register("ciReleaseWindowsApp") {
group = "ci"
description = "Build on the windows platform"
description = "Build on the Windows platform"

dependsOn("releaseZipWindowsApp")
if (!operatingSystem.isWindows) {
enabled = false
}

dependsOn("releaseDesktopApp")

doLast {
val assetsDir = file(layout.buildDirectory.dir("assets"))
Expand All @@ -315,18 +323,23 @@ tasks.register("ciReleaseApp") {
group = "ci"
description = "Build the release app"

if (SystemEnvironment.isLinux) {
if (operatingSystem.isLinux) {
dependsOn("ciReleaseLinuxApp")
} else if (SystemEnvironment.isWindows) {
} else if (operatingSystem.isWindows) {
dependsOn("ciReleaseWindowsApp")
}

doLast {
val assetsDir = file(layout.buildDirectory.dir("assets"))
file(outputDirectoryOf("desktop-uber-jar")).copyRecursively(assetsDir, overwrite = true)
}
}

tasks.register("release") {
group = "project build"
description = "Create a new release"

dependsOn("versioning", "releaseAndroidApp", "releaseLinuxApp", "releaseWindowsApp", "releaseWebApp")
dependsOn("versioning", "releaseAndroidApp", "releaseDesktopApp", "releaseWebApp", "releaseServer")
}

tasks.register("cleanReleases") {
Expand Down
4 changes: 2 additions & 2 deletions buildSrc/src/main/kotlin/SystemEnvironment.kt
Original file line number Diff line number Diff line change
Expand Up @@ -20,8 +20,8 @@ package xyz.xfqlittlefan.fhraise.buildsrc

import org.gradle.internal.os.OperatingSystem

val operatingSystem: OperatingSystem = OperatingSystem.current()

object SystemEnvironment {
val isLinux = OperatingSystem.current().isLinux
val isWindows = OperatingSystem.current().isWindows
val arch: String = System.getProperty("os.arch")
}

0 comments on commit c788a57

Please sign in to comment.