Skip to content

Conversation

marki1an
Copy link
Collaborator

@marki1an marki1an commented Apr 10, 2025

🔧 Type of changes

  • new bid adapter
  • bid adapter update
  • new feature
  • new analytics adapter
  • new module
  • module update
  • bugfix
  • documentation
  • configuration
  • dependency update
  • tech debt (test coverage, refactorings, etc.)

✨ What's the context?

What's the context for the changes?

🧠 Rationale behind the change

Why did you choose to make these changes? Were there any trade-offs you had to consider?

🔎 New Bid Adapter Checklist

  • verify email contact works
  • NO fully dynamic hostnames
  • geographic host parameters are NOT required
  • direct use of HTTP is prohibited - implement an existing Bidder interface that will do all the job
  • if the ORTB is just forwarded to the endpoint, use the generic adapter - define the new adapter as the alias of the generic adapter
  • cover an adapter configuration with an integration test

🧪 Test plan

How do you know the changes are safe to ship to production?

🏎 Quality check

  • Are your changes following our code style guidelines?
  • Are there any breaking changes in your code?
  • Does your test coverage exceed 90%?
  • Are there any erroneous console logs, debuggers or leftover code in your changes?

@marki1an marki1an added enhancement New improvement do not merge Not the time for merging yet tests Functional or other tests labels Apr 10, 2025
@marki1an marki1an self-assigned this Apr 10, 2025
@marki1an marki1an requested a review from osulzhenko April 10, 2025 15:25
@marki1an marki1an changed the title Test: Update pr-java-ci work flow Test: Update pr-java/functional-ci work flow Apr 14, 2025
osulzhenko
osulzhenko previously approved these changes Jun 3, 2025
@muuki88
Copy link
Contributor

muuki88 commented Jun 3, 2025

This is great 🥳

Do the functional test not produce junit reports, so we could leverage existing actions like https://github.com/marketplace/actions/junit-report-action or https://github.com/marketplace/actions/test-reporter ?

@osulzhenko
Copy link
Collaborator

Hey @muuki88 ,
Thanks for info. While it provides detailed annotations, I've noticed a few challenges:

  • Annotation Limit: GitHub restricts check annotations to 50 per run. This means if there are more than 50 test failures, some won't be annotated, potentially hiding critical issues;
  • Review Noise: The extensive annotations can clutter the PR, making it harder to focus on the actual code changes during reviews;
  • Maintenance Overhead: Managing two reporting systems adds complexity. A single, concise comment summarizing test failures and notifying the author could streamline our workflow and reduce potential confusion.

Could you share what specific advantages you're seeing with the current setup that might outweigh these concerns? I'm open to discussing best approach for community.

Copy link

github-actions bot commented Jun 3, 2025

@marki1an, could you please take a look at the functional test failures?
Functional Test Failures

[ERROR] Tests run: 4442, Failures: 1, Errors: 0, Skipped: 24

Show failed tests details
[ERROR] Failures: 
[ERROR]   StoredResponseSpec.PBS should set seatBids in response from multiple imp.ext.prebid.storedBidResponse.seatbidobj when it is defined:339 Condition not satisfied:

convertToComparableSeatBid(response.seatbid).bid.flatten().sort() == bidRequest.imp.ext.prebid.storedAuctionResponse.seatBidObject.bid.flatten().sort()
|                          |        |        |   |         |      |  |          |   |   |      |                     |             |   |         |
|                          |        |        |   |         |      |  |          |   |   |      |                     |             |   |         [org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250), org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.270, crid:1, weight:300, height:250)]
|                          |        |        |   |         |      |  |          |   |   |      |                     |             |   [org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250), org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.270, crid:1, weight:300, height:250)]
|                          |        |        |   |         |      |  |          |   |   |      |                     |             [[org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.270, crid:1, weight:300, height:250)], [org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)]]
|                          |        |        |   |         |      |  |          |   |   |      |                     [org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.270, crid:1, weight:300, height:250)], seat:generic), org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)], seat:generic)]
|                          |        |        |   |         |      |  |          |   |   |      [org.prebid.server.functional.model.request.auction.StoredAuctionResponse(seatBidObject:org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.270, crid:1, weight:300, height:250)], seat:generic)), org.prebid.server.functional.model.request.auction.StoredAuctionResponse(seatBidObject:org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)], seat:generic))]
|                          |        |        |   |         |      |  |          |   |   [org.prebid.server.functional.model.request.auction.ImpExtPrebid(storedAuctionResponse:org.prebid.server.functional.model.request.auction.StoredAuctionResponse(seatBidObject:org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.270, crid:1, weight:300, height:250)], seat:generic)), bidder:org.prebid.server.functional.model.request.auction.Bidder(generic:org.prebid.server.functional.model.bidder.Generic@23d3a475, configuredBidders:[generic])), org.prebid.server.functional.model.request.auction.ImpExtPrebid(storedAuctionResponse:org.prebid.server.functional.model.request.auction.StoredAuctionResponse(seatBidObject:org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)], seat:generic)), bidder:org.prebid.server.functional.model.request.auction.Bidder(generic:org.prebid.server.functional.model.bidder.Generic@23d3a475, configuredBidders:[generic]))]
|                          |        |        |   |         |      |  |          |   [org.prebid.server.functional.model.request.auction.ImpExt(prebid:org.prebid.server.functional.model.request.auction.ImpExtPrebid(storedAuctionResponse:org.prebid.server.functional.model.request.auction.StoredAuctionResponse(seatBidObject:org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.270, crid:1, weight:300, height:250)], seat:generic)), bidder:org.prebid.server.functional.model.request.auction.Bidder(generic:org.prebid.server.functional.model.bidder.Generic@23d3a475, configuredBidders:[generic]))), org.prebid.server.functional.model.request.auction.ImpExt(prebid:org.prebid.server.functional.model.request.auction.ImpExtPrebid(storedAuctionResponse:org.prebid.server.functional.model.request.auction.StoredAuctionResponse(seatBidObject:org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)], seat:generic)), bidder:org.prebid.server.functional.model.request.auction.Bidder(generic:org.prebid.server.functional.model.bidder.Generic@23d3a475, configuredBidders:[generic])))]
|                          |        |        |   |         |      |  |          [org.prebid.server.functional.model.request.auction.Imp(id:f21cb42d-acc6-40df-bc31-78a0517a2585, banner:org.prebid.server.functional.model.request.auction.Banner(format:[org.prebid.server.functional.model.request.auction.Format(weight:300, height:250)]), ext:org.prebid.server.functional.model.request.auction.ImpExt(prebid:org.prebid.server.functional.model.request.auction.ImpExtPrebid(storedAuctionResponse:org.prebid.server.functional.model.request.auction.StoredAuctionResponse(seatBidObject:org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.270, crid:1, weight:300, height:250)], seat:generic)), bidder:org.prebid.server.functional.model.request.auction.Bidder(generic:org.prebid.server.functional.model.bidder.Generic@23d3a475, configuredBidders:[generic]))), bidderName:generic, mediaTypes:[BANNER]), org.prebid.server.functional.model.request.auction.Imp(id:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, banner:org.prebid.server.functional.model.request.auction.Banner(format:[org.prebid.server.functional.model.request.auction.Format(weight:300, height:250)]), ext:org.prebid.server.functional.model.request.auction.ImpExt(prebid:org.prebid.server.functional.model.request.auction.ImpExtPrebid(storedAuctionResponse:org.prebid.server.functional.model.request.auction.StoredAuctionResponse(seatBidObject:org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)], seat:generic)), bidder:org.prebid.server.functional.model.request.auction.Bidder(generic:org.prebid.server.functional.model.bidder.Generic@23d3a475, configuredBidders:[generic]))), bidderName:generic, mediaTypes:[BANNER])]
|                          |        |        |   |         |      |  org.prebid.server.functional.model.request.auction.BidRequest(id:8c783d55-da1c-41ce-bc28-dc96a6657ff4, imp:[org.prebid.server.functional.model.request.auction.Imp(id:f21cb42d-acc6-40df-bc31-78a0517a2585, banner:org.prebid.server.functional.model.request.auction.Banner(format:[org.prebid.server.functional.model.request.auction.Format(weight:300, height:250)]), ext:org.prebid.server.functional.model.request.auction.ImpExt(prebid:org.prebid.server.functional.model.request.auction.ImpExtPrebid(storedAuctionResponse:org.prebid.server.functional.model.request.auction.StoredAuctionResponse(seatBidObject:org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.270, crid:1, weight:300, height:250)], seat:generic)), bidder:org.prebid.server.functional.model.request.auction.Bidder(generic:org.prebid.server.functional.model.bidder.Generic@23d3a475, configuredBidders:[generic]))), bidderName:generic, mediaTypes:[BANNER]), org.prebid.server.functional.model.request.auction.Imp(id:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, banner:org.prebid.server.functional.model.request.auction.Banner(format:[org.prebid.server.functional.model.request.auction.Format(weight:300, height:250)]), ext:org.prebid.server.functional.model.request.auction.ImpExt(prebid:org.prebid.server.functional.model.request.auction.ImpExtPrebid(storedAuctionResponse:org.prebid.server.functional.model.request.auction.StoredAuctionResponse(seatBidObject:org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)], seat:generic)), bidder:org.prebid.server.functional.model.request.auction.Bidder(generic:org.prebid.server.functional.model.bidder.Generic@23d3a475, configuredBidders:[generic]))), bidderName:generic, mediaTypes:[BANNER])], site:org.prebid.server.functional.model.request.auction.Site(page:rOJteIKdUtgosPXVCuSK, publisher:org.prebid.server.functional.model.request.auction.Publisher(id:1847715185)), tmax:2500, regs:org.prebid.server.functional.model.request.auction.Regs(gdpr:0), ext:org.prebid.server.functional.model.request.auction.BidRequestExt(prebid:org.prebid.server.functional.model.request.auction.Prebid(debug:ENABLED)), requestBidders:[generic], requestDistributionChannels:[SITE], accountId:1847715185)
|                          |        |        |   |         |      false
|                          |        |        |   |         [org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.27, crid:1, weight:300, height:250), org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)]
|                          |        |        |   [org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.27, crid:1, weight:300, height:250), org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)]
|                          |        |        [[org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.27, crid:1, weight:300, height:250), org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)]]
|                          |        [org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.27, crid:1, weight:300, height:250), org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)], seat:generic)]
|                          org.prebid.server.functional.model.response.auction.BidResponse(id:8c783d55-da1c-41ce-bc28-dc96a6657ff4, seatbid:[org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.27, crid:1, weight:300, height:250), org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)], seat:generic)], cur:USD, ext:org.prebid.server.functional.model.response.auction.BidResponseExt(debug:org.prebid.server.functional.model.response.Debug(resolvedRequest:org.prebid.server.functional.model.request.auction.BidRequest(id:8c783d55-da1c-41ce-bc28-dc96a6657ff4, imp:[org.prebid.server.functional.model.request.auction.Imp(id:f21cb42d-acc6-40df-bc31-78a0517a2585, banner:org.prebid.server.functional.model.request.auction.Banner(format:[org.prebid.server.functional.model.request.auction.Format(weight:300, height:250)]), secure:SECURE, ext:org.prebid.server.functional.model.request.auction.ImpExt(prebid:org.prebid.server.functional.model.request.auction.ImpExtPrebid(storedAuctionResponse:org.prebid.server.functional.model.request.auction.StoredAuctionResponse(seatBidObject:org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.27, crid:1, weight:300, height:250)], seat:generic)), bidder:org.prebid.server.functional.model.request.auction.Bidder(generic:org.prebid.server.functional.model.bidder.Generic@23d3a475, configuredBidders:[generic])), tid:eaee2661-983f-47ff-8fe0-d526696183b6), bidderName:generic, mediaTypes:[BANNER]), org.prebid.server.functional.model.request.auction.Imp(id:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, banner:org.prebid.server.functional.model.request.auction.Banner(format:[org.prebid.server.functional.model.request.auction.Format(weight:300, height:250)]), secure:SECURE, ext:org.prebid.server.functional.model.request.auction.ImpExt(prebid:org.prebid.server.functional.model.request.auction.ImpExtPrebid(storedAuctionResponse:org.prebid.server.functional.model.request.auction.StoredAuctionResponse(seatBidObject:org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)], seat:generic)), bidder:org.prebid.server.functional.model.request.auction.Bidder(generic:org.prebid.server.functional.model.bidder.Generic@23d3a475, configuredBidders:[generic])), tid:fad5e1f6-626c-4411-992f-9228bf331783), bidderName:generic, mediaTypes:[BANNER])], site:org.prebid.server.functional.model.request.auction.Site(page:rOJteIKdUtgosPXVCuSK, publisher:org.prebid.server.functional.model.request.auction.Publisher(id:1847715185), ext:org.prebid.server.functional.model.request.auction.SiteExt(amp:0)), device:org.prebid.server.functional.model.request.auction.Device(ua:Apache-HttpClient/4.5.14 (Java/21.0.7)), at:1, tmax:2500, cur:[USD], source:org.prebid.server.functional.model.request.auction.Source(tid:97f5ef9f-b955-40df-9fae-afb80f90f044), regs:org.prebid.server.functional.model.request.auction.Regs(gdpr:0), ext:org.prebid.server.functional.model.request.auction.BidRequestExt(prebid:org.prebid.server.functional.model.request.auction.Prebid(debug:ENABLED, channel:org.prebid.server.functional.model.request.auction.Prebid$Channel@43ec61f0, server:org.prebid.server.functional.model.request.auction.Server(externalUrl:http://localhost:8080, datacenter:local, endpoint:/openrtb2/auction))), requestBidders:[generic], requestDistributionChannels:[SITE], accountId:1847715185), bidders:[:]), responsetimemillis:[generic:0], tmaxrequest:2500, prebid:org.prebid.server.functional.model.response.auction.BidResponsePrebid(auctionTimeStamp:1748973743077)))
[org.prebid.server.functional.model.response.auction.SeatBid(bid:[org.prebid.server.functional.model.response.auction.Bid(id:10d546e4-58ed-4991-a440-8bb9da82177b, impid:f21cb42d-acc6-40df-bc31-78a0517a2585, price:2.27, crid:1, weight:300, height:250), org.prebid.server.functional.model.response.auction.Bid(id:4b84bed3-041e-4b53-8fd1-05d3036fa4d8, impid:9fc3b8d0-2e03-4ddf-94a3-adffed0edcec, price:1.861, crid:1, weight:300, height:250)], seat:generic)]

[INFO] 
[ERROR] Tests run: 4442, Failures: 1, Errors: 0, Skipped: 24

Copy link

github-actions bot commented Jun 3, 2025

@marki1an, could you please take a look at the functional test failures?
Functional Test Failures

[ERROR] Tests run: 4442, Failures: 1, Errors: 0, Skipped: 24

Show failed tests details
[ERROR] Failures: 
[ERROR]   BidAdjustmentSpec.PBS shouldn't adjust bid price for matching bidder when bidAdjustments have unknown mediatype:969 Condition failed with Exception:

response.seatbid.first.bid.first.price == originalPrice
|        |       |
|        []      java.util.NoSuchElementException
|                	at java.base/java.util.ArrayList.getFirst(ArrayList.java:439)
|                	at org.prebid.server.functional.tests.BidAdjustmentSpec.PBS shouldn't adjust bid price for matching bidder when bidAdjustments have unknown mediatype(BidAdjustmentSpec.groovy:969)
org.prebid.server.functional.model.response.auction.BidResponse(id:0be5c063-0f38-40f9-95bb-9a861b12ecf3, seatbid:[], cur:USD, nbr:org.prebid.server.functional.model.response.auction.NoBidResponse(nbr:0), ext:org.prebid.server.functional.model.response.auction.BidResponseExt(debug:org.prebid.server.functional.model.response.Debug(httpcalls:[generic:[org.prebid.server.functional.model.response.auction.BidderCall(uri:http://tc-cwEpYXWK:1080/auction, requestBody:{"id":"0be5c063-0f38-40f9-95bb-9a861b12ecf3","imp":[{"id":"48beb842-a0dc-4150-ae1e-548c78c2636a","banner":{"format":[{"w":300,"h":250}]},"secure":1,"ext":{"tid":"c960ca79-116e-47a7-a70e-0e9429ca9999","bidder":{}}}],"site":{"page":"i8gmetdIktsUEvNKTxhn","publisher":{"id":"1761065992"},"ext":{"amp":0}},"device":{"ua":"Apache-HttpClient/4.5.14 (Java/21.0.7)"},"at":1,"tmax":2467,"cur":["USD"],"source":{"tid":"7f632ac7-4df2-464e-a2de-3bd032bc5141"},"regs":{"gdpr":0},"ext":{"prebid":{"debug":1,"bidadjustments":{"mediatype":{"unknown":{"generic":{"*":[{"value":3.767,"adjtype":"static"}]}}},"version":620724493},"channel":{"name":"web"},"server":{"externalurl":"http://localhost:8080","datacenter":"local","endpoint":"/openrtb2/auction"}}}}, requestHeaders:[Accept:[application/json], x-prebid:[pbs-java/3.27.0], Content-Type:[application/json;charset=utf-8]], responseBody:{"id":"0be5c063-0f38-40f9-95bb-9a861b12ecf3","seatbid":[{"bid":[{"id":"2c0ed238-8494-4311-8eb3-1965a5916380","impid":"48beb842-a0dc-4150-ae1e-548c78c2636a","price":0.000,"crid":"1","w":300,"h":250}],"seat":"generic"}],"cur":"USD"}, status:200)]], resolvedRequest:org.prebid.server.functional.model.request.auction.BidRequest(id:0be5c063-0f38-40f9-95bb-9a861b12ecf3, imp:[org.prebid.server.functional.model.request.auction.Imp(id:48beb842-a0dc-4150-ae1e-548c78c2636a, banner:org.prebid.server.functional.model.request.auction.Banner(format:[org.prebid.server.functional.model.request.auction.Format(weight:300, height:250)]), secure:SECURE, ext:org.prebid.server.functional.model.request.auction.ImpExt(prebid:org.prebid.server.functional.model.request.auction.ImpExtPrebid(bidder:org.prebid.server.functional.model.request.auction.Bidder(generic:org.prebid.server.functional.model.bidder.Generic@23d3a475, configuredBidders:[generic])), tid:c960ca79-116e-47a7-a70e-0e9429ca9999), bidderName:generic, mediaTypes:[BANNER])], site:org.prebid.server.functional.model.request.auction.Site(page:i8gmetdIktsUEvNKTxhn, publisher:org.prebid.server.functional.model.request.auction.Publisher(id:1761065992), ext:org.prebid.server.functional.model.request.auction.SiteExt(amp:0)), device:org.prebid.server.functional.model.request.auction.Device(ua:Apache-HttpClient/4.5.14 (Java/21.0.7)), at:1, tmax:2500, cur:[USD], source:org.prebid.server.functional.model.request.auction.Source(tid:7f632ac7-4df2-464e-a2de-3bd032bc5141), regs:org.prebid.server.functional.model.request.auction.Regs(gdpr:0), ext:org.prebid.server.functional.model.request.auction.BidRequestExt(prebid:org.prebid.server.functional.model.request.auction.Prebid(debug:ENABLED, bidAdjustments:org.prebid.server.functional.model.request.auction.BidAdjustment(mediaType:[unknown:org.prebid.server.functional.model.request.auction.BidAdjustmentRule(generic:[*:[org.prebid.server.functional.model.request.auction.AdjustmentRule(adjustmentType:STATIC, value:3.767)]])], version:620724493), channel:org.prebid.server.functional.model.request.auction.Prebid$Channel@4cb06abe, server:org.prebid.server.functional.model.request.auction.Server(externalUrl:http://localhost:8080, datacenter:local, endpoint:/openrtb2/auction))), requestBidders:[generic], requestDistributionChannels:[SITE], accountId:1761065992), bidders:[generic:[org.prebid.server.functional.model.response.auction.BidderCall(uri:http://tc-cwEpYXWK:1080/auction, requestBody:{"id":"0be5c063-0f38-40f9-95bb-9a861b12ecf3","imp":[{"id":"48beb842-a0dc-4150-ae1e-548c78c2636a","banner":{"format":[{"w":300,"h":250}]},"secure":1,"ext":{"tid":"c960ca79-116e-47a7-a70e-0e9429ca9999","bidder":{}}}],"site":{"page":"i8gmetdIktsUEvNKTxhn","publisher":{"id":"1761065992"},"ext":{"amp":0}},"device":{"ua":"Apache-HttpClient/4.5.14 (Java/21.0.7)"},"at":1,"tmax":2467,"cur":["USD"],"source":{"tid":"7f632ac7-4df2-464e-a2de-3bd032bc5141"},"regs":{"gdpr":0},"ext":{"prebid":{"debug":1,"bidadjustments":{"mediatype":{"unknown":{"generic":{"*":[{"value":3.767,"adjtype":"static"}]}}},"version":620724493},"channel":{"name":"web"},"server":{"externalurl":"http://localhost:8080","datacenter":"local","endpoint":"/openrtb2/auction"}}}}, requestHeaders:[Accept:[application/json], x-prebid:[pbs-java/3.27.0], Content-Type:[application/json;charset=utf-8]], responseBody:{"id":"0be5c063-0f38-40f9-95bb-9a861b12ecf3","seatbid":[{"bid":[{"id":"2c0ed238-8494-4311-8eb3-1965a5916380","impid":"48beb842-a0dc-4150-ae1e-548c78c2636a","price":0.000,"crid":"1","w":300,"h":250}],"seat":"generic"}],"cur":"USD"}, status:200)]]), responsetimemillis:[generic:9], tmaxrequest:2500, prebid:org.prebid.server.functional.model.response.auction.BidResponsePrebid(auctionTimeStamp:1748980403719), warnings:[prebid:[org.prebid.server.functional.model.response.auction.WarningEntry(code:999, message:Dropped bid '2c0ed238-8494-4311-8eb3-1965a5916380'. Does not contain a positive (or zero if there is a deal) 'price')]]))

[INFO] 
[ERROR] Tests run: 4442, Failures: 1, Errors: 0, Skipped: 24

@muuki88
Copy link
Contributor

muuki88 commented Jun 5, 2025

Hi @osulzhenko

Thanks for the feedback 🙏 You are right, I was a little bit short on the why

Could you share what specific advantages you're seeing with the current setup that might outweigh these concerns?

From my experience it's often easier to build upon standards (junit test reports + a reporter) instead of glueing different tools together (sed, awk, action to comment on PRs, ... ) . The implementation currently works and I haven't nothing against bash scripts - however if the output of any of the test frameworks used just slightly changes, this integration will likely break.

Trying to re-use existing standards reduces that risk. I wouldn't feel confident maintaining this implementation. I would at least move the inline bash script into a separate bash script to make it easy to test locally.

Regarding your concerns

Annotation Limit: GitHub restricts check annotations to 50 per run. This means if there are more than 50 test failures, some won't be annotated, potentially hiding critical issues;

If you break more than 50 tests, I'm not sure how much more critical issues can be hidden 😅 The idea is that there are no failing tests before a PR is merged, right? 😁

Review Noise: The extensive annotations can clutter the PR, making it harder to focus on the actual code changes during reviews;

The currently solution is no different, right? There are just a lot of comments. And I do like the annotations, because it directly guides me to the issue.

image

What I do however find irritating is

  • duplicated annotations - this should not happen
  • do annotations resolve automatically, once the output disappears? This must be the case

Maintenance Overhead: Managing two reporting systems adds complexity. A single, concise comment summarizing test failures and notifying the author could streamline our workflow and reduce potential confusion.

I agree. What do you mean by maintaining two systems, though? Currently there are three bash scripts, which I would argue are three different systems, which are not configured, but actually implemented, making maintenance even higher.

If you mean the two links I posted - I would assume that one of the two is enough. Just don't know which one is better. https://github.com/marketplace/actions/test-reporter looks a little more comprehensive. The summaries also look pretty decent

provider error summary

@osulzhenko osulzhenko added the work in progress Signals not finished work label Jun 20, 2025
@osulzhenko
Copy link
Collaborator

We have three different types of test result reporting. To keep it DRY and clean, I believe we should finalize on one variant. Examples of each:

Bash:
#3904 (comment)

Mikepenz:
Mikepenz

Dorny:
https://github.com/prebid/prebid-server-java/actions/runs/16022921295

Personally, I prefer bash because it’s simple, clear, and self-explanatory. Mikepenz tends to create some noise, especially with PR comments. Dorny doesn’t have full support for java yet, but it provides a report with timing for each spec, which is quite helpful. Other alternative reporting tools I found aren’t very useful.

So, for me, it’s pretty simple: either bash or dorny, combined with a PR message linking to report showing failed tests. @marki1an @muuki88 @Net-burst What do you think?

Copy link

github-actions bot commented Jul 2, 2025

@marki1an, could you please take a look at the functional test failures?
Functional Test Failures

[ERROR] Tests run: 4792, Failures: 1, Errors: 0, Skipped: 24

Show failed tests details
[ERROR] Failures: 
[ERROR]   GppTransmitEidsActivitiesSpec.PBS amp call when privacy module contain invalid GPP string shouldn't remove EIDS fields in request and emit warning in response:2070 Condition failed with Exception:

response.ext.errors[PREBID].message == ["Amp request parameter consent_string has invalid format: $invalidGpp"]
|        |   |     ||
|        |   null  |prebid
|        |         java.lang.NullPointerException: Cannot invoke method getAt() on null object
|        |         	at org.prebid.server.functional.tests.privacy.GppTransmitEidsActivitiesSpec.PBS amp call when privacy module contain invalid GPP string shouldn't remove EIDS fields in request and emit warning in response(GppTransmitEidsActivitiesSpec.groovy:2070)
|        <org.prebid.server.functional.model.response.amp.AmpResponseExt@3f34c57b debug=org.prebid.server.functional.model.response.Debug(httpcalls:[generic:[org.prebid.server.functional.model.response.auction.BidderCall(uri:http://tc-v5bdfbaJ:1080/auction, requestBody:{"id":"90a123b8-9627-4563-9536-e3ece45e7a89","imp":[{"id":"e7673a3d-d938-4ce0-87e1-18d8b7761aa8","banner":{"format":[{"w":300,"h":250}]},"secure":1,"ext":{"tid":"bb127ccf-979d-4733-bcd8-a3c06ff22001","bidder":{}}}],"site":{"page":"zSebJp8hJEJQvAM7M71M","publisher":{"id":"640031915"},"ext":{"amp":1}},"device":{"geo":{"lat":47.387596,"lon":46.80799,"accuracy":1619819080,"ipservice":1897098757,"country":"USA","region":"ALABAMA","metro":"7wLNFXiskX0i9S86GQUz","city":"Fw74cXzox8WBpEliZ4FC","zip":"4TFW5NTI3TDRPGpoOwzQ","utcoffset":1444790992,"ext":{"geoprovider":{}}},"ua":"Apache-HttpClient/4.5.14 (Java/21.0.7)","ip":"43.77.114.227","ipv6":"af47:892b:3e98:b49a::","ifa":"Di5RL0Uxe6JMGBVLLIsV","didsha1":"QqYj3mbY8FAPXwfzxbqm","didmd5":"4UIi6s0Jk1GVqvyHI7Y4","dpidsha1":"0MdoCxjiXhhOIvOoh4Sg","dpidmd5":"oc1YwFvHNElfdrs67oh7","macsha1":"C7HU79ZjEy09umsDaw0y","macmd5":"FvOL4EPzannyMVZJSEN2"},"user":{"id":"yLDAX32NpC4hKuGYloRE","buyeruid":"mwRgw4VZ9TBJIOQJCLxa","yob":737947346,"gender":"VzXF2Y2PpU6FraZDQeE5","customdata":"hdAS0ffEH2OosSXP7JhN","geo":{"country":"USA","zip":"Y8aFOsNLZn5vS12sinO1"},"data":[{"name":"9vv3wYGal5AENMVAvXbs"}],"consent":"BRxgr28uAWS5lM5671zS","eids":[{"source":"3PGtx3N7zMk7EPYtL1qK","uids":[{"id":"V0VCQaWbbUOV18bftUIb","atype":1375309211}],"inserter":"rkjlOFh6GiEen9pzy5RT","matcher":"7QHDBQlwEH9gttMXhwSV","mm":780351238}],"ext":{"data":{"buyeruid":"VXkVXHvOwdCwO7BR7jyr"}}},"test":1,"at":1,"tmax":2465,"cur":["USD"],"source":{"tid":"4c6611e9-df41-43d0-95d5-19c37445caed"},"regs":{"gdpr":0,"gpp":"BRxgr28uAWS5lM5671zS","gpp_sid":[7]},"ext":{"prebid":{"debug":1,"trace":"verbose","targeting":{"pricegranularity":{"precision":2,"ranges":[{"max":20,"increment":0.1}]},"includewinners":true,"includebidderkeys":true},"storedrequest":{"id":"HEC3wQL4CxQ90biuHBJu"},"cache":{"bids":{},"vastxml":{}},"amp":{"data":{"account":"640031915","curl":"zSebJp8hJEJQvAM7M71M","consent_type":"4","consent_string":"BRxgr28uAWS5lM5671zS","debug":"1","gpp_sid":"7","tag_id":"HEC3wQL4CxQ90biuHBJu"}},"channel":{"name":"amp"},"server":{"externalurl":"http://localhost:8080","gvlid":13085,"datacenter":"local","endpoint":"/openrtb2/amp"}}}}, requestHeaders:[Accept:[application/json], x-prebid:[pbs-java/3.28.0], Content-Type:[application/json;charset=utf-8]], responseBody:{"id":"90a123b8-9627-4563-9536-e3ece45e7a89","seatbid":[{"bid":[{"id":"8179842b-5663-4f78-adb4-8124c4a3f629","impid":"e7673a3d-d938-4ce0-87e1-18d8b7761aa8","price":0.750,"crid":"1","w":300,"h":250}],"seat":"generic"}]}, status:200)], cache:[org.prebid.server.functional.model.response.auction.BidderCall(uri:http://tc-v5bdfbaJ:1080/cache, requestBody:{"puts":[{"type":"json","value":{"id":"8179842b-5663-4f78-adb4-8124c4a3f629","impid":"e7673a3d-d938-4ce0-87e1-18d8b7761aa8","price":0.75,"crid":"1","w":300,"h":250,"ext":{"prebid":{"type":"banner","meta":{"adaptercode":"generic"}},"origbidcpm":0.75}},"ttlseconds":300,"aid":"90a123b8-9627-4563-9536-e3ece45e7a89"}]}, requestHeaders:[Accept:[application/json], Content-Type:[application/json;charset=utf-8]], responseBody:{"responses":[{"uuid":"c5e77463-ba28-4a97-85b9-550fa9f9b527"}]}, status:200)]], resolvedRequest:org.prebid.server.functional.model.request.auction.BidRequest(id:90a123b8-9627-4563-9536-e3ece45e7a89, imp:[org.prebid.server.functional.model.request.auction.Imp(id:e7673a3d-d938-4ce0-87e1-18d8b7761aa8, banner:org.prebid.server.functional.model.request.auction.Banner(format:[org.prebid.server.functional.model.request.auction.Format(weight:300, height:250)]), secure:SECURE, ext:org.prebid.server.functional.model.request.auction.ImpExt(prebid:org.prebid.server.functional.model.request.auction.ImpExtPrebid(bidder:org.prebid.server.functional.model.request.auction.Bidder(generic:org.prebid.server.functional.model.bidder.Generic@23d3a475, configuredBidders:[generic])), tid:bb127ccf-979d-4733-bcd8-a3c06ff22001), bidderName:generic, mediaTypes:[BANNER])], site:org.prebid.server.functional.model.request.auction.Site(page:zSebJp8hJEJQvAM7M71M, publisher:org.prebid.server.functional.model.request.auction.Publisher(id:640031915), ext:org.prebid.server.functional.model.request.auction.SiteExt(amp:1)), device:org.prebid.server.functional.model.request.auction.Device(geo:org.prebid.server.functional.model.request.auction.Geo(lat:47.387596, lon:46.80799, accuracy:1619819080, ipservice:1897098757, country:USA, region:ALABAMA, metro:7wLNFXiskX0i9S86GQUz, city:Fw74cXzox8WBpEliZ4FC, zip:4TFW5NTI3TDRPGpoOwzQ, utcoffset:1444790992, ext:org.prebid.server.functional.model.request.auction.GeoExt(geoProvider:org.prebid.server.functional.model.request.auction.GeoExtGeoProvider())), ua:Apache-HttpClient/4.5.14 (Java/21.0.7), ip:43.77.114.227, ipv6:af47:892b:3e98:b49a::, ifa:Di5RL0Uxe6JMGBVLLIsV, didsha1:QqYj3mbY8FAPXwfzxbqm, didmd5:4UIi6s0Jk1GVqvyHI7Y4, dpidsha1:0MdoCxjiXhhOIvOoh4Sg, dpidmd5:oc1YwFvHNElfdrs67oh7, macsha1:C7HU79ZjEy09umsDaw0y, macmd5:FvOL4EPzannyMVZJSEN2), user:org.prebid.server.functional.model.request.auction.User(id:yLDAX32NpC4hKuGYloRE, buyeruid:mwRgw4VZ9TBJIOQJCLxa, yob:737947346, gender:VzXF2Y2PpU6FraZDQeE5, customdata:hdAS0ffEH2OosSXP7JhN, geo:org.prebid.server.functional.model.request.auction.Geo(country:USA, zip:Y8aFOsNLZn5vS12sinO1), data:[org.prebid.server.functional.model.request.auction.Data(name:9vv3wYGal5AENMVAvXbs)], consent:BRxgr28uAWS5lM5671zS, eids:[org.prebid.server.functional.model.request.auction.Eid(source:3PGtx3N7zMk7EPYtL1qK, uids:[org.prebid.server.functional.model.request.auction.Uid(id:V0VCQaWbbUOV18bftUIb, atype:1375309211)], inserter:rkjlOFh6GiEen9pzy5RT, matcher:7QHDBQlwEH9gttMXhwSV, matchMethod:780351238)], ext:org.prebid.server.functional.model.request.auction.UserExt(data:org.prebid.server.functional.model.request.auction.UserExtData(buyeruid:VXkVXHvOwdCwO7BR7jyr))), test:ENABLED, at:1, tmax:2500, cur:[USD], source:org.prebid.server.functional.model.request.auction.Source(tid:4c6611e9-df41-43d0-95d5-19c37445caed), regs:org.prebid.server.functional.model.request.auction.Regs(gdpr:0, gpp:BRxgr28uAWS5lM5671zS, gppSid:[7]), ext:org.prebid.server.functional.model.request.auction.BidRequestExt(prebid:org.prebid.server.functional.model.request.auction.Prebid(debug:ENABLED, targeting:org.prebid.server.functional.model.request.auction.Targeting(priceGranularity:org.prebid.server.functional.model.request.auction.PriceGranularity(precision:2, ranges:[org.prebid.server.functional.model.request.auction.Range(max:20, increment:0.1)]), includeWinners:true, includeBidderKeys:true), trace:VERBOSE, storedRequest:org.prebid.server.functional.model.request.auction.PrebidStoredRequest(id:HEC3wQL4CxQ90biuHBJu), cache:org.prebid.server.functional.model.request.auction.PrebidCache(bids:org.prebid.server.functional.model.request.auction.PrebidCacheSettings(), vastXml:org.prebid.server.functional.model.request.auction.PrebidCacheSettings()), amp:org.prebid.server.functional.model.request.auction.Amp(data:org.prebid.server.functional.model.request.amp.AmpRequest(tagId:HEC3wQL4CxQ90biuHBJu, debug:1, curl:zSebJp8hJEJQvAM7M71M, account:640031915, consentString:BRxgr28uAWS5lM5671zS, consentType:4, gppSid:7)), channel:org.prebid.server.functional.model.request.auction.Prebid$Channel@4df461db, server:org.prebid.server.functional.model.request.auction.Server(externalUrl:http://localhost:8080, gvlId:13085, datacenter:local, endpoint:/openrtb2/amp))), requestBidders:[generic], requestDistributionChannels:[SITE], accountId:640031915), bidders:[generic:[org.prebid.server.functional.model.response.auction.BidderCall(uri:http://tc-v5bdfbaJ:1080/auction, requestBody:{"id":"90a123b8-9627-4563-9536-e3ece45e7a89","imp":[{"id":"e7673a3d-d938-4ce0-87e1-18d8b7761aa8","banner":{"format":[{"w":300,"h":250}]},"secure":1,"ext":{"tid":"bb127ccf-979d-4733-bcd8-a3c06ff22001","bidder":{}}}],"site":{"page":"zSebJp8hJEJQvAM7M71M","publisher":{"id":"640031915"},"ext":{"amp":1}},"device":{"geo":{"lat":47.387596,"lon":46.80799,"accuracy":1619819080,"ipservice":1897098757,"country":"USA","region":"ALABAMA","metro":"7wLNFXiskX0i9S86GQUz","city":"Fw74cXzox8WBpEliZ4FC","zip":"4TFW5NTI3TDRPGpoOwzQ","utcoffset":1444790992,"ext":{"geoprovider":{}}},"ua":"Apache-HttpClient/4.5.14 (Java/21.0.7)","ip":"43.77.114.227","ipv6":"af47:892b:3e98:b49a::","ifa":"Di5RL0Uxe6JMGBVLLIsV","didsha1":"QqYj3mbY8FAPXwfzxbqm","didmd5":"4UIi6s0Jk1GVqvyHI7Y4","dpidsha1":"0MdoCxjiXhhOIvOoh4Sg","dpidmd5":"oc1YwFvHNElfdrs67oh7","macsha1":"C7HU79ZjEy09umsDaw0y","macmd5":"FvOL4EPzannyMVZJSEN2"},"user":{"id":"yLDAX32NpC4hKuGYloRE","buyeruid":"mwRgw4VZ9TBJIOQJCLxa","yob":737947346,"gender":"VzXF2Y2PpU6FraZDQeE5","customdata":"hdAS0ffEH2OosSXP7JhN","geo":{"country":"USA","zip":"Y8aFOsNLZn5vS12sinO1"},"data":[{"name":"9vv3wYGal5AENMVAvXbs"}],"consent":"BRxgr28uAWS5lM5671zS","eids":[{"source":"3PGtx3N7zMk7EPYtL1qK","uids":[{"id":"V0VCQaWbbUOV18bftUIb","atype":1375309211}],"inserter":"rkjlOFh6GiEen9pzy5RT","matcher":"7QHDBQlwEH9gttMXhwSV","mm":780351238}],"ext":{"data":{"buyeruid":"VXkVXHvOwdCwO7BR7jyr"}}},"test":1,"at":1,"tmax":2465,"cur":["USD"],"source":{"tid":"4c6611e9-df41-43d0-95d5-19c37445caed"},"regs":{"gdpr":0,"gpp":"BRxgr28uAWS5lM5671zS","gpp_sid":[7]},"ext":{"prebid":{"debug":1,"trace":"verbose","targeting":{"pricegranularity":{"precision":2,"ranges":[{"max":20,"increment":0.1}]},"includewinners":true,"includebidderkeys":true},"storedrequest":{"id":"HEC3wQL4CxQ90biuHBJu"},"cache":{"bids":{},"vastxml":{}},"amp":{"data":{"account":"640031915","curl":"zSebJp8hJEJQvAM7M71M","consent_type":"4","consent_string":"BRxgr28uAWS5lM5671zS","debug":"1","gpp_sid":"7","tag_id":"HEC3wQL4CxQ90biuHBJu"}},"channel":{"name":"amp"},"server":{"externalurl":"http://localhost:8080","gvlid":13085,"datacenter":"local","endpoint":"/openrtb2/amp"}}}}, requestHeaders:[Accept:[application/json], x-prebid:[pbs-java/3.28.0], Content-Type:[application/json;charset=utf-8]], responseBody:{"id":"90a123b8-9627-4563-9536-e3ece45e7a89","seatbid":[{"bid":[{"id":"8179842b-5663-4f78-adb4-8124c4a3f629","impid":"e7673a3d-d938-4ce0-87e1-18d8b7761aa8","price":0.750,"crid":"1","w":300,"h":250}],"seat":"generic"}]}, status:200)]]) errors=null warnings=[prebid:[org.prebid.server.functional.model.response.BidderError(code:999, message:GPP string invalid: Unable to decode 'BRxgr28uAWS5lM5671zS'), org.prebid.server.functional.model.response.BidderError(code:999, message:Parsing consent string:"BRxgr28uAWS5lM5671zS" failed. TCF version 1 is deprecated and treated as corrupted TCF version 2)]]>
org.prebid.server.functional.model.response.amp.AmpResponse(targeting:[hb_cache_host_generi:tc-v5bdfbaJ:1080, hb_env:amp, hb_cache_id_generic:c5e77463-ba28-4a97-85b9-550fa9f9b527, hb_cache_id:c5e77463-ba28-4a97-85b9-550fa9f9b527, hb_env_generic:amp, hb_pb:0.70, hb_bidder_generic:generic, hb_size_generic:300x250, hb_cache_path:/cache, hb_cache_path_generi:/cache, hb_size:300x250, hb_bidder:generic, hb_pb_generic:0.70, hb_cache_host:tc-v5bdfbaJ:1080], ext:org.prebid.server.functional.model.response.amp.AmpResponseExt@3f34c57b)

[INFO] 
[ERROR] Tests run: 4792, Failures: 1, Errors: 0, Skipped: 24

@marki1an
Copy link
Collaborator Author

marki1an commented Jul 3, 2025

We have three different types of test result reporting. To keep it DRY and clean, I believe we should finalize on one variant. Examples of each:

Bash: #3904 (comment)

Mikepenz: Mikepenz

Dorny: https://github.com/prebid/prebid-server-java/actions/runs/16022921295

Personally, I prefer bash because it’s simple, clear, and self-explanatory. Mikepenz tends to create some noise, especially with PR comments. Dorny doesn’t have full support for java yet, but it provides a report with timing for each spec, which is quite helpful. Other alternative reporting tools I found aren’t very useful.

So, for me, it’s pretty simple: either bash or dorny, combined with a PR message linking to report showing failed tests. @marki1an @muuki88 @Net-burst What do you think?

Yeah, I agree with you — Bash is much simpler and easier to extend with custom logic if needed. Additionally, it will post a message in the pull request, allowing you to see if anything went wrong.

@muuki88
Copy link
Contributor

muuki88 commented Jul 8, 2025

Personally, I prefer bash because it’s simple, clear, and self-explanatory
Yeah, I agree with you — Bash is much simpler and easier to extend with custom logic if needed

I wouldn't agree on this. In the end I just wanna see what's broken and use a standard format to display the results, like junit.. Fiddling with bash is the last thing I want to do 😅
However you folks work the most with this code base, so I'm fine with whatever you are happy with.

@osulzhenko osulzhenko self-requested a review July 18, 2025 07:36
@EmilNadimanov
Copy link
Contributor

EmilNadimanov commented Jul 29, 2025

I will also pop up here with an opinion :D
I mostly agree with Muki and would personally prefer using existing solutions in my own project, but i'm less skeptical about using bash. If the automated notifier works as intended without requiring constant tweaks and you see enough value in what it's doing different than let's say test-reporter, imho it's alright. As long as you don't change the test library (and disregarding possible edge cases), looking at the bash script I'd say it's improbable that it will spontaneously break on its own.

Also I'll put my own signature under that:

However you folks work the most with this code base, so I'm fine with whatever you are happy with.

@marki1an marki1an removed work in progress Signals not finished work blocked labels Sep 18, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
tests Functional or other tests
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants