1
0
mirror of https://github.com/mc1arke/sonarqube-community-branch-plugin.git synced 2024-11-24 08:42:28 +02:00
sonarqube-community-branch-.../build.gradle
Michael Clarke 3ca9bae189 Upgrade all tests to JUnit 5
JUnit 4 has been removed from the project and all tests updated to use
JUnit 5. Where possible calls to Mockito's `mock` has been altered to
use the `no-args` version, and ArgumentCaptor's `forClass` replaced with
`captor` to reduce verbosity.
2024-11-17 17:06:42 +00:00

158 lines
4.8 KiB
Groovy

/*
* Copyright (C) 2020-2024 Michael Clarke
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 3 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program; if not, write to the Free Software Foundation,
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*
*/
plugins {
id('java')
id('jacoco')
id('org.sonarqube') version('4.4.1.3373')
id('info.solidsoft.pitest') version('1.15.0')
id('com.github.johnrengelman.shadow') version('8.1.1')
id('net.researchgate.release') version('3.0.2')
}
group 'com.github.mc1arke.sonarqube.plugin'
repositories {
mavenCentral()
ivy {
url 'https://binaries.sonarsource.com/'
patternLayout({a ->
artifact '/Distribution/[module]/[module]-[revision].[ext]'
})
metadataSources(sources -> {
sources.artifact()
})
}
}
def sonarqubeVersion = '10.6.0.92116'
def sonarqubeLibDir = "${projectDir}/sonarqube-lib"
def sonarLibraries = "${sonarqubeLibDir}/sonarqube-${sonarqubeVersion}/lib"
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
configurations {
zip
customTestRuntime
}
compileJava {
options.compilerArgs += '-proc:none'
options.encoding = 'UTF-8'
}
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
dependencies {
customTestRuntime('org.kohsuke:github-api-unbridged:1.326')
compileOnly(fileTree(dir: sonarLibraries, include: '**/*.jar', exclude: 'extensions/*.jar'))
testImplementation(fileTree(dir: sonarLibraries, include: '**/*.jar', exclude: 'extensions/*.jar'))
testImplementation('org.mockito:mockito-core:5.14.2')
testImplementation('org.assertj:assertj-core:3.26.3')
testImplementation('org.wiremock:wiremock:3.9.2')
zip("sonarqube:sonarqube:${sonarqubeVersion}@zip")
runtimeOnly('com.fasterxml.jackson.datatype:jackson-datatype-jsr310:2.18.1')
compileOnly('com.google.code.findbugs:jsr305:3.0.2')
implementation('org.javassist:javassist:3.30.2-GA')
implementation('com.squareup.okhttp3:logging-interceptor:4.12.0')
testImplementation(platform('org.junit:junit-bom:5.11.3'))
testImplementation('org.junit.jupiter:junit-jupiter')
}
sourceSets.test.runtimeClasspath = configurations.customTestRuntime + sourceSets.test.runtimeClasspath
project.afterEvaluate {
if (file("${sonarLibraries}").exists()) {
return
}
project.getLogger().lifecycle('Extracting SonarQube libraries (this may take a while)...')
configurations.zip.resolvedConfiguration.resolvedArtifacts.each { artifact ->
copy {
from zipTree(artifact.getFile())
into sonarqubeLibDir
}
}
}
jar {
manifest {
attributes 'Plugin-Description': 'Enables branch and pull request analysis in SonarQube Community Edition, without having to upgrade to Developer Edition',
'SonarLint-Supported': false,
'Plugin-Homepage': 'https://github.com/mc1arke/sonarqube-community-branch-plugin',
'Plugin-License': 'GNU LGPL 3',
'Plugin-Version': "${project.version}",
'Plugin-Organization': 'Michael Clarke',
'Sonar-Version': "9.14.0.375",
'Plugin-IssueTrackerUrl': 'https://github.com/mc1arke/sonarqube-community-branch-plugin/issues',
'Plugin-Key': 'communityBranchPlugin',
'Plugin-Class': 'com.github.mc1arke.sonarqube.plugin.CommunityBranchPluginBootstrap',
'Plugin-Name': 'Community Branch Plugin',
'Premain-Class': 'com.github.mc1arke.sonarqube.plugin.CommunityBranchAgent',
'Can-Retransform-Classes': 'true'
}
}
release {
git {
requireBranch.set('')
commitVersionFileOnly.set(true)
}
buildTasks.set(["assemble"])
}
tasks.jar.configure {
archiveClassifier = 'nodeps'
enabled = false
}
tasks.shadowJar.configure {
archiveClassifier = null
}
tasks.withType(JavaCompile) {
options.compilerArgs << '-Xlint:unchecked'
options.deprecation = true
}
assemble.dependsOn('shadowJar')
pitest {
junit5PluginVersion = '1.2.1'
timestampedReports = false
avoidCallsTo = ['org.slf4j.Logger']
}
jacocoTestReport {
reports {
xml.required = true
}
}
plugins.withType(JacocoPlugin) {
tasks["test"].finalizedBy 'jacocoTestReport'
}
test {
useJUnitPlatform()
testLogging {
events "passed", "skipped", "failed"
}
}