tree cbd8ec3d4ef1119df517e956a469e4b255a8be06
parent 52a7f634e913b332bcabfbcc8759188b07c8f010
author Dongjoon Hyun <dhyun@apple.com> 1715151764 -0700
committer Dongjoon Hyun <dhyun@apple.com> 1715151764 -0700

[SPARK-48187][INFRA] Run `docs` only in PR builders and `build_non_ansi` Daily CI

### What changes were proposed in this pull request?

This PR aims to run `docs` (Documentation Generation) step only in PR builders and `build_non_ansi` Daily CI.

To do that, this PR spins off `documentation generation` tasks from `lint` job.

### Why are the changes needed?

Currently, Apache Spark CI is running `Documentation Generation` always inside `lint` job. We can take advantage PR Builder and one of Daily CIs.

- https://infra.apache.org/github-actions-policy.html

### Does this PR introduce _any_ user-facing change?

No because this is an infra update.

### How was this patch tested?

Pass the CIs and manual review because PR builders will not be affected by this.

### Was this patch authored or co-authored using generative AI tooling?

No.

Closes #46463 from dongjoon-hyun/SPARK-48187.

Authored-by: Dongjoon Hyun <dhyun@apple.com>
Signed-off-by: Dongjoon Hyun <dhyun@apple.com>
