Build JavaScript projects in parallel from root POM (#35364)

Closes #35365

Signed-off-by: Jon Koops <jonkoops@gmail.com>
This commit is contained in:
Jon Koops 2024-12-05 11:01:25 +01:00 committed by GitHub
parent fc9a7a55c7
commit 0f1bdc4e97
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 90 additions and 39 deletions

View File

@ -91,8 +91,10 @@
</resources>
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>

View File

@ -91,8 +91,10 @@
</resources>
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
</plugins>
</build>

View File

@ -42,11 +42,6 @@
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<executions>
<execution>
<!-- Skip execution of build with an empty phase. -->
<id>pnpm-build</id>
<phase/>
</execution>
<execution>
<id>pnpm-pack</id>
<phase>package</phase>

View File

@ -4,7 +4,19 @@
"type": "module",
"packageManager": "pnpm@9.14.4+sha512.c8180b3fbe4e4bca02c94234717896b5529740a6cbadf19fa78254270403ea2f27d4e1d46a08a0f56c89b63dc8ebfd3ee53326da720273794e6200fcf0d184ab",
"scripts": {
"prepare": "cd .. && husky js/.husky"
"prepare": "cd .. && husky js/.husky",
"build": "wireit"
},
"wireit": {
"build": {
"dependencies": [
"./apps/account-ui:build",
"./apps/admin-ui:build",
"./libs/keycloak-admin-client:build",
"./libs/ui-shared:build",
"./themes-vendor:build"
]
}
},
"devDependencies": {
"@eslint/compat": "^1.2.3",

View File

@ -38,32 +38,6 @@
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>${frontend.plugin.version}</version>
<executions>
<execution>
<goals>
<goal>install-node-and-pnpm</goal>
</goals>
</execution>
<execution>
<id>pnpm-install</id>
<goals>
<goal>pnpm</goal>
</goals>
<configuration>
<arguments>install --prefer-offline --frozen-lockfile --ignore-scripts</arguments>
<workingDirectory>${maven.multiModuleProjectDirectory}/js</workingDirectory>
</configuration>
</execution>
<execution>
<id>pnpm-build</id>
<goals>
<goal>pnpm</goal>
</goals>
<configuration>
<arguments>build</arguments>
</configuration>
</execution>
</executions>
<configuration>
<nodeVersion>${node.version}</nodeVersion>
<pnpmVersion>${pnpm.version}</pnpmVersion>
@ -73,5 +47,56 @@
</plugin>
</plugins>
</pluginManagement>
<plugins>
<plugin>
<!-- Clean child modules from parent, as we trigger the build here for parallelization. -->
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<filesets>
<fileset>
<directory>apps/account-ui/target</directory>
</fileset>
<fileset>
<directory>apps/admin-ui/target</directory>
</fileset>
<fileset>
<directory>themes-vendor/target</directory>
</fileset>
</filesets>
</configuration>
</plugin>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<version>${frontend.plugin.version}</version>
<inherited>false</inherited>
<executions>
<execution>
<goals>
<goal>install-node-and-pnpm</goal>
</goals>
</execution>
<execution>
<id>pnpm-install</id>
<goals>
<goal>pnpm</goal>
</goals>
<configuration>
<arguments>install --prefer-offline --frozen-lockfile --ignore-scripts</arguments>
</configuration>
</execution>
<execution>
<id>pnpm-build</id>
<goals>
<goal>pnpm</goal>
</goals>
<configuration>
<arguments>build</arguments>
</configuration>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>

View File

@ -3,9 +3,22 @@
"private": true,
"type": "module",
"scripts": {
"build": "rollup --config && pnpm build:rewrite-import",
"build": "wireit",
"build:rewrite-import": "node scripts/rewrite-imports.js"
},
"wireit": {
"build": {
"command": "rollup --config && pnpm build:rewrite-import",
"files": [
"rollup.config.js"
],
"output": [
"target/classes/theme/keycloak/common/resources/vendor/react",
"target/classes/theme/keycloak/common/resources/vendor/react-dom",
"target/classes/theme/keycloak/common/resources/vendor/web-crypto-shim"
]
}
},
"dependencies": {
"@noble/hashes": "^1.6.1",
"@patternfly-v5/patternfly": "npm:@patternfly/patternfly@^5.4.2",

View File

@ -20,8 +20,10 @@
<build>
<plugins>
<plugin>
<groupId>com.github.eirslett</groupId>
<artifactId>frontend-maven-plugin</artifactId>
<artifactId>maven-clean-plugin</artifactId>
<configuration>
<skip>true</skip>
</configuration>
</plugin>
<plugin>
<artifactId>maven-resources-plugin</artifactId>