/*
 * Copyright 2020 Google LLC.
 *
 * 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.
 */

plugins {
  id 'com.gradle.plugin-publish' version "0.15.0"
  id 'groovy'
  id 'java-gradle-plugin'
  id 'net.researchgate.release' version '2.8.1'
}

apply from: "$rootDir/gradle/functional-test.gradle"

group = 'com.google.cloud.tools'

sourceCompatibility = 1.8

dependencies {
  implementation "com.google.cloud.tools:dependencies:$version"
  implementation 'com.google.guava:guava:30.1-jre'
  implementation 'org.apache.maven.resolver:maven-resolver-api:1.7.1'

  testImplementation 'junit:junit:4.13.2'
  testImplementation 'org.spockframework:spock-core:1.3-groovy-2.5'
}

// Maven-publish plugin publishToMavenLocal interferes with the com.gradle.plugin-publish plugin
// https://discuss.gradle.org/t/debug-an-issue-in-publish-plugin-gradle-plugin-not-being-prepended-to-groupid/32720
if (version.contains("SNAPSHOT")) {

  apply plugin: 'maven-publish'

  publishing {
    repositories {
      mavenLocal()
    }
  }
}

repositories {
  mavenCentral()
  mavenLocal()
}

gradlePlugin {
  plugins {
    linkageCheckerPlugin {
      id = 'com.google.cloud.tools.linkagechecker' // LinkageCheckerPluginTest validates this value
      displayName = 'Linkage Checker'
      description = 'Tool to verify the compatibility of the class paths of Gradle projects'
      implementationClass = 'com.google.cloud.tools.dependencies.gradle.LinkageCheckerPlugin'
    }
  }
}

pluginBundle {
  website = 'https://github.com/GoogleCloudPlatform/cloud-opensource-java/wiki/Linkage-Checker-with-Gradle'
  vcsUrl = 'https://github.com/GoogleCloudPlatform/cloud-opensource-java.git'
  description = 'A plugin to detect Java diamond dependency conflicts'
  tags = ['google', 'java', 'dependency', 'verification']
}

release {
  tagTemplate = 'v$version-dependencies'
  failOnUnversionedFiles = false
  failOnUpdateNeeded = false
  git {
    requireBranch = /^\d+.\d+.\d+-dependencies$/  //regex
  }
}
