LuciferYang opened a new pull request, #58061: URL: https://github.com/apache/spark/pull/58061
### What changes were proposed in this pull request? Turns three of `build_and_test.yml`'s hardcoded job timeouts into optional `workflow_call` inputs: | input | job | default | | --- | --- | --- | | `build_timeout_minutes` | `build` (whole matrix) | 150 | | `pyspark_timeout_minutes` | `pyspark` (whole matrix) | 120 | | `docker_integration_tests_timeout_minutes` | `docker-integration-tests` | 120 | Each default is the value that was hardcoded, so every existing caller behaves exactly as before. The other jobs keep their literals. ### Why are the changes needed? `build_and_test.yml` is called by fifteen workflows, several of which run the same test modules under a configuration that changes how long they take. When a caller's configuration makes a job slower than the shared literal allows, there is no way to ask for more time. The job gets cancelled, which reports as a red run with no test results, the least useful failure a scheduled build can produce. The alternative available today is raising the shared literal, which buys one caller room at the cost of slowing failure detection for the other fourteen. This came up in #57925, a daily build on the javac codegen backend, where three jobs no longer fit: `sql - other tests` at 171 minutes against a 150 cap, and the `pyspark-sql` matrix entry and `docker-integration-tests` at 109 and 116 against 120. Those three are why exactly these three are parameterized here. Split out per review feedback on that PR. ### Does this PR introduce _any_ user-facing change? No. ### How was this patch tested? The defaults are mechanically identical to the literals they replace, checked by parsing both versions of the file and comparing per job: `build` 150, `pyspark` 120, `docker-integration-tests` 120, three for three. The same comparison confirms no job changed in any way other than its `timeout-minutes`, and that the other eight jobs still carry their literals. Every `inputs.*` reference in the file resolves to a declared input, and all fifteen callers pass only `java`, `branch`, `hadoop`, `envs` and `jobs` (`build_main.yml` passes nothing, `build_java17.yml` omits `branch`), none of which this touches. The three new inputs are `required: false`, so no caller becomes invalid. This PR's own CI run exercises the default path, which is what every caller except an explicit override uses. ### Was this patch authored or co-authored using generative AI tooling? Generated-by: Claude Opus 5 -- 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]
