Skip to content

Commit

Permalink
test: Add workflow with matrix tests
Browse files Browse the repository at this point in the history
  • Loading branch information
sventorben committed Jan 30, 2024
1 parent 8eb9cac commit 7f395b5
Show file tree
Hide file tree
Showing 6 changed files with 43 additions and 4 deletions.
29 changes: 29 additions & 0 deletions .github/workflows/matrix.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Compatibility Matrix

on:
workflow_dispatch:

jobs:
compatibility:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
keycloak_version: [ 21.0.2, 21.1.2, 22.0.5, 23.0.5, latest, nightly ]
extension_version: [ 20.0.1, 21.0.0, 22.0.0, 23.0.0 ]
steps:
- uses: actions/checkout@v4
with:
ref: v${{ matrix.extension_version }}
- name: Set up JDK 17
uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: 17
cache: 'maven'
- name: Clean and compile
run: mvn -B -U clean test-compile --file pom.xml
- name: Download extension
run: curl -L -o target/keycloak-restrict-client-auth.jar https://github.com/sventorben/keycloak-restrict-client-auth/releases/download/v${{ matrix.extension_version }}/keycloak-restrict-client-auth.jar
- name: Compatibility tests
run: mvn -B -U failsafe:integration-test failsafe:verify --file pom.xml -Dkeycloak.version=${{ matrix.keycloak_version }} -DuseJar=true
2 changes: 2 additions & 0 deletions pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -56,6 +56,7 @@
<!-- For compatibility tests -->
<keycloak.version>${version.keycloak}</keycloak.version>
<keycloak.dist>quarkus</keycloak.dist>
<useJar>false</useJar>

<version.mockito>5.10.0</version.mockito>
</properties>
Expand Down Expand Up @@ -87,6 +88,7 @@
<org.jboss.logging.provider>log4j2</org.jboss.logging.provider>
<keycloak.version>${keycloak.version}</keycloak.version>
<keycloak.dist>${keycloak.dist}</keycloak.dist>
<useJar>${useJar}</useJar>
</systemPropertyVariables>
</configuration>
</plugin>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ class ClientPolicyIT {

@Container
private static final KeycloakContainer KEYCLOAK_CONTAINER = FullImageName.createContainer()
.withProviderClassesFrom("target/classes")
.withExposedPorts(KEYCLOAK_HTTP_PORT)
.withLogConsumer(new Slf4jLogConsumer(LOGGER).withSeparateOutputStreams())
.withRealmImportFile("/test-realm.json")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,6 @@ class ConfigIT {

@Container
private static final KeycloakContainer KEYCLOAK_CONTAINER = FullImageName.createContainer()
.withProviderClassesFrom("target/classes")
.withExposedPorts(KEYCLOAK_HTTP_PORT)
.withLogConsumer(new Slf4jLogConsumer(LOGGER).withSeparateOutputStreams())
.withStartupTimeout(Duration.ofSeconds(90))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@
import org.testcontainers.images.ImagePullPolicy;
import org.testcontainers.images.PullPolicy;

import java.io.File;
import java.util.List;

import static de.sventorben.keycloak.authorization.client.FullImageName.Distribution.quarkus;
import static java.lang.module.ModuleDescriptor.Version;

Expand All @@ -20,6 +23,8 @@ enum Distribution {
private static final String NIGHTLY_VERSION = "nightly";
private static final String KEYCLOAK_VERSION = System.getProperty("keycloak.version", LATEST_VERSION);

private static final boolean USE_JAR = Boolean.parseBoolean(System.getProperty("useJar", "false"));

static String get() {
String imageName = "keycloak";

Expand Down Expand Up @@ -61,8 +66,14 @@ static KeycloakContainer createContainer() {
if (isLatestVersion() || isNightlyVersion()) {
pullPolicy = PullPolicy.alwaysPull();
}
return new KeycloakContainer(fullImage)
KeycloakContainer keycloakContainer = new KeycloakContainer(fullImage)
.withImagePullPolicy(pullPolicy);
if (USE_JAR) {
keycloakContainer = keycloakContainer.withProviderLibsFrom(List.of(new File("target/keycloak-restrict-client-auth.jar")));
} else {
keycloakContainer = keycloakContainer.withProviderClassesFrom("target/classes");
}
return keycloakContainer;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,6 @@ class LoginIT {

@Container
private static final KeycloakContainer KEYCLOAK_CONTAINER = FullImageName.createContainer()
.withProviderClassesFrom("target/classes")
.withExposedPorts(KEYCLOAK_HTTP_PORT)
.withLogConsumer(new Slf4jLogConsumer(LOGGER).withSeparateOutputStreams())
.withRealmImportFile("/test-realm.json")
Expand Down

0 comments on commit 7f395b5

Please sign in to comment.