Skip to content

Github Actions Improvements - #594

Merged
darklight3it merged 7 commits into
mainfrom
dmelfi/fix-testing-actions
Mar 23, 2026
Merged

Github Actions Improvements#594
darklight3it merged 7 commits into
mainfrom
dmelfi/fix-testing-actions

Conversation

@darklight3it

@darklight3itdarklight3it commented Mar 19, 2026

Copy link
Copy Markdown
Collaborator

Issue #, if available:

N/A

Description of changes:

Fix multi-JDK test compatibility for UnsafeUtilTest and ClasspathLoaderTest in the Runtime Interface Client, and upgrade JUnit Jupiter from 5.9.2 to 5.14.3.

JUnit upgrade: 5.9.2 → 5.14.3.

CI workflow improvements:

  • Restructured all 11 workflow files to follow "each workflow owns one module" philosophy with dependency-aware path triggers — when an upstream module changes, all downstream workflows trigger automatically.
  • Added Maven dependency caching (actions/cache) to all workflows.
  • Added workflow_dispatch to all workflows for manual triggering.

CI dependency graph for reference:

aws-lambda-java-core (no deps)
├── aws-lambda-java-log4j2
└── aws-lambda-java-runtime-interface-client (also depends on serialization)
aws-lambda-java-events (no deps)
├── aws-lambda-java-serialization
│ ├── aws-lambda-java-tests (also depends on events)
│ └── aws-lambda-java-runtime-interface-client (also depends on core)
├── aws-lambda-java-events-sdk-transformer
└── aws-lambda-java-tests (also depends on serialization)
samples (depends on events, serialization, tests)

Design principles:

  • Each workflow builds and tests exactly one module.
  • Each workflow triggers on changes to its own code and its upstream dependencies.
  • No workflow builds downstream modules — that's the downstream workflow's job.
  • All downstream workflows run in parallel when an upstream dependency changes.

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.

@darklight3itdarklight3it changed the title Github Actions ImprovemtnsGithub Actions ImprovementsMar 19, 2026
@codecov

codecovBot commented Mar 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 65.38%. Comparing base (c201b4d) to head (a365a00).
⚠️ Report is 1 commits behind head on main.

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.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@darklight3it
darklight3it marked this pull request as ready for review March 20, 2026 00:21
@darklight3it
darklight3itforce-pushed the dmelfi/fix-testing-actions branch 2 times, most recently from 992cf9f to ad53eb0CompareMarch 20, 2026 01:29
@darklight3it
darklight3itforce-pushed the dmelfi/fix-testing-actions branch from ad53eb0 to 4c81a80CompareMarch 20, 2026 16:40
@darklight3itdarklight3it self-assigned this Mar 20, 2026
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.
@darklight3it
darklight3itforce-pushed the dmelfi/fix-testing-actions branch from 0b032a6 to 2c29a69CompareMarch 22, 2026 13:15
distribution: corretto

# Install base module
cache: maven

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Will this still pick the latest local changes If we make a change to one of the dependencies?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.

distribution: corretto

# Install base module
cache: maven

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

by how much this is reducing the build time?

Copy link
Copy Markdown
CollaboratorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not much, unfortunately a couple of seconds on the RIC. On the other you cannot even find it.

It is useful however for development if you want to test you changes with a github run.

@darklight3it
darklight3it merged commit d8ffbf1 into mainMar 23, 2026
15 checks passed
@darklight3it
darklight3it deleted the dmelfi/fix-testing-actions branch March 23, 2026 22:03
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

@darklight3it@maxday@M-Elsaeed