keycloak/keycloak

Avoid dependent modules rebuilt for Quarkus IT

Offen

#23.276 geöffnet am 15.09.2023

 (0 Kommentare) (0 Reaktionen) (0 zugewiesene Personen)Java (8.346 Forks)batch import
area/dist/quarkusarea/testsuitehelp wantedkind/enhancementteam/cloud-native

Repository-Metriken

Stars
 (34.398 Sterne)
PR-Merge-Metriken
 (PR-Metriken ausstehend)

Beschreibung

Description

When we execute the Quarkus IT, we use the -am Maven parameter. It'll build all dependent modules again on the particular module. For integration tests, all these modules are rebuilt:

[INFO] ------------------------------------------------------------------------
[INFO] Reactor Build Order:
[INFO] 
[INFO] Keycloak                                                           [pom]
[INFO] Keycloak Common                                                    [jar]
[INFO] Keycloak Core                                                      [jar]
[INFO] Keycloak Server SPI                                                [jar]
[INFO] Keycloak Server Private SPI                                        [jar]
[INFO] Keycloak Crypto Parent                                             [pom]
[INFO] Keycloak Crypto Default                                            [jar]
[INFO] Keycloak SAML Core Public API                                      [jar]
[INFO] Keycloak SAML Core                                                 [jar]
[INFO] Keycloak REST Services                                             [jar]
[INFO] Keycloak Crypto FIPS 140-2 Integration                             [jar]
[INFO] Keycloak JavaScript Adapter (JAR)                                  [jar]
[INFO] Keycloak Themes                                                    [jar]
[INFO] Keycloak Model Parent                                              [pom]
[INFO] Keycloak Legacy Database Support                                   [jar]
[INFO] Keycloak Legacy Database Support - Private classes                 [jar]
[INFO] Keycloak Model JPA                                                 [jar]
[INFO] Keycloak Model Java Annotations and Processor                      [jar]
[INFO] Keycloak Model Map                                                 [jar]
[INFO] Keycloak Model Map JPA                                             [jar]
[INFO] Keycloak Kerberos Federation                                       [jar]
[INFO] Keycloak LDAP UserStoreProvider                                    [jar]
[INFO] Keycloak Legacy Database Support - REST services                   [jar]
[INFO] Keycloak Model Infinispan                                          [jar]
[INFO] Keycloak Model Hot Rod                                             [jar]
[INFO] Keycloak Model Map File                                            [jar]
[INFO] Keycloak SSSD Federation                                           [jar]
[INFO] Keycloak Authz: Parent                                             [pom]
[INFO] Keycloak AuthZ: Policy Provider Parent                             [pom]
[INFO] Keycloak AuthZ: Common Policy Providers                            [jar]
[INFO] Keycloak Quarkus Parent                                            [pom]
[INFO] Keycloak Configuration API                                         [jar]
[INFO] Keycloak JavaScript Parent                                         [pom]
[INFO] Keycloak Account UI                                                [jar]
[INFO] Keycloak Admin UI                                                  [jar]
[INFO] Keycloak Administration UI                                         [pom]
[INFO] Admin UI REST extensions                                           [jar]
[INFO] Keycloak Quarkus Server Extension                                  [jar]
[INFO] Keycloak Quarkus Server Deployment                                 [jar]
[INFO] Keycloak Integration                                               [pom]
[INFO] Keycloak Client CLI                                                [pom]
[INFO] Keycloak Client Registration CLI                                   [jar]
[INFO] Keycloak Admin CLI                                                 [jar]
[INFO] Keycloak Client CLI Distribution                                   [pom]
[INFO] Keycloak Quarkus Server App                                        [jar]
[INFO] Keycloak Quarkus Server Distribution                               [pom]
[INFO] Keycloak Quarkus Test Parent                                       [pom]
[INFO] Keycloak Quarkus Server JUnit 5 Internal Test Framework            [jar]
[INFO] Keycloak Quarkus Server Integration tests                          [jar]
[INFO] 

You can notice the Themes module is included there, which consumes much time, and also UI modules, which are often unstable during the build for these tests.

Instead, we can leverage the cached artifacts. I've tried to make an improvement[1] around that, but there were some problems with ClassLoader and some modules.

Related work https://github.com/keycloak/keycloak/commit/95fafa44979d0c48926544dbcef70c220ab1ca98

Discussion

No response

Motivation

No response

Details

No response

Contributor Guide