|
1 |
| -if (System.env.ELASTIC_ARTIFACTORY_USERNAME == null || System.env.ELASTIC_ARTIFACTORY_TOKEN == null) { |
2 |
| - throw new GradleException("Using init script without configuration") |
3 |
| -} else { |
4 |
| - logger.info("Using elastic artifactory repos") |
5 |
| - settingsEvaluated { settings -> |
6 |
| - settings.pluginManagement { |
| 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 | +['VAULT_ADDR', 'VAULT_ROLE_ID', 'VAULT_SECRET_ID'].each { |
| 14 | + if (System.env."$it" == null) { |
| 15 | + throw new GradleException("$it must be set!") |
| 16 | + |
| 17 | + } |
| 18 | +} |
| 19 | + |
| 20 | +final String vaultToken = new Vault( |
| 21 | + new VaultConfig() |
| 22 | + .address(System.env.VAULT_ADDR) |
| 23 | + .engineVersion(1) |
| 24 | + .build() |
| 25 | + ) |
| 26 | + .auth() |
| 27 | + .loginByAppRole("approle", System.env.VAULT_ROLE_ID, System.env.VAULT_SECRET_ID) |
| 28 | + .getAuthClientToken(); |
| 29 | + |
| 30 | +final Vault vault = new Vault( |
| 31 | + new VaultConfig() |
| 32 | + .address(System.env.VAULT_ADDR) |
| 33 | + .engineVersion(1) |
| 34 | + .token(vaultToken) |
| 35 | + .build() |
| 36 | +) |
| 37 | + |
| 38 | +final Map<String,String> artifactoryCredentials = vault.logical() |
| 39 | + .read("secret/elasticsearch-ci/artifactory.elstc.co") |
| 40 | + .getData(); |
| 41 | + |
| 42 | +logger.info("Using elastic artifactory repos") |
| 43 | +Closure configCache = { |
| 44 | + return { |
| 45 | + name "artifactory-gradle-release" |
| 46 | + url "https://artifactory.elstc.co/artifactory/gradle-release" |
| 47 | + credentials { |
| 48 | + username artifactoryCredentials.get("username") |
| 49 | + password artifactoryCredentials.get("token") |
| 50 | + } |
| 51 | + } |
| 52 | +} |
| 53 | +settingsEvaluated { settings -> |
| 54 | + settings.pluginManagement { |
| 55 | + repositories { |
| 56 | + maven configCache() |
| 57 | + } |
| 58 | + } |
| 59 | +} |
| 60 | +projectsLoaded { |
| 61 | + allprojects { |
| 62 | + buildscript { |
7 | 63 | repositories {
|
8 |
| - maven { |
9 |
| - name "artifactory-gradle-plugins" |
10 |
| - url "https://artifactory.elstc.co/artifactory/gradle-plugins" |
11 |
| - credentials { |
12 |
| - username System.env.ELASTIC_ARTIFACTORY_USERNAME |
13 |
| - password System.env.ELASTIC_ARTIFACTORY_TOKEN |
14 |
| - } |
15 |
| - } |
16 |
| - gradlePluginPortal() |
| 64 | + maven configCache() |
17 | 65 | }
|
18 | 66 | }
|
| 67 | + repositories { |
| 68 | + maven configCache() |
| 69 | + } |
19 | 70 | }
|
20 |
| - projectsLoaded { |
21 |
| - allprojects { |
22 |
| - buildscript { |
23 |
| - repositories { |
24 |
| - maven { |
25 |
| - name "artifactory-gradle-release" |
26 |
| - url "https://artifactory.elstc.co/artifactory/gradle-release/" |
27 |
| - credentials { |
28 |
| - username System.env.ELASTIC_ARTIFACTORY_USERNAME |
29 |
| - password System.env.ELASTIC_ARTIFACTORY_TOKEN |
30 |
| - } |
31 |
| - } |
32 |
| - } |
33 |
| - } |
34 |
| - repositories { |
35 |
| - maven { |
36 |
| - name "artifactory-gradle-release" |
37 |
| - url "https://artifactory.elstc.co/artifactory/gradle-release/" |
38 |
| - credentials { |
39 |
| - username System.env.ELASTIC_ARTIFACTORY_USERNAME |
40 |
| - password System.env.ELASTIC_ARTIFACTORY_TOKEN |
41 |
| - } |
| 71 | +} |
| 72 | + |
| 73 | +if (System.env.GRADLE_BUILD_CACHE_URL != null) { |
| 74 | + final Map<String,String> buildCacheCredentials = vault.logical() |
| 75 | + .read("secret/elasticsearch-ci/gradle-build-cache") |
| 76 | + .getData(); |
| 77 | + gradle.settingsEvaluated { settings -> |
| 78 | + settings.buildCache { |
| 79 | + remote(HttpBuildCache) { |
| 80 | + url = System.getenv('GRADLE_BUILD_CACHE_URL') |
| 81 | + push = Boolean.valueOf(System.getenv('GRADLE_BUILD_CACHE_PUSH') ?: 'false') |
| 82 | + credentials { |
| 83 | + username = buildCacheCredentials.get("username") |
| 84 | + password = buildCacheCredentials.get("password") |
42 | 85 | }
|
43 | 86 | }
|
44 | 87 | }
|
45 | 88 | }
|
46 | 89 | }
|
| 90 | + |
0 commit comments