ci(github): split default CI and label-triggered optional checks#1100
Conversation
- Subscribe pull_request to labeled/unlabeled so adding ci:windows re-runs CI - Drop paths filter on pull_request so label-only events are not skipped - Add matrix-prep job: Windows matrix on push to main or when PR has ci:windows - Gate test-kubernetes on PR with ci:k8s label (or k8s in title)
Greptile SummaryThis PR subscribes the
Confidence Score: 3/5Hold for the shell-injection fix before merging — the label-name interpolation is an exploitable security pattern. One P1 security finding: label names are interpolated directly into a
|
| Filename | Overview |
|---|---|
| .github/workflows/ci.yml | Adds labeled/unlabeled PR triggers, a matrix-prep job for label-driven Windows matrix, and ci:k8s label support — but the label-name interpolation in the shell script is a shell-injection risk (P1). |
Flowchart
%%{init: {'theme': 'neutral'}}%%
flowchart TD
A[GitHub Event] --> B{Event Type?}
B -->|push to main| C[matrix-prep: ubuntu + windows]
B -->|pull_request labeled/unlabeled/opened/sync/reopened| D{ci:windows label?}
D -->|yes| E[matrix-prep: ubuntu + windows]
D -->|no| F[matrix-prep: ubuntu only]
C & E & F --> G[quality job]
C & E & F --> H[typecheck job]
G & H --> I[test job]
G & H --> J{k8s trigger?}
J -->|push OR title contains k8s/kubernetes OR ci:k8s label| K[test-kubernetes]
J -->|none match| L[skip test-kubernetes]
I -->|push to main only| M[test-thorough]
Reviews (1): Last reviewed commit: "ci(github): run PR CI on label events; c..." | Re-trigger Greptile
Push to main stays Ubuntu-only; no Windows on merge without a label (N/A on push).
- restore path-scoped pull_request trigger for default CI workflow - keep default matrix ubuntu-only in main CI workflow - add dedicated CI Labels workflow for ci:windows and ci:k8s - run optional windows and k8s jobs only when matching labels are present
|
🌮 @muddlebee's PR: showed up unannounced, improved everything, left zero bugs. Just like a perfect taco. 🌮 👋 Join us on Discord - OpenSRE : hang out, contribute, or hunt for features and issues. Everyone's welcome. |
* ci(github): run PR CI on label events; ci:windows and ci:k8s - Subscribe pull_request to labeled/unlabeled so adding ci:windows re-runs CI - Drop paths filter on pull_request so label-only events are not skipped - Add matrix-prep job: Windows matrix on push to main or when PR has ci:windows - Gate test-kubernetes on PR with ci:k8s label (or k8s in title) * ci(github): run Windows matrix only when PR has ci:windows Push to main stays Ubuntu-only; no Windows on merge without a label (N/A on push). * ci(github): split label-triggered checks workflow - restore path-scoped pull_request trigger for default CI workflow - keep default matrix ubuntu-only in main CI workflow - add dedicated CI Labels workflow for ci:windows and ci:k8s - run optional windows and k8s jobs only when matching labels are present

Trigger flow for reviewers
ci:windowslabel:CI Labelsworkflow runs Windows jobs.ci:k8slabel:CI Labelsworkflow runs k8s job.unlabeledevents re-evaluate optional jobs.