Skip to content

Commit 6a8a68a

Browse files
authored
ci: Replace tj-actions/changed-files with custom approach (#5325)
1 parent d4eba00 commit 6a8a68a

2 files changed

Lines changed: 75 additions & 40 deletions

File tree

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
#!/usr/bin/env bash
2+
3+
set -e
4+
5+
# Script to check if files from specific pattern groups have changed in a PR
6+
# Groups: backend, postgres, ui
7+
8+
changed_files=$(git diff --name-only "origin/$GITHUB_BASE_REF...HEAD")
9+
10+
if [ -z "$changed_files" ]; then
11+
echo "No files changed in this PR compared to $GITHUB_BASE_REF branch."
12+
echo "backend_changed=false" >> $GITHUB_OUTPUT
13+
echo "postgres_changed=false" >> $GITHUB_OUTPUT
14+
echo "ui_changed=false" >> $GITHUB_OUTPUT
15+
exit 0
16+
fi
17+
18+
backend_changed=false
19+
postgres_changed=false
20+
ui_changed=false
21+
22+
for file in $changed_files; do
23+
if [[ $file == forge/* ||
24+
$file == test/unit/* ||
25+
$file == test/system/* ||
26+
$file == frontend/* ||
27+
$file == test/e2e/frontend/* ||
28+
$file == test/unit/frontend/* ||
29+
$file == package.json ||
30+
$file == package-lock.json ||
31+
$file == .eslintrc ]]; then
32+
backend_changed=true
33+
fi
34+
35+
if [[ $file == forge/* ||
36+
$file == test/unit/* ||
37+
$file == test/system/* ||
38+
$file == package.json ||
39+
$file == package-lock.json ]]; then
40+
postgres_changed=true
41+
fi
42+
43+
if [[ $file == forge/* ||
44+
$file == test/unit/* ||
45+
$file == test/system/* ||
46+
$file == frontend/* ||
47+
$file == test/e2e/frontend/* ||
48+
$file == test/unit/frontend/* ||
49+
$file == package.json ||
50+
$file == package-lock.json ||
51+
$file == .eslintrc ]]; then
52+
ui_changed=true
53+
fi
54+
55+
if $backend_changed && $postgres_changed && $ui_changed; then
56+
break
57+
fi
58+
done
59+
60+
echo "Changed groups:"
61+
echo " Backend: $backend_changed"
62+
echo " postgres: $postgres_changed"
63+
echo " UI: $ui_changed"
64+
65+
echo "backend_changed=$backend_changed" >> $GITHUB_OUTPUT
66+
echo "postgres_changed=$postgres_changed" >> $GITHUB_OUTPUT
67+
echo "ui_changed=$ui_changed" >> $GITHUB_OUTPUT
68+
69+
exit 0

.github/workflows/tests.yml

Lines changed: 6 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -16,53 +16,19 @@ jobs:
1616
name: Verify changes
1717
runs-on: ubuntu-latest
1818
outputs:
19-
run_backend_tests: ${{ steps.set-outputs.outputs.backend_tests }}
20-
run_postgres_tests: ${{ steps.set-outputs.outputs.postgres_tests }}
21-
run_ui_tests: ${{ steps.set-outputs.outputs.ui_tests }}
19+
run_backend_tests: ${{ steps.changed-files.outputs.backend_changed }}
20+
run_postgres_tests: ${{ steps.changed-files.outputs.postgres_changed }}
21+
run_ui_tests: ${{ steps.changed-files.outputs.ui_changed }}
2222
steps:
2323
- name: Checkout
2424
uses: actions/checkout@v4
2525
with:
2626
fetch-depth: 0
27-
- name: Get changed files
27+
- name: Find changed files
2828
id: changed-files
29-
uses: tj-actions/changed-files@v45
30-
with:
31-
files_yaml: |
32-
backend:
33-
- 'forge/**'
34-
- 'test/unit/**'
35-
- 'test/system/**'
36-
- 'frontend/**'
37-
- 'test/e2e/frontend/**'
38-
- 'test/unit/frontend/**'
39-
- 'package.json'
40-
- 'package-lock.json'
41-
- '.eslintrc'
42-
postgres:
43-
- 'forge/**'
44-
- 'test/unit/**'
45-
- 'test/system/**'
46-
- 'package.json'
47-
- 'package-lock.json'
48-
ui:
49-
- 'forge/**'
50-
- 'test/unit/**'
51-
- 'test/system/**'
52-
- 'frontend/**'
53-
- 'test/e2e/frontend/**'
54-
- 'test/unit/frontend/**'
55-
- 'package.json'
56-
- 'package-lock.json'
57-
- '.eslintrc'
58-
- name: Set outputs
59-
id: set-outputs
60-
shell: bash
6129
run: |
62-
echo "backend_tests=${{ steps.changed-files.outputs.backend_any_changed }}" >> "$GITHUB_OUTPUT"
63-
echo "postgres_tests=${{ steps.changed-files.outputs.postgres_any_changed }}" >> "$GITHUB_OUTPUT"
64-
echo "ui_tests=${{ steps.changed-files.outputs.ui_any_changed }}" >> "$GITHUB_OUTPUT"
65-
30+
./.github/scripts/detect_changed_files.sh
31+
6632
backend-tests:
6733
if: ${{ needs.check-changes.outputs.run_backend_tests == 'true' }}
6834
name: Backend tests

0 commit comments

Comments
 (0)