Skip to content

Revive reduced servlet smoke test matrix on top of main#18953

Open
zeitlinger wants to merge 1 commit into
open-telemetry:mainfrom
zeitlinger:revive-pr-16810
Open

Revive reduced servlet smoke test matrix on top of main#18953
zeitlinger wants to merge 1 commit into
open-telemetry:mainfrom
zeitlinger:revive-pr-16810

Conversation

@zeitlinger

Copy link
Copy Markdown
Member

Revives #16810 on top of current main.

Summary

This refresh keeps the original intent of #16810:

  • reduce the servlet smoke test matrix on PRs
  • keep the full matrix on main
  • preserve the current workflow gating that has since evolved on main

The reduced PR-mode matrix still aims to preserve coverage guarantees by:

  • keeping all JDK coverage via Tomcat on hotspot
  • keeping openj9 coverage via TomEE
  • keeping minimum-JDK coverage for the other servlet containers
  • leaving already-minimal cases unchanged

What changed in this refresh

Compared to the original branch, this revival mainly rebases the change onto current workflow structure:

  • resolves conflicts in:
    • .github/workflows/build-pull-request.yml
    • .github/workflows/reusable-pr-build.yml
  • wires reduced-smoke-tests through the current reusable workflow setup
  • preserves the reduced-matrix test selection logic in smoke tests

Context

The original PR was blocked by #17721, which has since merged on April 9, 2026.

Test plan

  • CI passes on the refreshed branch
  • Compare PR smoke-test runtime vs full matrix

Signed-off-by: Gregor Zeitlinger <gregor.zeitlinger@grafana.com>
@zeitlinger zeitlinger marked this pull request as ready for review June 11, 2026 11:45
@zeitlinger zeitlinger requested a review from a team as a code owner June 11, 2026 11:45
Copilot AI review requested due to automatic review settings June 11, 2026 11:45

Copilot AI left a comment

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.

Pull request overview

This PR revives the earlier effort to reduce the servlet smoke-test matrix on pull requests (to improve CI time) while keeping the full matrix for merges to main, updating the wiring to match the current reusable workflow structure.

Changes:

  • Adds a PR-only “reduced smoke tests” mode that skips non-representative app-server/JDK combinations in the servlet smoke tests.
  • Propagates a new reduced-smoke-tests workflow input through the PR dispatcher → reusable workflows → Gradle invocation.
  • Adjusts servlet image build logic to pass the target matrix explicitly into task creation.

Reviewed changes

Copilot reviewed 6 out of 6 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
smoke-tests/src/test/java/io/opentelemetry/smoketest/appserver/AppServerTest.java Implements reduced-mode skipping rules for servlet smoke test classes.
smoke-tests/images/servlet/build.gradle.kts Updates docker task creation to accept the computed image targets map.
smoke-tests/build.gradle.kts Maps -PreducedSmokeTests=true to a JVM system property consumed by tests.
.github/workflows/reusable-pr-build.yml Adds reduced-smoke-tests input and forwards it into build-common.yml.
.github/workflows/build-pull-request.yml Enables reduced smoke tests by default on PRs (unless test full smoke label is present).
.github/workflows/build-common.yml Passes -PreducedSmokeTests=true into the smoke-test Gradle invocation when requested.

Comment on lines +76 to +90
if (this instanceof TomcatSmokeTest) {
assumeFalse(isOpenj9, "Reduced mode: Tomcat runs hotspot only");
return;
}
if (this instanceof TomeeSmokeTest) {
assumeTrue(isOpenj9, "Reduced mode: TomEE runs openj9 only");
return;
}
if (this instanceof WebsphereSmokeTest) {
return;
}
// All other servers: hotspot only, minimum JDK per server version
assumeFalse(isOpenj9, "Reduced mode: hotspot only");
assumeTrue(isMinimumJdk(appServer), "Reduced mode: only minimum JDK per server version");
}
Comment on lines 462 to 467
./gradlew
:smoke-tests:test
-PsmokeTestSuite=${{ matrix.smoke-test-suite }}
${{ inputs.reduced-smoke-tests && '-PreducedSmokeTests=true' || '' }}
${{ inputs.skip-openj9-tests && matrix.smoke-test-suite != 'websphere' && '-PskipOpenJ9SmokeTests=true' || '' }}
${{ inputs.no-build-cache && ' --no-build-cache' || '' }}
Sign up for free to 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.

2 participants