Skip to content

Commit e1e88d8

Browse files
sylvansysclaude
andcommitted
Add dynamic app detection and update review dependencies
- Add app detection step to lint job (checks for next.config, vite.config, playwright.config, apps/, src/app/) - E2E tests now only run when app is detected - Requirements review now depends on both unit and e2e tests - UI review now only runs when app is detected 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 20374f8 commit e1e88d8

1 file changed

Lines changed: 24 additions & 6 deletions

File tree

.github/workflows/ci-pipeline.yml

Lines changed: 24 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,26 @@ jobs:
2222
lint:
2323
name: "Static Analysis / Lint (ESLint)"
2424
runs-on: ubuntu-latest
25+
outputs:
26+
has_app: ${{ steps.detect.outputs.has_app }}
2527
steps:
2628
- uses: actions/checkout@v4
29+
30+
- name: Detect app
31+
id: detect
32+
run: |
33+
HAS_APP=false
34+
[ -f "next.config.js" ] && HAS_APP=true
35+
[ -f "next.config.mjs" ] && HAS_APP=true
36+
[ -f "next.config.ts" ] && HAS_APP=true
37+
[ -f "vite.config.ts" ] && HAS_APP=true
38+
[ -f "vite.config.js" ] && HAS_APP=true
39+
[ -f "playwright.config.ts" ] && HAS_APP=true
40+
ls apps/*/package.json >/dev/null 2>&1 && HAS_APP=true
41+
[ -d "src/app" ] && HAS_APP=true
42+
echo "has_app=$HAS_APP" >> $GITHUB_OUTPUT
43+
echo "Detected has_app=$HAS_APP"
44+
2745
- uses: actions/setup-node@v4
2846
with:
2947
node-version: '22'
@@ -64,8 +82,8 @@ jobs:
6482
6583
e2e:
6684
name: "Tests / E2E (Playwright)"
67-
needs: [unit]
68-
if: false # Set to true for repos with apps
85+
needs: [lint, unit]
86+
if: needs.lint.outputs.has_app == 'true'
6987
runs-on: ubuntu-latest
7088
steps:
7189
- uses: actions/checkout@v4
@@ -90,8 +108,8 @@ jobs:
90108
# ============================================
91109
requirements:
92110
name: "Reviews / Requirements"
93-
needs: [unit]
94-
if: github.event_name == 'pull_request'
111+
needs: [unit, e2e]
112+
if: github.event_name == 'pull_request' && !failure() && !cancelled()
95113
runs-on: ubuntu-latest
96114
outputs:
97115
passed: ${{ steps.extract.outputs.passed }}
@@ -274,8 +292,8 @@ jobs:
274292
275293
ui:
276294
name: "Reviews / UI"
277-
needs: [requirements, e2e]
278-
if: false # Set to true for repos with apps
295+
needs: [lint, requirements, e2e]
296+
if: github.event_name == 'pull_request' && needs.lint.outputs.has_app == 'true' && needs.requirements.outputs.passed == 'true'
279297
runs-on: ubuntu-latest
280298
outputs:
281299
passed: ${{ steps.extract.outputs.passed }}

0 commit comments

Comments
 (0)