Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #594 +/- ##
=========================================
Coverage 65.38% 65.38%
Complexity 211 211
=========================================
Files 34 34
Lines 988 988
Branches 142 142
=========================================
Hits 646 646
Misses 290 290
Partials 52 52 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
992cf9f to
ad53eb0
Compare
ad53eb0 to
4c81a80
Compare
ClasspathLoaderTest (JDK 25 split), UnsafeUtilTest (Unsafe.getObjectVolatile rewrite), and the JDK version matrix in the RIC PR workflow are moved to the dmelfi/improve-action-speed branch. This branch keeps only CI/workflow improvements and the JUnit 5.14.3 upgrade.
0b032a6 to
2c29a69
Compare
| distribution: corretto | ||
|
|
||
| # Install base module | ||
| cache: maven |
There was a problem hiding this comment.
Will this still pick the latest local changes If we make a change to one of the dependencies?
There was a problem hiding this comment.
Yes. The key is an hash of the pom file, so if you are changing the POM you will cause the local cache to download the deps.
https://github.com/actions/setup-java#caching-packages-dependencies
This is not ultra useful because when we make our changes we usually change also the POM, however I read there should be also a partial hit cache.
So we would have at least cached the external dependencies. This is definitely a minor improvement. I will delve in build performance in following PRs.
Issue #, if available:
N/A
Description of changes:
Fix multi-JDK test compatibility for
UnsafeUtilTestandClasspathLoaderTestin the Runtime Interface Client, and upgrade JUnit Jupiter from 5.9.2 to 5.14.3.UnsafeUtilTest —
testDisableIllegalAccessWarning:setAccessible(true)(standard reflection) to verify a field that production code accesses viaUnsafe— this broke on JDKs where the production code works fine.Unsafe.getObjectVolatile/staticFieldOffsetto mirror production code (no--add-opensneeded), and added@EnabledForJreRange(min = JAVA_9, max = JAVA_16)sinceIllegalAccessLoggeronly exists on JDK 9-16.ClasspathLoaderTest —
testLoadAllClassesWithEmptyClasspath:new File("").exists()now returnstrue(resolves to cwd) due to JDK-8024695. This meansClasspathLoaderno longer throwsFileNotFoundExceptionfor an empty classpath entry — it hits the directory-skip path instead.@DisabledForJreRange(min = JAVA_25)/@EnabledForJreRange(min = JAVA_25).JUnit upgrade: 5.9.2 → 5.14.3 to get
JRE.JAVA_25enum support for precise test targeting.Tests verified passing on JDK 8, 11, 17, and 21.
CI workflow improvements:
actions/cache) to all workflows.workflow_dispatchto all workflows for manual triggering.CI dependency graph for reference:
Design principles:
Target (OCI, Managed Runtime, both):
Both
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.