88 required : false
99 default : " default-feature-branch"
1010 pull_request :
11- paths :
12- - ' app/**'
13- - ' gradle/**'
14- - ' *.gradle.kts'
15- - ' gradle.properties'
16- - ' .github/workflows/e2e.yml'
1711
1812env :
1913 TERM : xterm-256color
@@ -24,9 +18,29 @@ concurrency:
2418 cancel-in-progress : true
2519
2620jobs :
27- build :
21+ detect-changes :
2822 if : github.event.pull_request.draft == false
2923 runs-on : ubuntu-latest
24+ outputs :
25+ code : ${{ github.event_name == 'workflow_dispatch' || steps.filter.outputs.code == 'true' }}
26+ steps :
27+ - uses : actions/checkout@v4
28+ - uses : dorny/paths-filter@v3
29+ if : github.event_name == 'pull_request'
30+ id : filter
31+ with :
32+ filters : |
33+ code:
34+ - 'app/**'
35+ - 'gradle/**'
36+ - '*.gradle.kts'
37+ - 'gradle.properties'
38+ - '.github/workflows/e2e.yml'
39+
40+ build :
41+ needs : detect-changes
42+ if : github.event.pull_request.draft == false && needs.detect-changes.outputs.code == 'true'
43+ runs-on : ubuntu-latest
3044
3145 steps :
3246 - name : Checkout
@@ -67,16 +81,17 @@ jobs:
6781 path : app/build/outputs/apk/dev/debug/bitkit_e2e.apk
6882
6983 e2e-branch :
70- if : github.event.pull_request.draft == false
84+ needs : detect-changes
85+ if : github.event.pull_request.draft == false && needs.detect-changes.outputs.code == 'true'
7186 uses : synonymdev/bitkit-e2e-tests/.github/workflows/determine-e2e-branch.yml@main
7287 with :
7388 app_branch : ${{ github.head_ref || github.ref_name }}
7489 e2e_branch_input : ${{ github.event.inputs.e2e_branch || 'default-feature-branch' }}
7590
7691 e2e-tests :
77- if : github.event.pull_request.draft == false
92+ if : github.event.pull_request.draft == false && needs.detect-changes.outputs.code == 'true'
7893 runs-on : ubuntu-latest
79- needs : [build, e2e-branch]
94+ needs : [detect-changes, build, e2e-branch]
8095
8196 strategy :
8297 fail-fast : false
@@ -238,12 +253,17 @@ jobs:
238253 if : always() && github.event.pull_request.draft == false
239254 name : e2e-status
240255 runs-on : ubuntu-latest
241- needs : [e2e-tests]
256+ needs : [detect-changes, e2e-tests]
242257 steps :
258+ - name : E2E skipped - no code changes
259+ if : needs.detect-changes.outputs.code != 'true'
260+ run : echo "✅ E2E skipped - no code changes"
261+
243262 - name : Verify all E2E shards succeeded
263+ if : needs.detect-changes.outputs.code == 'true'
244264 run : |
245265 if [ "${{ needs.e2e-tests.result }}" != "success" ]; then
246266 echo "❌ Some E2E shards failed."
247267 exit 1
248268 fi
249- echo "✅ All E2E shards passed!"
269+ echo "✅ All E2E shards passed!"
0 commit comments