-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
[KIE-684] GHA Windows failure in drools #5583
Conversation
@@ -43,6 +43,7 @@ jobs: | |||
uses: apache/incubator-kie-kogito-pipelines/.ci/actions/build-chain@main | |||
env: | |||
BUILD_MVN_OPTS_CURRENT: -Dfull | |||
MAVEN_OPTS: "-Dfile.encoding=UTF-8" |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Somehow I experimented back-and-forth, but finally, this simply solved the issue 😄
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Great finding, thank you!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
+1, but it would be good to have that in maven project pom.xml file as configuration property as anything wrt what is given to build cmd can be lost for other environments or users IMHO
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I tried <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
in pom.xml, but it didn't solve the issue. Per my understanding, this issue arises when the non-UTF-8 Windows writes a UTF-8 name class file. It's not solved by a project configuration property, but MAVEN_OPTS
affects the entire mvn process, so the issue is solved. Probably another solution is to make MAVEN_OPTS="-Dfile.encoding=UTF-8"
as build-chain
's default. Filed a KIE issue apache/incubator-kie-issues#721
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe the thing is about test and build of related maven plugin, as pointed somewhere on SO, the compiler plugin is not the only place to specify the encoding. While -Dfile.encoding
is the config for environment property it is better to add that to that plugin for tests? is it Surefire or other one? like https://stackoverflow.com/questions/17656475/maven-source-encoding-in-utf-8-not-working or something similar in case of other maven plugin used in this case?
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-surefire-plugin</artifactId>
<configuration>
<argLine>-Dfile.encoding=UTF-8</argLine>
</configuration>
</plugin>
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mareknovotny Thanks for the suggestion. Actually, the issue raised in maven-compiler-plugin.
2023-11-27T03:01:52.3028049Z [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:testCompile (default-testCompile) on project drools-decisiontables: Error while storing the mojo status: Input length = 1 -> [Help 1]
2023-11-27T03:01:52.3030138Z org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.11.0:testCompile (default-testCompile) on project drools-decisiontables: Error while storing the mojo status
But your suggestion inspires me to re-check maven-compiler-plugin configuration and I found that it wasn't configured in <pluginManagement>
. So I added <encoding>UTF-8</encoding>
and confirmed that the issue is resolved even without the MAVEN_OPTS
fix.
https://github.com/apache/incubator-kie-drools/pull/5590/files#diff-150bdf617c2dc80dc5a9d5f1313f44a73950a96ca7b166b79a35b15f4c84f193R1327-R1333
I think both are good to have, so proceeding the PR.
Thanks!
(Btw, maven-surefire-plugin is already configured with UTF-8)
@mariofusco Please merge this PR, thanks! |
Closes apache/incubator-kie-issues#684
How to replicate CI configuration locally?
Build Chain tool does "simple" maven build(s), the builds are just Maven commands, but because the repositories relates and depends on each other and any change in API or class method could affect several of those repositories there is a need to use build-chain tool to handle cross repository builds and be sure that we always use latest version of the code for each repository.
build-chain tool is a build tool which can be used on command line locally or in Github Actions workflow(s), in case you need to change multiple repositories and send multiple dependent pull requests related with a change you can easily reproduce the same build by executing it on Github hosted environment or locally in your development environment. See local execution details to get more information about it.
How to retest this PR or trigger a specific build:
for pull request checks
Please add comment: Jenkins retest this
for a specific pull request check
Please add comment: Jenkins (re)run [drools|kogito-runtimes|kogito-apps|kogito-examples] tests
for a full downstream build
run_fdb
a compile downstream build please add comment: Jenkins run cdb
an upstream build please add comment: Jenkins run upstream
for quarkus branch checks
Run checks against Quarkus current used branch
Please add comment: Jenkins run quarkus-branch
for a quarkus branch specific check
Run checks against Quarkus current used branch
Please add comment: Jenkins (re)run [drools|kogito-runtimes|kogito-apps|kogito-examples] quarkus-branch
for quarkus main checks
Run checks against Quarkus main branch
Please add comment: Jenkins run quarkus-main
for a specific quarkus main check
Run checks against Quarkus main branch
Please add comment: Jenkins (re)run [drools|kogito-runtimes|kogito-apps|kogito-examples] quarkus-main
for quarkus lts checks
Run checks against Quarkus lts branch
Please add comment: Jenkins run quarkus-lts
for a specific quarkus lts check
Run checks against Quarkus lts branch
Please add comment: Jenkins (re)run [drools|kogito-runtimes|kogito-apps|kogito-examples] quarkus-lts
for native checks
Run native checks
Please add comment: Jenkins run native
for a specific native check
Run native checks
Please add comment: Jenkins (re)run [drools|kogito-runtimes|kogito-apps|kogito-examples] native
for native lts checks
Run native checks against quarkus lts branch
Please add comment: Jenkins run native-lts
for a specific native lts check
Run native checks against quarkus lts branch
Please add comment: Jenkins (re)run [drools|kogito-runtimes|kogito-apps|kogito-examples] native-lts
How to backport a pull request to a different branch?
In order to automatically create a backporting pull request please add one or more labels having the following format
backport-<branch-name>
, where<branch-name>
is the name of the branch where the pull request must be backported to (e.g.,backport-7.67.x
to backport the original PR to the7.67.x
branch).Once the original pull request is successfully merged, the automated action will create one backporting pull request per each label (with the previous format) that has been added.
If something goes wrong, the author will be notified and at this point a manual backporting is needed.