forked from oracle/graal
-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[CI] Enhance comments in "managed" github issues #628
Merged
zakkak
merged 1 commit into
graalvm:default
from
zakkak:2023-12-05-better-comments-from-bot
Dec 8, 2023
Merged
[CI] Enhance comments in "managed" github issues #628
zakkak
merged 1 commit into
graalvm:default
from
zakkak:2023-12-05-better-comments-from-bot
Dec 8, 2023
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
oracle-contributor-agreement
bot
added
the
OCA Verified
All contributors have signed the Oracle Contributor Agreement.
label
Dec 5, 2023
zakkak
force-pushed
the
2023-12-05-better-comments-from-bot
branch
from
December 5, 2023 15:51
f496390
to
bed0247
Compare
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. To filter the logs for only related to the corresponding GitHub issue workflow jobs one can define a "Job Filter" in the GitHub issue's description. E.g.: Job Filter: Q main G 22 latest will only filter and report logs from jobs containing "Q main G 22 latest" in their name, e.g., "Q main G 22 latest / Q IT Misc2" The resulting comment in the GitHub issue will look like this: The build is still failing! Failed jobs: * [Q main G 22 latest / Q IT Data5](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353780171) * Step: Build with Maven Filtered logs: ``` 2023-12-06T02:34:24.6847074Z 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_20231206_023237.txt 2023-12-06T02:38:57.0457755Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:43:25.9882325Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:46:22.4042108Z [INFO] Quarkus - Integration Tests - JPA - PostgreSQL ..... FAILURE [03:57 min] 2023-12-06T02:46:22.4044859Z [INFO] Quarkus - Integration Tests - Hibernate Reactive - PostgreSQL FAILURE [01:03 min] 2023-12-06T02:46:22.4047360Z [INFO] Quarkus - Integration Tests - Reactive Pg Client ... FAILURE [ 52.547 s] ``` * [Q main G 22 latest / Q IT Data7](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353780524) * Step: Build with Maven Filtered logs: ``` 2023-12-06T02:35:15.1577013Z 2023-12-06 02:35:15,119 WARN [org.hib.eng.jdb.spi.SqlExceptionHelper] (vert.x-eventloop-thread-0) SQL Error: -204, SQLState: 42704 2023-12-06T02:35:15.1586877Z 2023-12-06 02:35:15,123 WARN [org.hib.eng.jdb.spi.SqlExceptionHelper] (vert.x-eventloop-thread-0) SQL Error: -204, SQLState: 42704 2023-12-06T02:48:07.0671437Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:49:46.2298413Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:49:46.2423648Z 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-06T02:49:46.2512671Z Caused by: java.lang.NoClassDefFoundError: Could not initialize class io.vertx.pgclient.impl.codec.DataTypeCodec 2023-12-06T02:49:46.2517627Z 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-06T03:00:59.9015846Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache FAILURE [01:27 min] 2023-12-06T03:00:59.9016990Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache and Kotlin FAILURE [01:39 min] ``` * [Q main G 22 latest / Q IT Security3](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353781553) * Step: Build with Maven Filtered logs: ``` 2023-12-06T02:48:26.4464579Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:55:45.1948764Z [INFO] Quarkus - Integration Tests - Security WebAuthn .... FAILURE [01:27 min] ``` * [Q main G 22 latest / Q IT Misc4](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353782619) * Step: Build with Maven Filtered logs: ``` 2023-12-06T03:23:28.2319284Z Error: Class initialization of com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl failed. Use the option 2023-12-06T03:23:28.3140196Z [INFO] Quarkus - Integration Tests - JAXP ................. FAILURE [ 18.185 s] ``` * [Q main G 22 latest / Q IT AWT, ImageIO and Java2D](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353783389) * Step: Build with Maven Filtered logs: ``` 2023-12-06T02:25:34.9321321Z Error: Error loading a referenced type: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method jdk.internal.loader.NativeLibrary.findEntry0(long, String) is reachable 2023-12-06T02:28:01.6411073Z [INFO] Quarkus - Integration Tests - AWT .................. FAILURE [01:27 min] ``` Link to latest CI run: https://github.com/graalvm/mandrel/actions/runs/7108970473
zakkak
force-pushed
the
2023-12-05-better-comments-from-bot
branch
from
December 6, 2023 23:36
bed0247
to
e69ec62
Compare
Merging this in order to test it over the weekend. |
zakkak
added a commit
to zakkak/mandrel
that referenced
this pull request
Dec 8, 2023
Unfortunately the simple first take in graalvm#628 didn't work since it looks like the GitHub API doesn't allow us to access the workflow runs while the workflow is still running. To work around this, this new approach introduces and runs a new "GitHub Issue Updater" workflow which runs after the "Nightly CI" and "Weekly CI" workflows. This comes with the following complication. The reporter is run once for all jobs in the matrix, so it needs to figure out which failure should be reported to which issue in which repository. For details about the implementation please see the following comment also available in the jbang script: // Unfortunately it's not possible to pass information from a triggering // workflow to the triggered workflow (in this case Nightly/Weekly CI to // the Github Issue Updater). As a result, to work around this, we parse // the logs of the jobs of the workflow that triggered this workflow, in // these logs we can find information like the inputs "issue-number", // "issue-repo" etc. But we still need to somehow group the jobs // corresponding to the detected issue-numbers. To do so, we first parse // the logs of the "Set distribution" job, which is the first job of each // configuration. This job contains the issue-number and issue-repo inputs // which we use to get the github issue and map it to the job name prefix // of jobs that are part of the same configuration. // // We then check the status of the jobs of the triggered workflow, and // if any of them failed, we check if the job name starts with one of the // job name prefixes we found earlier. If it does, we add it to the list // of failed jobs for the corresponding issue. // // Finally, we process the list of failed jobs for each issue, and if // the issue is still open, we add a comment with the list of failed jobs // and the filtered logs of the first failed job. // // Mandrel integration tests are treated specially, as they have a fixed // issue repository, we can directly get the issue number from the logs // of the job, and we don't need to group the jobs by issue number, since // the structure of the workflow is simpler. The resulting comment in the GitHub issue will look like this: The build is still failing! * [Q main M 22 latest / Q IT Data5](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697276) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:12:48.3045067Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:17:23.8202565Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:20:25.5812579Z [INFO] Quarkus - Integration Tests - JPA - PostgreSQL ..... FAILURE [04:01 min] 2023-12-06T02:20:25.5815363Z [INFO] Quarkus - Integration Tests - Hibernate Reactive - PostgreSQL FAILURE [01:09 min] 2023-12-06T02:20:25.5818516Z [INFO] Quarkus - Integration Tests - Reactive Pg Client ... FAILURE [ 58.794 s] ``` * [Q main M 22 latest / Q IT Data7](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697645) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:21:35.5488777Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:23:24.7112818Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:34:32.8654383Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache FAILURE [01:29 min] 2023-12-06T02:34:32.8655349Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache and Kotlin FAILURE [01:49 min] ``` * [Q main M 22 latest / Q IT Security3](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353698616) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:19:21.8703399Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:26:58.5434481Z [INFO] Quarkus - Integration Tests - Security WebAuthn .... FAILURE [01:36 min] ``` * [Q main M 22 latest / Q IT Misc2](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353699213) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:11:17.0198258Z Error: Class initialization of com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl failed. Use the option 2023-12-06T02:21:35.8962084Z [INFO] Quarkus - Integration Tests - Test Extension - Tests FAILURE [ 32.070 s] ``` * [Q main M 22 latest / Q IT AWT, ImageIO and Java2D](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353700284) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:05:32.5303045Z Error: Error loading a referenced type: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method jdk.internal.loader.NativeLibrary.findEntry0(long, String) is reachable 2023-12-06T02:07:51.7787718Z [INFO] Quarkus - Integration Tests - AWT .................. FAILURE [01:24 min] ``` Link to failing CI run: https://github.com/graalvm/mandrel/actions/runs/7108970473
zakkak
added a commit
to zakkak/mandrel
that referenced
this pull request
Dec 8, 2023
Unfortunately the simple first take in graalvm#628 didn't work since it looks like the GitHub API doesn't allow us to access the workflow runs while the workflow is still running. To work around this, this new approach introduces and runs a new "GitHub Issue Updater" workflow which runs after the "Nightly CI" and "Weekly CI" workflows. This comes with the following complication. The reporter is run once for all jobs in the matrix, so it needs to figure out which failure should be reported to which issue in which repository. For details about the implementation please see the following comment also available in the jbang script: // Unfortunately it's not possible to pass information from a triggering // workflow to the triggered workflow (in this case Nightly/Weekly CI to // the Github Issue Updater). As a result, to work around this, we parse // the logs of the jobs of the workflow that triggered this workflow, in // these logs we can find information like the inputs "issue-number", // "issue-repo" etc. But we still need to somehow group the jobs // corresponding to the detected issue-numbers. To do so, we first parse // the logs of the "Set distribution" job, which is the first job of each // configuration. This job contains the issue-number and issue-repo inputs // which we use to get the github issue and map it to the job name prefix // of jobs that are part of the same configuration. // // We then check the status of the jobs of the triggered workflow, and // if any of them failed, we check if the job name starts with one of the // job name prefixes we found earlier. If it does, we add it to the list // of failed jobs for the corresponding issue. // // Finally, we process the list of failed jobs for each issue, and if // the issue is still open, we add a comment with the list of failed jobs // and the filtered logs of the first failed job. // // Mandrel integration tests are treated specially, as they have a fixed // issue repository, we can directly get the issue number from the logs // of the job, and we don't need to group the jobs by issue number, since // the structure of the workflow is simpler. The resulting comment in the GitHub issue will look like this: The build is still failing! * [Q main M 22 latest / Q IT Data5](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697276) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:12:48.3045067Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:17:23.8202565Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:20:25.5812579Z [INFO] Quarkus - Integration Tests - JPA - PostgreSQL ..... FAILURE [04:01 min] 2023-12-06T02:20:25.5815363Z [INFO] Quarkus - Integration Tests - Hibernate Reactive - PostgreSQL FAILURE [01:09 min] 2023-12-06T02:20:25.5818516Z [INFO] Quarkus - Integration Tests - Reactive Pg Client ... FAILURE [ 58.794 s] ``` * [Q main M 22 latest / Q IT Data7](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697645) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:21:35.5488777Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:23:24.7112818Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:34:32.8654383Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache FAILURE [01:29 min] 2023-12-06T02:34:32.8655349Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache and Kotlin FAILURE [01:49 min] ``` * [Q main M 22 latest / Q IT Security3](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353698616) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:19:21.8703399Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:26:58.5434481Z [INFO] Quarkus - Integration Tests - Security WebAuthn .... FAILURE [01:36 min] ``` * [Q main M 22 latest / Q IT Misc2](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353699213) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:11:17.0198258Z Error: Class initialization of com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl failed. Use the option 2023-12-06T02:21:35.8962084Z [INFO] Quarkus - Integration Tests - Test Extension - Tests FAILURE [ 32.070 s] ``` * [Q main M 22 latest / Q IT AWT, ImageIO and Java2D](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353700284) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:05:32.5303045Z Error: Error loading a referenced type: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method jdk.internal.loader.NativeLibrary.findEntry0(long, String) is reachable 2023-12-06T02:07:51.7787718Z [INFO] Quarkus - Integration Tests - AWT .................. FAILURE [01:24 min] ``` Link to failing CI run: https://github.com/graalvm/mandrel/actions/runs/7108970473
zakkak
added a commit
to zakkak/mandrel
that referenced
this pull request
Dec 8, 2023
Unfortunately the simple first take in graalvm#628 didn't work since it looks like the GitHub API doesn't allow us to access the workflow runs while the workflow is still running. To work around this, this new approach introduces and runs a new "GitHub Issue Updater" workflow which runs after the "Nightly CI" and "Weekly CI" workflows. This comes with the following complication. The reporter is run once for all jobs in the matrix, so it needs to figure out which failure should be reported to which issue in which repository. For details about the implementation please see the following comment also available in the jbang script: // Unfortunately it's not possible to pass information from a triggering // workflow to the triggered workflow (in this case Nightly/Weekly CI to // the Github Issue Updater). As a result, to work around this, we parse // the logs of the jobs of the workflow that triggered this workflow, in // these logs we can find information like the inputs "issue-number", // "issue-repo" etc. But we still need to somehow group the jobs // corresponding to the detected issue-numbers. To do so, we first parse // the logs of the "Set distribution" job, which is the first job of each // configuration. This job contains the issue-number and issue-repo inputs // which we use to get the github issue and map it to the job name prefix // of jobs that are part of the same configuration. // // We then check the status of the jobs of the triggered workflow, and // if any of them failed, we check if the job name starts with one of the // job name prefixes we found earlier. If it does, we add it to the list // of failed jobs for the corresponding issue. // // Finally, we process the list of failed jobs for each issue, and if // the issue is still open, we add a comment with the list of failed jobs // and the filtered logs of the first failed job. // // Mandrel integration tests are treated specially, as they have a fixed // issue repository, we can directly get the issue number from the logs // of the job, and we don't need to group the jobs by issue number, since // the structure of the workflow is simpler. The resulting comment in the GitHub issue will look like this: The build is still failing! * [Q main M 22 latest / Q IT Data5](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697276) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:12:48.3045067Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:17:23.8202565Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:20:25.5812579Z [INFO] Quarkus - Integration Tests - JPA - PostgreSQL ..... FAILURE [04:01 min] 2023-12-06T02:20:25.5815363Z [INFO] Quarkus - Integration Tests - Hibernate Reactive - PostgreSQL FAILURE [01:09 min] 2023-12-06T02:20:25.5818516Z [INFO] Quarkus - Integration Tests - Reactive Pg Client ... FAILURE [ 58.794 s] ``` * [Q main M 22 latest / Q IT Data7](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697645) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:21:35.5488777Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:23:24.7112818Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:34:32.8654383Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache FAILURE [01:29 min] 2023-12-06T02:34:32.8655349Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache and Kotlin FAILURE [01:49 min] ``` * [Q main M 22 latest / Q IT Security3](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353698616) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:19:21.8703399Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:26:58.5434481Z [INFO] Quarkus - Integration Tests - Security WebAuthn .... FAILURE [01:36 min] ``` * [Q main M 22 latest / Q IT Misc2](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353699213) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:11:17.0198258Z Error: Class initialization of com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl failed. Use the option 2023-12-06T02:21:35.8962084Z [INFO] Quarkus - Integration Tests - Test Extension - Tests FAILURE [ 32.070 s] ``` * [Q main M 22 latest / Q IT AWT, ImageIO and Java2D](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353700284) * Step: Build with Maven Filtered Logs:\n``` 2023-12-06T02:05:32.5303045Z Error: Error loading a referenced type: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method jdk.internal.loader.NativeLibrary.findEntry0(long, String) is reachable 2023-12-06T02:07:51.7787718Z [INFO] Quarkus - Integration Tests - AWT .................. FAILURE [01:24 min] ``` Link to failing CI run: https://github.com/graalvm/mandrel/actions/runs/7108970473
zakkak
added a commit
to zakkak/mandrel
that referenced
this pull request
Dec 8, 2023
Unfortunately the simple first take in graalvm#628 didn't work since it looks like the GitHub API doesn't allow us to access the workflow runs while the workflow is still running. To work around this, this new approach introduces and runs a new "GitHub Issue Updater" workflow which runs after the "Nightly CI" and "Weekly CI" workflows. This comes with the following complication. The reporter is run once for all jobs in the matrix, so it needs to figure out which failure should be reported to which issue in which repository. For details about the implementation please see the following comment also available in the jbang script: // Unfortunately it's not possible to pass information from a triggering // workflow to the triggered workflow (in this case Nightly/Weekly CI to // the Github Issue Updater). As a result, to work around this, we parse // the logs of the jobs of the workflow that triggered this workflow, in // these logs we can find information like the inputs "issue-number", // "issue-repo" etc. But we still need to somehow group the jobs // corresponding to the detected issue-numbers. To do so, we first parse // the logs of the "Set distribution" job, which is the first job of each // configuration. This job contains the issue-number and issue-repo inputs // which we use to get the github issue and map it to the job name prefix // of jobs that are part of the same configuration. // // We then check the status of the jobs of the triggered workflow, and // if any of them failed, we check if the job name starts with one of the // job name prefixes we found earlier. If it does, we add it to the list // of failed jobs for the corresponding issue. // // Finally, we process the list of failed jobs for each issue, and if // the issue is still open, we add a comment with the list of failed jobs // and the filtered logs of the first failed job. // // Mandrel integration tests are treated specially, as they have a fixed // issue repository, we can directly get the issue number from the logs // of the job, and we don't need to group the jobs by issue number, since // the structure of the workflow is simpler. The resulting comment in the GitHub issue will look like this: The build is still failing! * [Q main M 22 latest / Q IT Data5](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697276) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:12:48.3045067Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:17:23.8202565Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:20:25.5812579Z [INFO] Quarkus - Integration Tests - JPA - PostgreSQL ..... FAILURE [04:01 min] 2023-12-06T02:20:25.5815363Z [INFO] Quarkus - Integration Tests - Hibernate Reactive - PostgreSQL FAILURE [01:09 min] 2023-12-06T02:20:25.5818516Z [INFO] Quarkus - Integration Tests - Reactive Pg Client ... FAILURE [ 58.794 s] ``` * [Q main M 22 latest / Q IT Data7](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697645) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:21:35.5488777Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:23:24.7112818Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:34:32.8654383Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache FAILURE [01:29 min] 2023-12-06T02:34:32.8655349Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache and Kotlin FAILURE [01:49 min] ``` * [Q main M 22 latest / Q IT Security3](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353698616) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:19:21.8703399Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:26:58.5434481Z [INFO] Quarkus - Integration Tests - Security WebAuthn .... FAILURE [01:36 min] ``` * [Q main M 22 latest / Q IT Misc2](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353699213) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:11:17.0198258Z Error: Class initialization of com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl failed. Use the option 2023-12-06T02:21:35.8962084Z [INFO] Quarkus - Integration Tests - Test Extension - Tests FAILURE [ 32.070 s] ``` * [Q main M 22 latest / Q IT AWT, ImageIO and Java2D](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353700284) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:05:32.5303045Z Error: Error loading a referenced type: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method jdk.internal.loader.NativeLibrary.findEntry0(long, String) is reachable 2023-12-06T02:07:51.7787718Z [INFO] Quarkus - Integration Tests - AWT .................. FAILURE [01:24 min] ``` Link to failing CI run: https://github.com/graalvm/mandrel/actions/runs/7108970473
zakkak
added a commit
to zakkak/mandrel
that referenced
this pull request
Dec 8, 2023
Unfortunately the simple first take in graalvm#628 didn't work since it looks like the GitHub API doesn't allow us to access the workflow runs while the workflow is still running. To work around this, this new approach introduces and runs a new "GitHub Issue Updater" workflow which runs after the "Nightly CI" and "Weekly CI" workflows. This comes with the following complication. The reporter is run once for all jobs in the matrix, so it needs to figure out which failure should be reported to which issue in which repository. For details about the implementation please see the following comment also available in the jbang script: // Unfortunately it's not possible to pass information from a triggering // workflow to the triggered workflow (in this case Nightly/Weekly CI to // the Github Issue Updater). As a result, to work around this, we parse // the logs of the jobs of the workflow that triggered this workflow, in // these logs we can find information like the inputs "issue-number", // "issue-repo" etc. But we still need to somehow group the jobs // corresponding to the detected issue-numbers. To do so, we first parse // the logs of the "Set distribution" job, which is the first job of each // configuration. This job contains the issue-number and issue-repo inputs // which we use to get the github issue and map it to the job name prefix // of jobs that are part of the same configuration. // // We then check the status of the jobs of the triggered workflow, and // if any of them failed, we check if the job name starts with one of the // job name prefixes we found earlier. If it does, we add it to the list // of failed jobs for the corresponding issue. // // Finally, we process the list of failed jobs for each issue, and if // the issue is still open, we add a comment with the list of failed jobs // and the filtered logs of the first failed job. // // Mandrel integration tests are treated specially, as they have a fixed // issue repository, we can directly get the issue number from the logs // of the job, and we don't need to group the jobs by issue number, since // the structure of the workflow is simpler. The resulting comment in the GitHub issue will look like this: The build is still failing! * [Q main M 22 latest / Q IT Data5](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697276) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:12:48.3045067Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:17:23.8202565Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:20:25.5812579Z [INFO] Quarkus - Integration Tests - JPA - PostgreSQL ..... FAILURE [04:01 min] 2023-12-06T02:20:25.5815363Z [INFO] Quarkus - Integration Tests - Hibernate Reactive - PostgreSQL FAILURE [01:09 min] 2023-12-06T02:20:25.5818516Z [INFO] Quarkus - Integration Tests - Reactive Pg Client ... FAILURE [ 58.794 s] ``` * [Q main M 22 latest / Q IT Data7](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697645) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:21:35.5488777Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:23:24.7112818Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:34:32.8654383Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache FAILURE [01:29 min] 2023-12-06T02:34:32.8655349Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache and Kotlin FAILURE [01:49 min] ``` * [Q main M 22 latest / Q IT Security3](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353698616) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:19:21.8703399Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:26:58.5434481Z [INFO] Quarkus - Integration Tests - Security WebAuthn .... FAILURE [01:36 min] ``` * [Q main M 22 latest / Q IT Misc2](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353699213) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:11:17.0198258Z Error: Class initialization of com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl failed. Use the option 2023-12-06T02:21:35.8962084Z [INFO] Quarkus - Integration Tests - Test Extension - Tests FAILURE [ 32.070 s] ``` * [Q main M 22 latest / Q IT AWT, ImageIO and Java2D](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353700284) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:05:32.5303045Z Error: Error loading a referenced type: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method jdk.internal.loader.NativeLibrary.findEntry0(long, String) is reachable 2023-12-06T02:07:51.7787718Z [INFO] Quarkus - Integration Tests - AWT .................. FAILURE [01:24 min] ``` Link to failing CI run: https://github.com/graalvm/mandrel/actions/runs/7108970473
zakkak
added a commit
to zakkak/mandrel
that referenced
this pull request
Dec 8, 2023
Unfortunately the simple first take in graalvm#628 didn't work since it looks like the GitHub API doesn't allow us to access the workflow runs while the workflow is still running. To work around this, this new approach introduces and runs a new "GitHub Issue Updater" workflow which runs after the "Nightly CI" and "Weekly CI" workflows. This comes with the following complication. The reporter is run once for all jobs in the matrix, so it needs to figure out which failure should be reported to which issue in which repository. For details about the implementation please see the following comment also available in the jbang script: // Unfortunately it's not possible to pass information from a triggering // workflow to the triggered workflow (in this case Nightly/Weekly CI to // the Github Issue Updater). As a result, to work around this, we parse // the logs of the jobs of the workflow that triggered this workflow, in // these logs we can find information like the inputs "issue-number", // "issue-repo" etc. But we still need to somehow group the jobs // corresponding to the detected issue-numbers. To do so, we first parse // the logs of the "Set distribution" job, which is the first job of each // configuration. This job contains the issue-number and issue-repo inputs // which we use to get the github issue and map it to the job name prefix // of jobs that are part of the same configuration. // // We then check the status of the jobs of the triggered workflow, and // if any of them failed, we check if the job name starts with one of the // job name prefixes we found earlier. If it does, we add it to the list // of failed jobs for the corresponding issue. // // Finally, we process the list of failed jobs for each issue, and if // the issue is still open, we add a comment with the list of failed jobs // and the filtered logs of the first failed job. // // Mandrel integration tests are treated specially, as they have a fixed // issue repository, we can directly get the issue number from the logs // of the job, and we don't need to group the jobs by issue number, since // the structure of the workflow is simpler. The resulting comment in the GitHub issue will look like this: The build is still failing! * [Q main M 22 latest / Q IT Data5](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697276) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:12:48.3045067Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:17:23.8202565Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:20:25.5812579Z [INFO] Quarkus - Integration Tests - JPA - PostgreSQL ..... FAILURE [04:01 min] 2023-12-06T02:20:25.5815363Z [INFO] Quarkus - Integration Tests - Hibernate Reactive - PostgreSQL FAILURE [01:09 min] 2023-12-06T02:20:25.5818516Z [INFO] Quarkus - Integration Tests - Reactive Pg Client ... FAILURE [ 58.794 s] ``` * [Q main M 22 latest / Q IT Data7](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697645) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:21:35.5488777Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:23:24.7112818Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:34:32.8654383Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache FAILURE [01:29 min] 2023-12-06T02:34:32.8655349Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache and Kotlin FAILURE [01:49 min] ``` * [Q main M 22 latest / Q IT Security3](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353698616) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:19:21.8703399Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:26:58.5434481Z [INFO] Quarkus - Integration Tests - Security WebAuthn .... FAILURE [01:36 min] ``` * [Q main M 22 latest / Q IT Misc2](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353699213) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:11:17.0198258Z Error: Class initialization of com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl failed. Use the option 2023-12-06T02:21:35.8962084Z [INFO] Quarkus - Integration Tests - Test Extension - Tests FAILURE [ 32.070 s] ``` * [Q main M 22 latest / Q IT AWT, ImageIO and Java2D](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353700284) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:05:32.5303045Z Error: Error loading a referenced type: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method jdk.internal.loader.NativeLibrary.findEntry0(long, String) is reachable 2023-12-06T02:07:51.7787718Z [INFO] Quarkus - Integration Tests - AWT .................. FAILURE [01:24 min] ``` Link to failing CI run: https://github.com/graalvm/mandrel/actions/runs/7108970473
zakkak
added a commit
that referenced
this pull request
Dec 8, 2023
Unfortunately the simple first take in #628 didn't work since it looks like the GitHub API doesn't allow us to access the workflow runs while the workflow is still running. To work around this, this new approach introduces and runs a new "GitHub Issue Updater" workflow which runs after the "Nightly CI" and "Weekly CI" workflows. This comes with the following complication. The reporter is run once for all jobs in the matrix, so it needs to figure out which failure should be reported to which issue in which repository. For details about the implementation please see the following comment also available in the jbang script: // Unfortunately it's not possible to pass information from a triggering // workflow to the triggered workflow (in this case Nightly/Weekly CI to // the Github Issue Updater). As a result, to work around this, we parse // the logs of the jobs of the workflow that triggered this workflow, in // these logs we can find information like the inputs "issue-number", // "issue-repo" etc. But we still need to somehow group the jobs // corresponding to the detected issue-numbers. To do so, we first parse // the logs of the "Set distribution" job, which is the first job of each // configuration. This job contains the issue-number and issue-repo inputs // which we use to get the github issue and map it to the job name prefix // of jobs that are part of the same configuration. // // We then check the status of the jobs of the triggered workflow, and // if any of them failed, we check if the job name starts with one of the // job name prefixes we found earlier. If it does, we add it to the list // of failed jobs for the corresponding issue. // // Finally, we process the list of failed jobs for each issue, and if // the issue is still open, we add a comment with the list of failed jobs // and the filtered logs of the first failed job. // // Mandrel integration tests are treated specially, as they have a fixed // issue repository, we can directly get the issue number from the logs // of the job, and we don't need to group the jobs by issue number, since // the structure of the workflow is simpler. The resulting comment in the GitHub issue will look like this: The build is still failing! * [Q main M 22 latest / Q IT Data5](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697276) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:12:48.3045067Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:17:23.8202565Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:20:25.5812579Z [INFO] Quarkus - Integration Tests - JPA - PostgreSQL ..... FAILURE [04:01 min] 2023-12-06T02:20:25.5815363Z [INFO] Quarkus - Integration Tests - Hibernate Reactive - PostgreSQL FAILURE [01:09 min] 2023-12-06T02:20:25.5818516Z [INFO] Quarkus - Integration Tests - Reactive Pg Client ... FAILURE [ 58.794 s] ``` * [Q main M 22 latest / Q IT Data7](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353697645) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:21:35.5488777Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:23:24.7112818Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:34:32.8654383Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache FAILURE [01:29 min] 2023-12-06T02:34:32.8655349Z [INFO] Quarkus - Integration Tests - Hibernate Reactive with Panache and Kotlin FAILURE [01:49 min] ``` * [Q main M 22 latest / Q IT Security3](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353698616) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:19:21.8703399Z Error: Class initialization of io.vertx.pgclient.impl.codec.DataTypeCodec failed. Use the option 2023-12-06T02:26:58.5434481Z [INFO] Quarkus - Integration Tests - Security WebAuthn .... FAILURE [01:36 min] ``` * [Q main M 22 latest / Q IT Misc2](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353699213) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:11:17.0198258Z Error: Class initialization of com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl failed. Use the option 2023-12-06T02:21:35.8962084Z [INFO] Quarkus - Integration Tests - Test Extension - Tests FAILURE [ 32.070 s] ``` * [Q main M 22 latest / Q IT AWT, ImageIO and Java2D](https://github.com/graalvm/mandrel/actions/runs/7108970473/job/19353700284) * Step: Build with Maven Filtered Logs: ``` 2023-12-06T02:05:32.5303045Z Error: Error loading a referenced type: com.oracle.svm.hosted.substitute.DeletedElementException: Unsupported method jdk.internal.loader.NativeLibrary.findEntry0(long, String) is reachable 2023-12-06T02:07:51.7787718Z [INFO] Quarkus - Integration Tests - AWT .................. FAILURE [01:24 min] ``` Link to failing CI run: https://github.com/graalvm/mandrel/actions/runs/7108970473
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
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. To filter the logs
for only related to the corresponding GitHub issue workflow jobs one can
define a "Job Filter" in the GitHub issue's description. E.g.:
will only filter and report logs from jobs containing
"Q main G 22 latest" in their name, e.g.,
"Q main G 22 latest / Q IT Misc2"
The resulting comment in the GitHub issue will look like this: