Reconfigure for forgejo/woodpecker
This commit is contained in:
parent
1d5b9eeb99
commit
a119d022f6
13 changed files with 167 additions and 142 deletions
|
@ -15,6 +15,7 @@ import org.junit.jupiter.api.extension.ParameterContext;
|
|||
import org.junit.jupiter.api.extension.ParameterResolver;
|
||||
import org.keycloak.admin.client.Keycloak;
|
||||
import org.keycloak.admin.client.token.TokenService;
|
||||
import org.testcontainers.containers.FixedHostPortGenericContainer;
|
||||
import org.testcontainers.containers.GenericContainer;
|
||||
import org.testcontainers.containers.wait.strategy.Wait;
|
||||
import org.testcontainers.utility.MountableFile;
|
||||
|
@ -29,6 +30,7 @@ public class KeycloakExtension implements BeforeAllCallback, ParameterResolver {
|
|||
private static KeycloakClient client;
|
||||
private static Prometheus prometheus;
|
||||
|
||||
@SuppressWarnings({ "resource", "deprecation" })
|
||||
@Override
|
||||
public void beforeAll(ExtensionContext context) throws Exception {
|
||||
|
||||
|
@ -45,14 +47,20 @@ public class KeycloakExtension implements BeforeAllCallback, ParameterResolver {
|
|||
throw new Exception("Failed to read properties", e);
|
||||
}
|
||||
var version = properties.getProperty("version");
|
||||
var image = "quay.io/keycloak/keycloak:" + version;
|
||||
var jar = properties.getProperty("jar");
|
||||
var timeout = properties.getProperty("timeout");
|
||||
|
||||
// create and start container
|
||||
|
||||
@SuppressWarnings("resource")
|
||||
var container = new GenericContainer<>("quay.io/keycloak/keycloak:" + version)
|
||||
.withEnv("KEYCLOAK_ADMIN", "admin")
|
||||
var container = new GenericContainer<>(image).withExposedPorts(8080);
|
||||
if (System.getenv("CI") != null) {
|
||||
// use fixed port and hostname in ci
|
||||
container = new FixedHostPortGenericContainer<>(image)
|
||||
.withFixedExposedPort(8080, 8080)
|
||||
.withCreateContainerCmdModifier(c -> c.withName("keycloak"));
|
||||
}
|
||||
container.withEnv("KEYCLOAK_ADMIN", "admin")
|
||||
.withEnv("KEYCLOAK_ADMIN_PASSWORD", "password")
|
||||
.withEnv("KC_LOG_LEVEL", "io.kokuwa:trace")
|
||||
// otherwise port 9000 will be used, with this config we can test different keycloak versions
|
||||
|
@ -63,7 +71,6 @@ public class KeycloakExtension implements BeforeAllCallback, ParameterResolver {
|
|||
.withEnv("KC_METRICS_STATS_INTERVAL", "PT1s")
|
||||
.withCopyFileToContainer(MountableFile.forHostPath(jar), "/opt/keycloak/providers/metrics.jar")
|
||||
.withLogConsumer(out -> System.out.print(out.getUtf8String()))
|
||||
.withExposedPorts(8080)
|
||||
.withStartupTimeout(Duration.parse(timeout))
|
||||
.waitingFor(Wait.forHttp("/health").forPort(8080))
|
||||
.withCommand("start-dev");
|
||||
|
@ -76,6 +83,12 @@ public class KeycloakExtension implements BeforeAllCallback, ParameterResolver {
|
|||
// create client for keycloak container
|
||||
|
||||
var url = "http://" + container.getHost() + ":" + container.getMappedPort(8080);
|
||||
System.out.println(container.getHost());
|
||||
System.out.println(container.getHost());
|
||||
System.out.println(container.getHost());
|
||||
System.out.println(container.getExtraHosts());
|
||||
System.out.println(container.getExtraHosts());
|
||||
System.out.println(container.getExtraHosts());
|
||||
var keycloak = Keycloak.getInstance(url, "master", "admin", "password", "admin-cli");
|
||||
assertEquals(version, keycloak.serverInfo().getInfo().getSystemInfo().getVersion(), "version invalid");
|
||||
var target = ClientBuilder.newClient().target(url);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue