Conversation
This comment has been minimized.
This comment has been minimized.
|
Thanks! I gonna take a look. |
|
@jbonofre can you also take a look at this one? |
|
@kou since you took a look at my last 2 CI changes, can you also take a look at this one? |
| path: java-build.tgz | ||
| retention-days: 1 | ||
| - name: Exclude reactor artifacts from Maven dependency cache | ||
| run: rm -rf .docker/maven-cache/repository/org/apache/arrow |
There was a problem hiding this comment.
Why do we need to remove them? We can't use them to avoid rebuilding Arrow Java, right?
There was a problem hiding this comment.
It is removed so the cache doesn’t carry old Arrow binaries into future runs. The binaries are already in the build artifacts used by every test job
| - arch: AArch64 | ||
| jdk: 17 | ||
| macos: latest |
There was a problem hiding this comment.
It seems that we need os: macos-XXX here.
There was a problem hiding this comment.
not sure I understood. Isn't that what was done here?
| - name: Cache Docker Volumes | ||
| if: ${{ matrix.compose_service }} | ||
| uses: actions/cache@v6 | ||
| with: | ||
| path: .docker/maven-cache | ||
| key: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}-${{ hashFiles('compose.yaml', '**/pom.xml') }} | ||
| restore-keys: java-build-${{ env.BUILD_JDK }}-${{ env.MAVEN }}- |
There was a problem hiding this comment.
Why doe we need this?
download-artifact isn't enough?
There was a problem hiding this comment.
this avoids downloading external dependencies again in each job. download-artifacts only contains the compiled Arrow output and installed org/apache/arrow artifacts
18a8b8a to
5309167
Compare
| contents: read | ||
|
|
||
| env: | ||
| BUILD_JDK: "17" |
There was a problem hiding this comment.
Building once with JDK 17 means Spotless and Error Prone no longer run in this workflow: both profiles in the root pom.xml are activated with <jdk>[21,)</jdk>. On main the JDK 21 and 25 jobs run build.sh with those JDKs, so formatting and Error Prone violations fail the PR. With this change they would pass.
It also means nothing compiles the sources with JDK 21 or 25 any more: the jdk: [17, 21, 25] matrix only runs classes compiled by 17, so a change that breaks under a newer javac would go unnoticed.
Could you add a compile-only job (no tests) on JDK 25, or on 21 and 25? That brings both checks back and should only cost a few minutes of the time saved.
| DEVELOCITY_ACCESS_KEY: ${{ secrets.DEVELOCITY_ACCESS_KEY }} | ||
| run: ci/scripts/build.sh . build jni | ||
| - name: Test | ||
| run: ci/scripts/test.sh . build jni |
There was a problem hiding this comment.
On main the Windows job runs ci/scripts/build.sh before test.sh. Here it only runs Surefire against classes compiled on Linux, and as far as I can see that leaves no Maven build on Windows in any workflow (jni-windows in rc.yml only runs jni_windows_build.sh, which is CMake).
A change that breaks the build on Windows (codegen paths, a plugin without a Windows binary, line-ending-sensitive checks) would no longer be caught. I would keep the full build for the Windows job. If we decide that is acceptable to drop, please say so in the PR description, which currently states that the existing platform coverage is retained.
I'm more in favor to keep Windows job.
| with: | ||
| name: java-build | ||
| path: java-build.tgz | ||
| retention-days: 1 |
There was a problem hiding this comment.
With one day of retention, "Re-run failed jobs" stops working a day after the run: build-java succeeded so it is not re-run, and the test jobs then fail on download-artifact. The only way out is re-running everything, which defeats the purpose.
Could you raise this, for example to 7 days? Same for the cdata-build at line 208.
| <<: *cdata-prebuilt | ||
| environment: | ||
| ARROW_JAVA_CDATA: "ON" | ||
| ARROW_JAVA_TEST_BASE: "OFF" |
There was a problem hiding this comment.
With this Conda JNI jobs only run the arrow-c-data tests. On main, conda-jni-cdata runs the full mvn test first and then the c module, so vector, memory, flight and the rest are also exercised on the conda-forge OpenJDK 17/21/25.
Is dropping that intentional? I'm fine with it as deduplication, but then please mention it in PR description, since it says coverage is retained.
What's Changed
memory-corecustom test executions.Closes #1283.
This PR was assisted by AI