andygrove opened a new pull request, #5881:
URL: https://github.com/apache/datafusion-comet/pull/5881

   ## Which issue does this PR close?
   
   N/A. CI reliability follow-up to #5422.
   
   ## Rationale for this change
   
   The `Lint Java (Spark 4.0, JDK 21)` job on #5839 
([log](https://github.com/apache/datafusion-comet/actions/runs/34700762125/job/103572312632))
 failed one minute in, before compiling anything:
   
   ```
   java.io.IOException: Server returned HTTP response code: 403 for URL:
   
https://repo.maven.apache.org/maven2/org/apache/maven/apache-maven/3.9.6/apache-maven-3.9.6-bin.zip
   ```
   
   #5422 added a retry and a distribution cache for exactly this failure, but 
only inside the shared `java-test` action. Every other Maven caller still does 
an unguarded first `./mvnw` on a fresh runner: `lint-java`, `build-spark-4-1`, 
both benchmark verify jobs, `setup-spark-builder` (via `make release`), the 
three Iceberg `mvnw install` steps, `rust-test`, `pyarrow-udf`, 
`delta-build-gate`, and preflight's RAT check. Any of them turns a transient 
Maven Central 403/429 into a red job that says nothing about the patch.
   
   ## What changes are included in this PR?
   
   - New composite action `.github/actions/bootstrap-maven`, holding the 
restore / retry / save block that used to live inline in `java-test`. Same 
behavior as before: up to four attempts with 10s/20s/40s backoff plus jitter, 
cache keyed on `maven-wrapper.properties`, cache disabled on macOS per the 
existing runner-images workaround.
   - `setup-builder` and `setup-macos-builder` call it as their last step 
(after the JDK is installed). Every job that runs `./mvnw` goes through one of 
those two actions, so this covers all the callers listed above in one place.
   - `preflight` in `ci.yml` calls it directly before the RAT check, since that 
job does not use `setup-builder` and gates everything else.
   - `java-test` drops its inline copy; its callers already run a setup action 
first, so the distribution is installed by the time it runs.
   - `dev/ci/compute-changes.py` routes edits to the new action to the same 
jobs as the setup actions, and `dev/ci/check-ci-config.py` pins that with a 
routing case.
   
   This is the first place a local composite action uses another local 
composite action (`setup-builder` -> `bootstrap-maven`); a comment in 
`java-test` that called that pattern untested is updated.
   
   ## How are these changes tested?
   
   - `python3 dev/ci/check-ci-config.py` passes with the new routing case.
   - `actionlint --shellcheck=off` passes on the workflows.
   - Ran the retry loop from the action against a stub `mvnw` that fails twice 
then succeeds (returns 0 after three attempts, two warnings with delays in the 
10-14s and 20-24s ranges) and against one that always fails (exits 1 after four 
attempts with the `::error::` line).
   - CI on this PR exercises the nested action call on Linux, and the 
`bootstrap-maven/**` route runs the build tier.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to