Upgrade build system
This commit is contained in:
parent
4a5f53cb90
commit
b49435da99
5 changed files with 48 additions and 33 deletions
|
|
@ -1,6 +1,8 @@
|
||||||
pipeline:
|
steps:
|
||||||
run:
|
build:
|
||||||
image: gradle:7.5-jdk8
|
when:
|
||||||
|
branch: main
|
||||||
|
image: gradle:8.8-jdk11
|
||||||
commands:
|
commands:
|
||||||
- git checkout $CI_COMMIT_BRANCH
|
- git checkout $CI_COMMIT_BRANCH
|
||||||
# Code works
|
# Code works
|
||||||
|
|
@ -9,4 +11,6 @@ pipeline:
|
||||||
- gradle check javadocAll
|
- gradle check javadocAll
|
||||||
# Code has coverage
|
# Code has coverage
|
||||||
- gradle jacocoRootReport coveralls
|
- gradle jacocoRootReport coveralls
|
||||||
secrets: [COVERALLS_REPO_TOKEN]
|
environment:
|
||||||
|
COVERALLS_REPO_TOKEN:
|
||||||
|
from_secret: COVERALLS_REPO_TOKEN
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,9 @@
|
||||||
# Code is licensed properly
|
# Code is licensed properly
|
||||||
# See https://reuse.software/
|
# See https://reuse.software/
|
||||||
pipeline:
|
steps:
|
||||||
reuse:
|
reuse:
|
||||||
|
when:
|
||||||
|
branch: main
|
||||||
image: fsfe/reuse:latest
|
image: fsfe/reuse:latest
|
||||||
commands:
|
commands:
|
||||||
- reuse lint
|
- reuse lint
|
||||||
57
build.gradle
57
build.gradle
|
|
@ -12,12 +12,15 @@ buildscript {
|
||||||
mavenLocal()
|
mavenLocal()
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
dependencies {
|
||||||
|
classpath "gradle.plugin.org.kt3k.gradle.plugin:coveralls-gradle-plugin:2.12.0"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
plugins {
|
plugins {
|
||||||
id("com.github.nbaztec.coveralls-jacoco") version "1.2.16"
|
id 'org.jetbrains.kotlin.jvm' version "1.9.21"
|
||||||
id 'org.jetbrains.kotlin.jvm' version "1.8.10"
|
id 'com.diffplug.spotless' version '6.22.0' apply false
|
||||||
id 'jacoco-report-aggregation'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
apply from: 'version.gradle'
|
apply from: 'version.gradle'
|
||||||
|
|
@ -27,8 +30,8 @@ allprojects {
|
||||||
apply plugin: 'idea'
|
apply plugin: 'idea'
|
||||||
apply plugin: 'eclipse'
|
apply plugin: 'eclipse'
|
||||||
apply plugin: 'jacoco'
|
apply plugin: 'jacoco'
|
||||||
apply plugin: 'checkstyle'
|
|
||||||
apply plugin: 'kotlin'
|
apply plugin: 'kotlin'
|
||||||
|
apply plugin: 'com.diffplug.spotless'
|
||||||
|
|
||||||
// Only generate jar for submodules
|
// Only generate jar for submodules
|
||||||
// https://stackoverflow.com/a/25445035
|
// https://stackoverflow.com/a/25445035
|
||||||
|
|
@ -36,17 +39,16 @@ allprojects {
|
||||||
onlyIf { !sourceSets.main.allSource.files.isEmpty() }
|
onlyIf { !sourceSets.main.allSource.files.isEmpty() }
|
||||||
}
|
}
|
||||||
|
|
||||||
// checkstyle
|
spotless {
|
||||||
checkstyle {
|
kotlin {
|
||||||
toolVersion = '10.12.1'
|
ktfmt().dropboxStyle()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
group 'org.pgpainless'
|
group 'org.pgpainless'
|
||||||
description = "Client-Side Implementation of the OpenPGP HTTP Keyserver Protocol for Java"
|
description = "Client-Side Implementation of the OpenPGP HTTP Keyserver Protocol for Java"
|
||||||
version = shortVersion
|
version = shortVersion
|
||||||
|
|
||||||
sourceCompatibility = javaSourceCompatibility
|
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
mavenCentral()
|
mavenCentral()
|
||||||
}
|
}
|
||||||
|
|
@ -60,6 +62,17 @@ allprojects {
|
||||||
fileMode = 0644
|
fileMode = 0644
|
||||||
}
|
}
|
||||||
|
|
||||||
|
kotlin {
|
||||||
|
jvmToolchain(javaSourceCompatibility)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Compatibility of default implementations in kotlin interfaces with Java implementations.
|
||||||
|
tasks.withType(org.jetbrains.kotlin.gradle.tasks.KotlinCompile).configureEach {
|
||||||
|
kotlinOptions {
|
||||||
|
freeCompilerArgs += ["-Xjvm-default=all-compatibility"]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
project.ext {
|
project.ext {
|
||||||
rootConfigDir = new File(rootDir, 'config')
|
rootConfigDir = new File(rootDir, 'config')
|
||||||
gitCommit = getGitCommit()
|
gitCommit = getGitCommit()
|
||||||
|
|
@ -67,8 +80,7 @@ allprojects {
|
||||||
isReleaseVersion = !isSnapshot
|
isReleaseVersion = !isSnapshot
|
||||||
signingRequired = !(isSnapshot || isContinuousIntegrationEnvironment)
|
signingRequired = !(isSnapshot || isContinuousIntegrationEnvironment)
|
||||||
sonatypeCredentialsAvailable = project.hasProperty('sonatypeUsername') && project.hasProperty('sonatypePassword')
|
sonatypeCredentialsAvailable = project.hasProperty('sonatypeUsername') && project.hasProperty('sonatypePassword')
|
||||||
sonatypeSnapshotUrl = 'https://oss.sonatype.org/content/repositories/snapshots'
|
sonatypeStagingUrl = 'https://ossrh-staging-api.central.sonatype.com/service/local/staging/deploy/maven2/'
|
||||||
sonatypeStagingUrl = 'https://oss.sonatype.org/service/local/staging/deploy/maven2'
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isSnapshot) {
|
if (isSnapshot) {
|
||||||
|
|
@ -85,7 +97,7 @@ allprojects {
|
||||||
}
|
}
|
||||||
|
|
||||||
jacoco {
|
jacoco {
|
||||||
toolVersion = "0.8.8"
|
toolVersion = "0.8.13"
|
||||||
}
|
}
|
||||||
|
|
||||||
jacocoTestReport {
|
jacocoTestReport {
|
||||||
|
|
@ -93,7 +105,7 @@ allprojects {
|
||||||
sourceDirectories.setFrom(project.files(sourceSets.main.allSource.srcDirs))
|
sourceDirectories.setFrom(project.files(sourceSets.main.allSource.srcDirs))
|
||||||
classDirectories.setFrom(project.files(sourceSets.main.output))
|
classDirectories.setFrom(project.files(sourceSets.main.output))
|
||||||
reports {
|
reports {
|
||||||
xml.enabled true
|
xml.required = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -111,15 +123,15 @@ subprojects {
|
||||||
apply plugin: 'signing'
|
apply plugin: 'signing'
|
||||||
|
|
||||||
task sourcesJar(type: Jar, dependsOn: classes) {
|
task sourcesJar(type: Jar, dependsOn: classes) {
|
||||||
classifier = 'sources'
|
archiveClassifier = 'sources'
|
||||||
from sourceSets.main.allSource
|
from sourceSets.main.allSource
|
||||||
}
|
}
|
||||||
task javadocJar(type: Jar, dependsOn: javadoc) {
|
task javadocJar(type: Jar, dependsOn: javadoc) {
|
||||||
classifier = 'javadoc'
|
archiveClassifier = 'javadoc'
|
||||||
from javadoc.destinationDir
|
from javadoc.destinationDir
|
||||||
}
|
}
|
||||||
task testsJar(type: Jar, dependsOn: testClasses) {
|
task testsJar(type: Jar, dependsOn: testClasses) {
|
||||||
classifier = 'tests'
|
archiveClassifier = 'tests'
|
||||||
from sourceSets.test.output
|
from sourceSets.test.output
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -163,7 +175,7 @@ subprojects {
|
||||||
repositories {
|
repositories {
|
||||||
if (sonatypeCredentialsAvailable) {
|
if (sonatypeCredentialsAvailable) {
|
||||||
maven {
|
maven {
|
||||||
url isSnapshot ? sonatypeSnapshotUrl : sonatypeStagingUrl
|
url sonatypeStagingUrl
|
||||||
credentials {
|
credentials {
|
||||||
username = sonatypeUsername
|
username = sonatypeUsername
|
||||||
password = sonatypePassword
|
password = sonatypePassword
|
||||||
|
|
@ -205,8 +217,9 @@ def getGitCommit() {
|
||||||
gitCommit
|
gitCommit
|
||||||
}
|
}
|
||||||
|
|
||||||
coverallsJacoco {
|
apply plugin: "com.github.kt3k.coveralls"
|
||||||
reportPath = "build/reports/jacoco/test/jacocoTestReport.xml"
|
coveralls {
|
||||||
|
sourceDirs = files(subprojects.sourceSets.main.allSource.srcDirs).files.absolutePath
|
||||||
}
|
}
|
||||||
|
|
||||||
task jacocoRootReport(type: JacocoReport) {
|
task jacocoRootReport(type: JacocoReport) {
|
||||||
|
|
@ -215,7 +228,7 @@ task jacocoRootReport(type: JacocoReport) {
|
||||||
classDirectories.setFrom(files(subprojects.sourceSets.main.output))
|
classDirectories.setFrom(files(subprojects.sourceSets.main.output))
|
||||||
executionData.setFrom(files(subprojects.jacocoTestReport.executionData))
|
executionData.setFrom(files(subprojects.jacocoTestReport.executionData))
|
||||||
reports {
|
reports {
|
||||||
xml.enabled true
|
xml.required = true
|
||||||
xml.destination file("${buildDir}/reports/jacoco/test/jacocoTestReport.xml")
|
xml.destination file("${buildDir}/reports/jacoco/test/jacocoTestReport.xml")
|
||||||
}
|
}
|
||||||
// We could remove the following setOnlyIf line, but then
|
// We could remove the following setOnlyIf line, but then
|
||||||
|
|
@ -226,10 +239,6 @@ task jacocoRootReport(type: JacocoReport) {
|
||||||
}
|
}
|
||||||
|
|
||||||
task javadocAll(type: Javadoc) {
|
task javadocAll(type: Javadoc) {
|
||||||
def currentJavaVersion = JavaVersion.current()
|
|
||||||
if (currentJavaVersion.compareTo(JavaVersion.VERSION_1_9) >= 0) {
|
|
||||||
options.addStringOption("-release", "8");
|
|
||||||
}
|
|
||||||
source subprojects.collect {project ->
|
source subprojects.collect {project ->
|
||||||
project.sourceSets.main.allJava }
|
project.sourceSets.main.allJava }
|
||||||
destinationDir = new File(buildDir, 'javadoc')
|
destinationDir = new File(buildDir, 'javadoc')
|
||||||
|
|
|
||||||
2
gradle/wrapper/gradle-wrapper.properties
vendored
2
gradle/wrapper/gradle-wrapper.properties
vendored
|
|
@ -1,5 +1,5 @@
|
||||||
distributionBase=GRADLE_USER_HOME
|
distributionBase=GRADLE_USER_HOME
|
||||||
distributionPath=wrapper/dists
|
distributionPath=wrapper/dists
|
||||||
distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip
|
distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-bin.zip
|
||||||
zipStoreBase=GRADLE_USER_HOME
|
zipStoreBase=GRADLE_USER_HOME
|
||||||
zipStorePath=wrapper/dists
|
zipStorePath=wrapper/dists
|
||||||
|
|
|
||||||
|
|
@ -6,12 +6,12 @@ allprojects {
|
||||||
ext {
|
ext {
|
||||||
shortVersion = '0.0.1'
|
shortVersion = '0.0.1'
|
||||||
isSnapshot = true
|
isSnapshot = true
|
||||||
javaSourceCompatibility = 1.8
|
javaSourceCompatibility = 11
|
||||||
bouncycastleVersion = '1.77'
|
bouncycastleVersion = '1.82'
|
||||||
junitVersion = '5.8.2'
|
junitVersion = '5.8.2'
|
||||||
jsrVersion = '3.0.2'
|
jsrVersion = '3.0.2'
|
||||||
slf4jVersion = '1.7.36'
|
slf4jVersion = '1.7.36'
|
||||||
logbackVersion = '1.2.13'
|
logbackVersion = '1.5.13'
|
||||||
picocliVersion = '4.6.3'
|
picocliVersion = '4.6.3'
|
||||||
jacksonDataBindVersion = '2.15.2'
|
jacksonDataBindVersion = '2.15.2'
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue