Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
[CI] Enhance comments in "managed" github issues
Till now the CI would automatically open and close issues based on the CI results, providing just a link to the failing or successful run. This PR aims to add a bit more context by showing what jobs failed, in which step, and some filtered output from the logs. One issue with the current implementation is that unfortunately it can't understand the context of the target issue and filter the output to only include the related failures, i.e., it will show windows failures in a Linux GH issue. E.g. a comment could look like this (including errors from Mandrel and GraalVM CE tests on Linux, as well as for Mandrel tests on Windows): Unfortunately, the build failed! Failed jobs: * [Q main M 22 latest / Mandrel build](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311135271) * Step: Build Mandrel Filtered logs: ``` 2023-12-05T01:37:18.4358001Z Error: Substitution target for com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicLongFieldUpdater_LockedUpdater is not loaded. Use field `onlyWith` in the `TargetClass` annotation to make substitution only active when needed. ``` * [Q main M 22 latest / Upload build stats to collector (Main, 45, main, ubuntu-latest)](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311181753) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Data1, 95, jpa-h2, jpa-h2-embedded, jpa-mariadb, jpa-mssql, jpa-...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311181901) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Data2, 70, jpa, jpa-mapping-xml/legacy-app, jpa-mapping-xml/mode...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311182074) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Data3, 75, flyway, hibernate-orm-panache, hibernate-orm-panache-...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311182201) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Data4, 60, mongodb-client, mongodb-devservices, mongodb-panache,...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311182334) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Data5, 70, jpa-postgresql, jpa-postgresql-withxml, narayana-stm,...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311182493) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Data6, 95, elasticsearch-rest-client, elasticsearch-java-client,...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311182610) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Data7, 85, reactive-oracle-client, reactive-mysql-client, reacti...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311182854) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Amazon, 50, amazon-lambda, amazon-lambda-http, ubuntu-latest)](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311183020) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Messaging1, 115, kafka, kafka-ssl, kafka-sasl, kafka-avro-apicur...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311183192) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Messaging2, 80, reactive-messaging-amqp, reactive-messaging-rabb...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311183338) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Security1, 65, elytron-security-oauth2, elytron-security, elytro...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311183479) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Security2, 75, oidc, oidc-code-flow, oidc-tenancy, oidc-client, ...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311183610) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Security3, 55, keycloak-authorization, smallrye-jwt-token-propag...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311183713) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Cache, 65, infinispan-cache-jpa, infinispan-client, cache, redis...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311183829) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (HTTP, 110, elytron-resteasy, resteasy-jackson, elytron-resteasy-...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311183961) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Misc1, 70, maven, jackson, jsonb, kotlin-serialization, rest-cli...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311184102) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Misc2, 70, hibernate-validator, test-extension/tests, logging-ge...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311184211) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Misc3, 80, kubernetes-client, openshift-client, kubernetes-servi...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311184354) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Misc4, 125, picocli-native, gradle, micrometer-mp-metrics, micro...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311184536) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Spring, 60, spring-di, spring-web, spring-data-jpa, spring-boot-...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311184707) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (gRPC, 70, grpc-health, grpc-interceptors, grpc-mutual-auth, grpc...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311184852) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (Windows - RESTEasy Jackson, 25, resteasy-jackson, windows-latest)](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311184988) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (DevTools Integration Tests, 75, devtools-registry-client, ubuntu...](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311185131) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest / Upload build stats to collector (AWT, ImageIO and Java2D, 30, awt, no-awt, ubuntu-latest)](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311185263) * Step: Run actions/download-artifact@v3 * [Q main M 22 latest windows / Q Mandrel IT](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311639748) * Step: Build with Maven Filtered logs: ``` 2023-12-05T02:04:07.9526433Z Error: Substitution target for com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicLongFieldUpdater_LockedUpdater is not loaded. Use field `onlyWith` in the `TargetClass` annotation to make substitution only active when needed. 2023-12-05T02:04:19.0037391Z Error: Substitution target for com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicLongFieldUpdater_LockedUpdater is not loaded. Use field `onlyWith` in the `TargetClass` annotation to make substitution only active when needed. 2023-12-05T02:04:30.8776112Z Error: Substitution target for com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicLongFieldUpdater_LockedUpdater is not loaded. Use field `onlyWith` in the `TargetClass` annotation to make substitution only active when needed. 2023-12-05T02:04:39.1317968Z Error: Substitution target for com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicLongFieldUpdater_LockedUpdater is not loaded. Use field `onlyWith` in the `TargetClass` annotation to make substitution only active when needed. 2023-12-05T02:04:48.2415608Z Error: Substitution target for com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicLongFieldUpdater_LockedUpdater is not loaded. Use field `onlyWith` in the `TargetClass` annotation to make substitution only active when needed. 2023-12-05T02:04:59.3974402Z Error: Substitution target for com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicLongFieldUpdater_LockedUpdater is not loaded. Use field `onlyWith` in the `TargetClass` annotation to make substitution only active when needed. 2023-12-05T02:05:00.6368635Z org.opentest4j.AssertionFailedError: Expected pattern .*Year: (?:1|1086), dayOfYear: 1, type: (?:japanese|buddhist|gregory).* was not found in the log. ==> expected: <true> but was: <false> 2023-12-05T02:05:00.6384215Z org.opentest4j.AssertionFailedError: There were two same hashes b6951775b0375ea13fc977581e54eb36d483e95ed3bc1e62fcb8da59830f1ef9 expected in the log. One from JVM run and one for Native image run. 1 such hashes were found. Check build-and-run.log and report.md. ==> expected: <2> but was: <1> 2023-12-05T02:05:00.6403643Z org.opentest4j.AssertionFailedError: 2023-12-05T02:05:00.6416527Z org.opentest4j.AssertionFailedError: Expected pattern .*heure normale.*Europe centrale.* was not found in the log. There might be a problem with timezones inclusion. See oracle#2776 ==> expected: <true> but was: <false> 2023-12-05T02:05:00.6424970Z org.opentest4j.AssertionFailedError: There should have been 4 distinct lines in the log,showing 2 different pseudorandom sequences. The fact that there are less than 4 means the native imagewas not properly re-seeded. See oracle#2265. ==> expected: <4> but was: <0> 2023-12-05T02:05:00.6432442Z org.opentest4j.AssertionFailedError: Expected pattern .*RCA annotation: @recordannotations\.RCA.* was not found in the log. ==> expected: <true> but was: <false> 2023-12-05T02:05:35.1246864Z org.opentest4j.AssertionFailedError: Timeout 10s was reached. Empty webpage does not contain string: `"UP"' ==> expected: <true> but was: <false> 2023-12-05T02:05:35.6443295Z [INFO] testsuite .......................................... FAILURE [01:55 min] ``` * [Q main M 22 latest windows / Q IT Windows - RESTEasy Jackson](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311643583) * Step: Build with Maven Filtered logs: ``` 2023-12-05T02:05:42.9202244Z Error: Substitution target for com.oracle.svm.core.jdk.Target_java_util_concurrent_atomic_AtomicLongFieldUpdater_LockedUpdater is not loaded. Use field `onlyWith` in the `TargetClass` annotation to make substitution only active when needed. ``` * [Q main G 22 latest / Q IT Data5](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311888644) * Step: Build with Maven Filtered logs: ``` 2023-12-05T02:22:50.8005361Z org.opentest4j.AssertionFailedError: Type 'com.sun.org.apache.xalan.internal.xsltc.trax.TransformerFactoryImpl' was found in the report in target/quarkus-integration-test-jpa-postgresql-999-SNAPSHOT-native-image-source-jar/reports/used_classes_quarkus-integration-test-jpa-postgresql-999-SNAPSHOT-runner_20231205_022100.txt 2023-12-05T02:27:39.1864926Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-05T02:32:24.7385981Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-05T02:35:24.8164480Z [INFO] Quarkus - Integration Tests - JPA - PostgreSQL ..... FAILURE [04:10 min] 2023-12-05T02:35:24.8167544Z [INFO] Quarkus - Integration Tests - Hibernate Reactive - PostgreSQL FAILURE [01:13 min] 2023-12-05T02:35:24.8170118Z [INFO] Quarkus - Integration Tests - Reactive Pg Client ... FAILURE [01:03 min] ``` * [Q main G 22 latest / Q IT Data7](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311889206) * Step: Build with Maven Filtered logs: ``` 2023-12-05T02:20:54.7927208Z 2023-12-05 02:20:54,779 WARN [org.hib.eng.jdb.spi.SqlExceptionHelper] (vert.x-eventloop-thread-0) SQL Error: -204, SQLState: 42704 2023-12-05T02:20:54.7938249Z 2023-12-05 02:20:54,786 WARN [org.hib.eng.jdb.spi.SqlExceptionHelper] (vert.x-eventloop-thread-0) SQL Error: -204, SQLState: 42704 2023-12-05T02:33:48.3936668Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-05T02:33:48.4132920Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. This error is reported at image build time because class io.vertx.pgclient.impl.codec.DataTypeCodec is registered for linking at image build time by command line and command line. Use the option 2023-12-05T02:33:48.4282897Z Caused by: java.lang.NoClassDefFoundError: Could not initialize class io.vertx.pgclient.impl.codec.DataTypeCodec 2023-12-05T02:33:48.4291296Z Caused by: java.lang.ExceptionInInitializerError: Exception java.time.format.DateTimeParseException: Text '4714-11-24 00:00:00 BC' could not be parsed at index 20 [in thread "ForkJoinPool.commonPool-worker-2"] 2023-12-05T02:35:05.9966697Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-05T02:46:18.1004158Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache FAILURE [01:30 min] 2023-12-05T02:46:18.1005685Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache and Kotlin FAILURE [01:17 min] ``` * [Q main G 22 latest / Q IT Security3](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311890213) * Step: Build with Maven Filtered logs: ``` 2023-12-05T02:24:28.4283742Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-05T02:24:28.4472488Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. This error is reported at image build time because class io.vertx.pgclient.impl.codec.DataTypeCodec is registered for linking at image build time by command line and command line. Use the option 2023-12-05T02:24:28.4578060Z Caused by: java.lang.NoClassDefFoundError: Could not initialize class io.vertx.pgclient.impl.codec.DataTypeCodec 2023-12-05T02:24:28.4586716Z Caused by: java.lang.ExceptionInInitializerError: Exception java.time.format.DateTimeParseException: Text '4714-11-24 00:00:00 BC' could not be parsed at index 20 [in thread "main"] 2023-12-05T02:31:54.1396670Z [INFO] Quarkus - Integration Tests - Security WebAuthn .... FAILURE [01:32 min] ``` * [Q main G 22 latest / Q IT AWT, ImageIO and Java2D](https://api.github.com/repos/graalvm/mandrel/actions/jobs/19311892278) * Step: Build with Maven Filtered logs: ``` 2023-12-05T02:16:37.6781015Z Fatal error: com.oracle.graal.pointsto.util.AnalysisError$ParsingError: Error encountered while parsing jdk.internal.loader.RawNativeLibraries$RawNativeLibraryImpl.find(RawNativeLibraries.java:170) 2023-12-05T02:16:37.6905849Z Caused by: jdk.graal.compiler.java.BytecodeParser$BytecodeParserError: java.lang.InternalError: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Error loading a referenced type: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method jdk.internal.loader.NativeLibrary.findEntry0(long, String) is reachable 2023-12-05T02:16:37.6936972Z Caused by: java.lang.InternalError: com.oracle.graal.pointsto.constraints.UnresolvedElementException: Error loading a referenced type: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method jdk.internal.loader.NativeLibrary.findEntry0(long, String) is reachable 2023-12-05T02:19:02.2312873Z [INFO] Quarkus - Integration Tests - AWT .................. FAILURE [01:03 min] ``` Link to latest CI run: https://github.com/graalvm/mandrel/actions/runs/7094964042, the issue has been re-opened
- Loading branch information