-
Notifications
You must be signed in to change notification settings - Fork 234
/
Copy pathgeb.gradle
113 lines (99 loc) · 3.53 KB
/
geb.gradle
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you 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.
*/
import com.github.jk1.license.filter.LicenseBundleNormalizer
import java.time.Duration
plugins {
id 'idea'
id 'geb.coordinates'
alias(libs.plugins.nexusPublish)
alias(libs.plugins.asl2)
id 'com.github.jk1.dependency-license-report' version '2.9'
id 'org.nosphere.apache.rat'
id 'com.github.ben-manes.versions' version '0.51.0'
}
repositories {
mavenCentral()
}
configurations {
site
}
dependencies {
site project(path: 'doc:site', configuration: 'distribution')
}
licenseReport {
// ASF policy mostly cares about compileClasspath but we'll also check the handful of additional dependencies for runtime
configurations = ['runtimeClasspath']
allowedLicensesFile = new File("$projectDir/gradle/allowed-licenses.json")
filters = [new LicenseBundleNormalizer(bundlePath: "$projectDir/gradle/license-normalizer-bundle.json")]
excludes = ['io.netty:netty-tcnative'] // Apache2 license but metadata shows null license
}
nexusPublishing {
repositories {
sonatype {
stagingProfileId = "c1802e5c2fe49"
username.set(providers.gradleProperty("sonatypeOssUsername"))
password.set(providers.gradleProperty("sonatypeOssPassword"))
}
}
clientTimeout = Duration.ofSeconds(300)
connectTimeout = Duration.ofSeconds(60)
transitionCheckOptions {
maxRetries.set(60)
delayBetween.set(Duration.ofMillis(3000))
}
}
extensions.findByName("develocity")?.buildScan {
termsOfUseUrl = 'https://gradle.com/terms-of-service'
termsOfUseAgree = 'yes'
}
tasks.register("stage", Sync) {
from configurations.site
into 'deploy'
}
idea {
project {
jdkName = "11"
}
}
tasks.named('rat') {
excludes = [
'.asf.yaml', // ASF metadata for github integration excluded from src zip
'**/build/**',
'**/.gradle/**', '**/wrapper/**', 'gradlew*', // gradle wrapper files excluded from src zip
'licenses/**',
'notices/**',
'module/**', // has it's own rat checks
'**/jquery-1.4.2.min.js', // MIT license as per NOTICE/LICENSE files (TODO)
'**/META-INF/groovy/*',
'**/generatedResources/**',
'Procfile', // TODO is this still needed?
'.tm_properties', // TODO is this still needed?
'doc', // TODO re-enable checking for docs
'logo.svg', // Logo svg
'out/**', '*.ipr', '**/*.iml', '*.iws', '.idea/**', // Intellij files
]
}
def UNSTABLE = /^([\d.-]+(alpha|beta|rc|m)[\d.-]+)$/
// ignore non-stable releases
tasks.named("dependencyUpdates")?.configure {
gradleReleaseChannel = 'current'
rejectVersionIf {
!(it.currentVersion.toLowerCase() ==~ UNSTABLE) && it.candidate.version.toLowerCase() ==~ UNSTABLE
}
}