forked from pgjdbc/pgjdbc
-
Notifications
You must be signed in to change notification settings - Fork 5
/
settings.gradle.kts
91 lines (78 loc) · 3.28 KB
/
settings.gradle.kts
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
/*
* Copyright (c) 2019, PostgreSQL Global Development Group
* See the LICENSE file in the project root for more information.
*/
/* TODO Yugabyte copyright */
pluginManagement {
plugins {
id("biz.aQute.bnd.builder") version "7.0.0"
id("com.github.burrunan.s3-build-cache") version "1.8"
id("com.github.johnrengelman.shadow") version "8.1.1"
id("com.github.lburgazzoli.karaf") version "0.5.6"
id("com.github.vlsi.crlf") version "1.90"
id("com.github.vlsi.gettext") version "1.90"
id("com.github.vlsi.gradle-extensions") version "1.90"
id("com.github.vlsi.license-gather") version "1.90"
id("com.github.vlsi.ide") version "1.90"
id("com.github.vlsi.stage-vote-release") version "1.90"
id("org.nosphere.gradle.github.actions") version "1.4.0"
id("me.champeau.jmh") version "0.7.2"
kotlin("jvm") version "1.9.22"
}
}
plugins {
`gradle-enterprise`
id("com.github.burrunan.s3-build-cache")
}
if (JavaVersion.current() < JavaVersion.VERSION_17) {
throw UnsupportedOperationException("Please use Java 17 or 21 for launching Gradle when building pgjdbc, the current Java is ${JavaVersion.current().majorVersion}")
}
// This is the name of a current project
// Note: it cannot be inferred from the directory name as developer might clone pgjdbc to pgjdbc_tmp (or whatever) folder
rootProject.name = "jdbc-yugabytedb"
includeBuild("build-logic")
// Renovate treats names as dependency coordinates when vararg include(...) is used, so we have separate include calls here
// include("benchmarks")
// include("pgjdbc-osgi-test")
include("jdbc-yugabytedb")
include("bom")
project(":jdbc-yugabytedb").projectDir = file("pgjdbc")
// See https://github.com/gradle/gradle/issues/1348#issuecomment-284758705 and
// https://github.com/gradle/gradle/issues/5321#issuecomment-387561204
// Gradle inherits Ant "default excludes", however we do want to archive those files
org.apache.tools.ant.DirectoryScanner.removeDefaultExclude("**/.gitattributes")
org.apache.tools.ant.DirectoryScanner.removeDefaultExclude("**/.gitignore")
fun property(name: String) =
when (extra.has(name)) {
true -> extra.get(name) as? String
else -> null
}
val isCiServer = System.getenv().containsKey("CI")
if (isCiServer) {
gradleEnterprise {
buildScan {
termsOfServiceUrl = "https://gradle.com/terms-of-service"
termsOfServiceAgree = "yes"
tag("CI")
}
}
}
// Cache build artifacts, so expensive operations do not need to be re-computed
buildCache {
local {
isEnabled = !isCiServer || System.getenv().containsKey("GITHUB_ACTIONS")
}
if (property("s3.build.cache")?.ifBlank { "true" }?.toBoolean() == true) {
val pushAllowed = property("s3.build.cache.push")?.ifBlank { "true" }?.toBoolean() ?: true
remote<com.github.burrunan.s3cache.AwsS3BuildCache> {
region = "us-east-1"
bucket = "pgjdbc-build-cache"
isPush = isCiServer && pushAllowed && !awsAccessKeyId.isNullOrBlank()
}
}
}
// This enables to use local clone of vlsi-release-plugins for debugging purposes
property("localReleasePlugins")?.ifBlank { "../vlsi-release-plugins" }?.let {
println("Importing project '$it'")
includeBuild(it)
}