Skip to content
Snippets Groups Projects
gradle-publish.gradle 2.33 KiB
Newer Older
Taras's avatar
Taras committed
apply plugin: 'com.android.library'
Taras's avatar
Taras committed
apply plugin: 'maven-publish'

Taras's avatar
Taras committed
def groupIdString = "org.matrix.android"
Taras's avatar
Taras committed
def artifactIdString = "matrix-sdk-android-rustCrypto"
Taras's avatar
Taras committed
def versionName = "1.5.30.35"
Taras's avatar
Taras committed
def artifactPath = "$buildDir/outputs/aar/$artifactIdString-release.aar"
Taras's avatar
Taras committed
def publicationName = "release"
Taras's avatar
Taras committed
def projectId = "16"
Taras's avatar
Taras committed

Taras's avatar
Taras committed
tasks.register('sourceJar', Jar) {
Taras's avatar
Taras committed
    from android.sourceSets.main.java.srcDirs
    classifier = "sources"
}

Taras's avatar
Taras committed
publishing {
    publications {
Taras's avatar
Taras committed
        "$publicationName"(MavenPublication) {
            groupId groupIdString
            artifactId artifactIdString
            version versionName
            artifact artifactPath
Taras's avatar
Taras committed
            artifact sourceJar
Taras's avatar
Taras committed

            pom.withXml {
Taras's avatar
Taras committed
                def dependenciesNode = asNode().appendNode('dependencies')
                ext.addDependency = { Dependency dep, String scope ->
Taras's avatar
Taras committed
                    if (dep.group == null || dep.name == null || dep.name == "unspecified")
Taras's avatar
Taras committed
                        return
                    final dependencyNode = dependenciesNode.appendNode('dependency')
                    dependencyNode.appendNode('groupId', dep.group)
                    dependencyNode.appendNode('artifactId', dep.name)
Taras's avatar
Taras committed
                    if (dep.version != null)
                        dependencyNode.appendNode('version', dep.version)
Taras's avatar
Taras committed
                    dependencyNode.appendNode('scope', scope)
Taras's avatar
Taras committed
                }
Taras's avatar
Taras committed
                configurations.api.getDependencies().each { dep -> addDependency(dep, "compile") }
                configurations.implementation.getDependencies().each { dep -> addDependency(dep, "runtime") }
                configurations.rustCryptoImplementation.getDependencies().each { dep -> addDependency(dep, "runtime") }
Taras's avatar
Taras committed
            }
        }
    }
    repositories {
Taras's avatar
Taras committed
        Properties properties = new Properties()
        if (rootProject.file("local.properties").exists()) {
            properties.load(rootProject.file("local.properties").newDataInputStream())
        }
Taras's avatar
Taras committed
        maven {
Taras's avatar
Taras committed
            url "https://gitlab.futo.org/api/v4/projects/$projectId/packages/maven"
            name "GitLab"
Taras's avatar
Taras committed
            credentials(HttpHeaderCredentials) {
                name = "Private-Token"
Taras's avatar
Taras committed
                value = properties.getProperty("PUBLISH_TOKEN")
Taras's avatar
Taras committed
            }
            authentication {
                header(HttpHeaderAuthentication)
            }
        }
    }
}