in plugins/docker/base-image/src/integrationTest/java/co/elastic/gradle/dockerbase/DockerBaseImageBuildPluginIT.java [63:195]
public void testMultiProject() throws IOException {
helper.settings("""
include("s1")
include("s2")
include("s3")
"""
);
helper.buildScript(String.format("""
import java.net.URL
import %s
plugins {
id("co.elastic.vault")
id("co.elastic.cli.jfrog")
id("co.elastic.docker-base").apply(false)
}
vault {
address.set("https://vault-ci-prod.elastic.dev")
auth {
ghTokenFile()
ghTokenEnv()
tokenEnv()
roleAndSecretEnv()
}
}
val creds = vault.readAndCacheSecret("secret/ci/elastic-gradle-plugins/artifactory_creds").get()
cli {
jfrog {
username.set(creds["username"])
password.set(creds["plaintext"])
}
}
subprojects {
apply(plugin = "co.elastic.docker-base")
print(project.name)
configure<BaseImageExtension> {
osPackageRepository.set(URL("https://${creds["username"]}:${creds["plaintext"]}@artifactory.elastic.dev/artifactory/gradle-plugins-os-packages"))
}
}
""", BaseImageExtension.class.getName()
));
helper.buildScript("s1", """
plugins {
id("co.elastic.vault")
id("co.elastic.cli.jfrog")
}
vault {
address.set("https://vault-ci-prod.elastic.dev")
auth {
ghTokenFile()
ghTokenEnv()
tokenEnv()
roleAndSecretEnv()
}
}
val creds = vault.readAndCacheSecret("secret/ci/elastic-gradle-plugins/artifactory_creds").get()
cli {
jfrog {
username.set(creds["username"])
password.set(creds["plaintext"])
}
}
dockerBaseImage {
fromUbuntu("ubuntu", "20.04")
install("patch")
}
"""
);
helper.buildScript("s2", """
plugins {
id("co.elastic.vault")
id("co.elastic.cli.jfrog")
}
vault {
address.set("https://vault-ci-prod.elastic.dev")
auth {
ghTokenFile()
ghTokenEnv()
tokenEnv()
roleAndSecretEnv()
}
}
val creds = vault.readAndCacheSecret("secret/ci/elastic-gradle-plugins/artifactory_creds").get()
cli {
jfrog {
username.set(creds["username"])
password.set(creds["plaintext"])
}
}
dockerBaseImage {
from(project(":s1"))
run("patch --version")
install("curl")
}
"""
);
helper.buildScript("s3", """
plugins {
id("co.elastic.vault")
id("co.elastic.cli.jfrog")
}
vault {
address.set("https://vault-ci-prod.elastic.dev")
auth {
ghTokenFile()
ghTokenEnv()
tokenEnv()
roleAndSecretEnv()
}
}
val creds = vault.readAndCacheSecret("secret/ci/elastic-gradle-plugins/artifactory_creds").get()
cli {
jfrog {
username.set(creds["username"])
password.set(creds["plaintext"])
}
}
dockerBaseImage {
from(project(":s2"))
run("curl --version")
}
"""
);
runGradleTask(":s1:dockerBaseImageLockfile");
runGradleTask(":s2:dockerBaseImageLockfile");
runGradleTask(":s3:dockerBaseImageLockfile");
runGradleTask("dockerLocalImport");
}