avito-android

Форк
0
70 строк · 2.4 Кб
1
package com.avito.plugin
2

3
import com.avito.android.signer.SignServicePlugin
4
import com.avito.android.signer.signedApkDir
5
import com.avito.android.withAndroidApp
6
import org.gradle.api.Plugin
7
import org.gradle.api.Project
8
import org.gradle.kotlin.dsl.create
9
import org.gradle.kotlin.dsl.register
10

11
public class QAppsPlugin : Plugin<Project> {
12

13
    override fun apply(project: Project) {
14

15
        val extension = project.extensions.create<QAppsExtension>("qapps")
16

17
        project.withAndroidApp { appExtension ->
18
            appExtension.applicationVariants.all { variant ->
19

20
                project.tasks.register<QAppsUploadTask>(
21
                    qappsUploadUnsignedTaskName(variant.name),
22
                ) {
23
                    description = "Upload unsigned ${variant.name} to qapps"
24
                    configure(extension, variant)
25

26
                    val packageTaskProvider = variant.packageApplicationProvider
27

28
                    val apkProvider = packageTaskProvider.flatMap { it.outputDirectory }
29

30
                    apkDirectory.set(apkProvider)
31

32
                    // todo remove, somehow implicit dependency not working
33
                    dependsOn(packageTaskProvider)
34
                }
35

36
                if (project.plugins.hasPlugin(SignServicePlugin::class.java)) {
37

38
                    val signedApkDir = project.tasks.signedApkDir(variant.name)
39

40
                    if (signedApkDir.isPresent) {
41
                        project.tasks.register<QAppsUploadTask>(
42
                            qappsUploadSignedTaskName(variant.name),
43
                        ) {
44
                            description = "Upload signed ${variant.name} to qapps"
45
                            configure(extension, variant)
46
                            apkDirectory.set(signedApkDir)
47
                        }
48
                    }
49
                }
50
            }
51
        }
52
    }
53

54
    // todo use new AGP API
55
    private fun QAppsUploadTask.configure(
56
        extension: QAppsExtension,
57
        @Suppress("DEPRECATION") variant: com.android.build.gradle.api.ApplicationVariant
58
    ) {
59
        group = "ci"
60

61
        variantName.set(variant.name)
62
        versionName.set(variant.versionName)
63
        versionCode.set(variant.versionCode.toString())
64
        packageName.set(variant.applicationId)
65
        host.set(extension.serviceUrl)
66
        comment.set(extension.comment)
67
        branch.set(extension.branchName)
68
        releaseBuildVariants.set(extension.releaseBuildVariants)
69
    }
70
}
71

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.