/*
 * Copyright 2020 Backbase R&D B.V.
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *     http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */

// Applied per published module
//  The module must define ext.artifactName and ext.publishedDescription

group = rootProject.publishGroup
version = rootProject.libraryVersion

apply plugin: 'io.gitlab.arturbosch.detekt'
detekt {
    reports {
        html.enabled = true
        sarif.enabled = true
        sarif.destination = new File("$rootProject.projectDir/build/detekt/sarif/${project.name}.sarif")
    }
    config = objects.fileCollection().from "${rootProject.projectDir}/detekt.yml"
}
tasks.detekt.jvmTarget = JavaVersion.VERSION_1_8

apply plugin: 'org.jetbrains.dokka'

task sourcesJar(type: Jar) {
    archiveClassifier.set 'sources'
    from android.sourceSets.main.java.srcDirs
}

task javadocJar(type: Jar, dependsOn: dokkaJavadoc) {
    archiveClassifier.set 'javadoc'
    from dokkaJavadoc.outputDirectory
}

artifacts {
    archives javadocJar
    archives sourcesJar
}

apply plugin: 'maven-publish'
afterEvaluate {
    publishing {
        publications {
            release(MavenPublication) {
                groupId group
                artifactId artifactName
                version version

                from components.release
                artifact sourcesJar
                artifact javadocJar

                pom {
                    name = artifactName
                    description = publishedDescription

                    url = 'https://github.com/Backbase/DeferredResources'
                    licenses {
                        license {
                            name = 'The Apache Software License, Version 2.0'
                            url = 'http://www.apache.org/licenses/LICENSE-2.0.txt'
                        }
                    }

                    developers {
                        developer {
                            name = 'Backbase R&D B.V.'
                            email = 'oss@backbase.com'
                        }
                    }

                    scm {
                        connection = 'scm:git:github.com/Backbase/DeferredResources.git'
                        developerConnection = 'scm:git:ssh://github.com/Backbase/DeferredResources.git'
                        url = 'https://github.com/Backbase/DeferredResources'
                    }
                }
            }
        }

        repositories {
            maven {
                name = 'MavenCentral'

                def releasesRepoUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2/'
                def snapshotsRepoUrl = 'https://oss.sonatype.org/content/repositories/snapshots/'
                url = version.endsWith('SNAPSHOT') ? snapshotsRepoUrl : releasesRepoUrl

                def sonatypeUsername = findProperty('backbaseOssSonatypeUsername')
                def sonatypePassword = findProperty('backbaseOssSonatypePassword')
                credentials {
                    username sonatypeUsername
                    password sonatypePassword
                }
            }
        }
    }
}

apply plugin: 'signing'
signing {
    def key = findProperty('backbaseOssGpgKey')
    def password = findProperty('backbaseOssGpgPassword')
    useInMemoryPgpKeys(key, password)
    sign publishing.publications
}
