|
1 | | -import com.bettercloud.vault.VaultConfig |
2 | | -import com.bettercloud.vault.Vault |
3 | | - |
4 | | -initscript { |
5 | | - repositories { |
6 | | - mavenCentral() |
7 | | - } |
8 | | - dependencies { |
9 | | - classpath 'com.bettercloud:vault-java-driver:4.1.0' |
10 | | - } |
11 | | -} |
12 | | - |
13 | | -boolean USE_ARTIFACTORY = false |
14 | | - |
15 | | -if (System.getenv('VAULT_ADDR') == null) { |
16 | | - // When trying to reproduce errors outside of CI, it can be useful to allow this to just return rather than blowing up |
17 | | - if (System.getenv('CI') == null) { |
18 | | - return |
19 | | - } |
20 | | - |
21 | | - throw new GradleException("You must set the VAULT_ADDR environment variable to use this init script.") |
22 | | -} |
23 | | - |
24 | | -if (System.getenv('VAULT_ROLE_ID') == null && System.getenv('VAULT_SECRET_ID') == null && System.getenv('VAULT_TOKEN') == null) { |
25 | | - // When trying to reproduce errors outside of CI, it can be useful to allow this to just return rather than blowing up |
26 | | - if (System.getenv('CI') == null) { |
27 | | - return |
28 | | - } |
29 | | - |
30 | | - throw new GradleException("You must set either the VAULT_ROLE_ID and VAULT_SECRET_ID environment variables, " + |
31 | | - "or the VAULT_TOKEN environment variable to use this init script.") |
32 | | -} |
33 | | - |
34 | | -final String vaultPathPrefix = System.getenv('VAULT_ADDR') ==~ /.+vault-ci.+\.dev.*/ ? "secret/ci/elastic-elasticsearch/migrated" : "secret/elasticsearch-ci" |
35 | | - |
36 | | -final String vaultToken = System.getenv('VAULT_TOKEN') ?: new Vault( |
37 | | - new VaultConfig() |
38 | | - .address(System.env.VAULT_ADDR) |
39 | | - .engineVersion(1) |
40 | | - .build() |
41 | | -) |
42 | | - .withRetries(5, 1000) |
43 | | - .auth() |
44 | | - .loginByAppRole("approle", System.env.VAULT_ROLE_ID, System.env.VAULT_SECRET_ID) |
45 | | - .getAuthClientToken() |
46 | | - |
47 | | -final Vault vault = new Vault( |
48 | | - new VaultConfig() |
49 | | - .address(System.env.VAULT_ADDR) |
50 | | - .engineVersion(1) |
51 | | - .token(vaultToken) |
52 | | - .build() |
53 | | -) |
54 | | - .withRetries(5, 1000) |
55 | | - |
56 | | - |
57 | | -if (USE_ARTIFACTORY) { |
58 | | - final Map<String, String> artifactoryCredentials = vault.logical() |
59 | | - .read("${vaultPathPrefix}/artifactory.elstc.co") |
60 | | - .getData() |
61 | | - logger.info("Using elastic artifactory repos") |
62 | | - Closure configCache = { |
63 | | - return { |
64 | | - name "artifactory-gradle-release" |
65 | | - url "https://artifactory.elstc.co/artifactory/gradle-release" |
66 | | - credentials { |
67 | | - username artifactoryCredentials.get("username") |
68 | | - password artifactoryCredentials.get("token") |
69 | | - } |
70 | | - } |
71 | | - } |
72 | | - settingsEvaluated { settings -> |
73 | | - settings.pluginManagement { |
74 | | - repositories { |
75 | | - maven configCache() |
76 | | - } |
77 | | - } |
78 | | - } |
79 | | - projectsLoaded { |
80 | | - allprojects { |
81 | | - buildscript { |
82 | | - repositories { |
83 | | - maven configCache() |
84 | | - } |
85 | | - } |
86 | | - repositories { |
87 | | - maven configCache() |
88 | | - } |
89 | | - } |
90 | | - } |
91 | | -} |
| 1 | +final String buildCacheUrl = System.getProperty('org.elasticsearch.build.cache.url') |
| 2 | +final boolean buildCachePush = Boolean.valueOf(System.getProperty('org.elasticsearch.build.cache.push', 'false')) |
92 | 3 |
|
93 | 4 | gradle.settingsEvaluated { settings -> |
94 | 5 | settings.pluginManager.withPlugin("com.gradle.develocity") { |
95 | 6 | settings.develocity { |
96 | | - server = 'https://gradle-enterprise.elastic.co' |
| 7 | + server = "https://gradle-enterprise.elastic.co" |
97 | 8 | } |
98 | | - } |
99 | | -} |
100 | | - |
101 | | - |
102 | | -final String buildCacheUrl = System.getProperty('org.elasticsearch.build.cache.url') |
103 | | -final boolean buildCachePush = Boolean.valueOf(System.getProperty('org.elasticsearch.build.cache.push', 'false')) |
104 | | - |
105 | | -if (buildCacheUrl) { |
106 | | - final Map<String, String> buildCacheCredentials = System.getenv("GRADLE_BUILD_CACHE_USERNAME") ? [:] : vault.logical() |
107 | | - .read("${vaultPathPrefix}/gradle-build-cache") |
108 | | - .getData() |
109 | | - gradle.settingsEvaluated { settings -> |
110 | | - settings.buildCache { |
111 | | - local { |
112 | | - // Disable the local build cache in CI since we use ephemeral workers and it incurs an IO penalty |
113 | | - enabled = false |
114 | | - } |
115 | | - remote(HttpBuildCache) { |
116 | | - url = buildCacheUrl |
117 | | - push = buildCachePush |
118 | | - credentials { |
119 | | - username = System.getenv("GRADLE_BUILD_CACHE_USERNAME") ?: buildCacheCredentials.get("username") |
120 | | - password = System.getenv("GRADLE_BUILD_CACHE_PASSWORD") ?: buildCacheCredentials.get("password") |
| 9 | + if (buildCacheUrl) { |
| 10 | + settings.buildCache { |
| 11 | + local { |
| 12 | + // Disable the local build cache in CI since we use ephemeral workers and it incurs an IO penalty |
| 13 | + enabled = false |
| 14 | + } |
| 15 | + remote(settings.develocity.buildCache) { |
| 16 | + enabled = true |
| 17 | + push = buildCachePush |
121 | 18 | } |
122 | 19 | } |
123 | 20 | } |
124 | 21 | } |
125 | 22 | } |
126 | | - |
0 commit comments