rusackas opened a new pull request, #40718:
URL: https://github.com/apache/superset/pull/40718
### SUMMARY
The Cypress, Playwright, and Python test workflows ran change-detection at
the
**step level**: every matrix runner spun up, checked out the repo, ran the
`change-detector` action, and *then* skipped its individual steps when the
relevant files weren't touched. On a docs-only or otherwise unrelated PR,
that
still provisioned all of those runners — 12+ Cypress shards, the 3
integration-test databases, the Presto/Hive jobs, the experimental Playwright
matrix — only to no-op step by step.
This PR adopts the pattern `superset-frontend.yml` already uses: a single
lightweight `changes` job runs the change-detector **once** and exposes its
outputs, and each expensive job gates on it at the **job level**:
```yaml
changes:
outputs:
python: ${{ steps.check.outputs.python }}
frontend: ${{ steps.check.outputs.frontend }}
steps: [checkout, change-detector]
<expensive-job>:
needs: changes
if: needs.changes.outputs.python == 'true' # (|| frontend for
e2e/playwright)
```
Jobs that don't apply to a PR are now **skipped outright** instead of
provisioning a runner just to skip every step. The redundant per-job
change-detector step and the per-step `if:` guards are removed.
Workflows touched:
- `superset-e2e.yml` (Cypress + required Playwright)
- `superset-playwright.yml` (experimental Playwright)
- `superset-python-unittest.yml`
- `superset-python-integrationtest.yml` (mysql / postgres / sqlite)
- `superset-python-presto-hive.yml` (presto / hive)
**Behavior preserved:**
- `workflow_dispatch` / `schedule` runs still execute everything — the
detector
returns "all changed" for those events, so the gate evaluates true.
- Skipped required jobs are treated as passing by branch protection (same as
the
existing `superset-frontend.yml` behavior), so this doesn't block merges.
### TESTING INSTRUCTIONS
- On a code PR: confirm the `changes` job runs and the relevant test jobs
run as
before.
- On a docs-only PR: confirm the test jobs are **skipped** (not just
no-op'd) and
no Cypress/Python runners are provisioned.
### ADDITIONAL INFORMATION
- [ ] Has associated issue:
- [ ] Changes UI
- [ ] Includes DB Migration
- [ ] Introduces new feature or API
- [ ] Removes existing feature or API
🤖 Generated with [Claude Code](https://claude.com/claude-code)
--
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]