浏览代码

build: Make the DownloadWebRtcTask cacheable

This avoids having to redownload lib after clean (if build cache is enabled)

Signed-off-by: Álvaro Brey <alvaro.brey@nextcloud.com>
Álvaro Brey 3 年之前
父节点
当前提交
bcc1b4ed2b
共有 1 个文件被更改,包括 20 次插入9 次删除
  1. 20 9
      app/build.gradle

+ 20 - 9
app/build.gradle

@@ -348,21 +348,32 @@ tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).all {
     }
 }
 
+@CacheableTask
 abstract class DownloadWebRtcTask extends DefaultTask {
     @Input
     abstract Property<String> getVersion()
 
+    @OutputFile
+    File getLibFile() {
+        return new File("${project.buildDir}/download/${getFileName()}")
+    }
+
+    private String getFileName() {
+        def webRtcVersion = version.get()
+        return "libwebrtc-${webRtcVersion}.aar"
+    }
+
+    private String getDownloadUrl() {
+        def webRtcVersion = version.get()
+        return "https://github.com/nextcloud-releases/talk-clients-webrtc/releases/download/${webRtcVersion}-RC1/libwebrtc-${webRtcVersion}.aar"
+    }
+
     @TaskAction
     def run() {
-        def webRtcVersion = version.get()
-        def fileName = "libwebrtc-${webRtcVersion}.aar"
-        def url = "https://github.com/nextcloud-releases/talk-clients-webrtc/releases/download/${webRtcVersion}-RC1/libwebrtc-${webRtcVersion}.aar"
-
-        File file = new File("${project.buildDir}/download/${fileName}")
-        file.parentFile.mkdirs()
-        if (!file.exists()) {
-            new URL(url).withInputStream { downloadStream ->
-                file.withOutputStream { fileOut ->
+        libFile.parentFile.mkdirs()
+        if (!libFile.exists()) {
+            new URL(getDownloadUrl()).withInputStream { downloadStream ->
+                libFile.withOutputStream { fileOut ->
                     fileOut << downloadStream
                 }
             }