Skip to content

Commit e61d9a8

Browse files
committed
ci(actions): Replace changed-files
1 parent 2a3de9c commit e61d9a8

File tree

4 files changed

+102
-62
lines changed

4 files changed

+102
-62
lines changed

.github/scripts/set_push_chunks.sh

+75-3
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,78 @@
22

33
build_all=false
44
chunks_count=0
5+
last_check_files=""
6+
7+
# Define the file patterns
8+
core_files=(
9+
'\.github/.*'
10+
'cores/.*'
11+
'package/.*'
12+
'tools/.*'
13+
'platform\.txt'
14+
'programmers\.txt'
15+
'variants/esp32/.*'
16+
'variants/esp32c3/.*'
17+
'variants/esp32c6/.*'
18+
'variants/esp32h2/.*'
19+
'variants/esp32p4/.*'
20+
'variants/esp32s2/.*'
21+
'variants/esp32s3/.*'
22+
)
23+
library_files=(
24+
'libraries/.*/examples/.*'
25+
'libraries/.*/src/.*'
26+
)
27+
networking_files=(
28+
'libraries/Network/src/.*'
29+
)
30+
fs_files=(
31+
'libraries/FS/src/.*'
32+
)
33+
static_sketches_files=(
34+
'libraries/NetworkClientSecure/examples/WiFiClientSecure/WiFiClientSecure\.ino'
35+
'libraries/BLE/examples/Server/Server\.ino'
36+
'libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer\.ino'
37+
'libraries/Insights/examples/MinimalDiagnostics/MinimalDiagnostics\.ino'
38+
'libraries/NetworkClientSecure/src/.*'
39+
'libraries/BLE/src/.*'
40+
'libraries/Insights/src/.*'
41+
)
42+
idf_files=(
43+
'idf_component\.yml'
44+
'Kconfig\.projbuild'
45+
'CMakeLists\.txt'
46+
'variants/esp32c2/.*'
47+
)
48+
49+
# Function to check if any files match the patterns
50+
check_files() {
51+
local patterns=("$@")
52+
local files_found=""
53+
for pattern in "${patterns[@]}"; do
54+
if [[ $IS_PR != 'true' ]]; then
55+
files_found+="$(gh api repos/espressif/arduino-esp32/commits/"$GITHUB_SHA" --jq '.files[].filename' | grep -E "$pattern") "
56+
else
57+
files_found+="$(gh pr diff "$PR_NUM" --name-only | grep -E "$pattern") "
58+
fi
59+
done
60+
61+
last_check_files=$(echo "$files_found" | xargs)
62+
if [[ -n $last_check_files ]]; then
63+
echo 'true'
64+
else
65+
echo 'false'
66+
fi
67+
}
68+
69+
# Output the results
70+
CORE_CHANGED=$(check_files "${core_files[@]}")
71+
LIB_CHANGED=$(check_files "${library_files[@]}")
72+
LIB_FILES=$last_check_files
73+
NETWORKING_CHANGED=$(check_files "${networking_files[@]}")
74+
FS_CHANGED=$(check_files "${fs_files[@]}")
75+
STATIC_SKETCHES_CHANGED=$(check_files "${static_sketches_files[@]}")
76+
IDF_CHANGED=$(check_files "${idf_files[@]}")
577

678
if [[ $CORE_CHANGED == 'true' ]] || [[ $IS_PR != 'true' ]]; then
779
echo "Core files changed or not a PR. Building all."
@@ -76,9 +148,9 @@ chunks+="]"
76148

77149
{
78150
echo "build_all=$build_all"
79-
echo "build_libraries=$BUILD_LIBRARIES"
80-
echo "build_static_sketches=$BUILD_STATIC_SKETCHES"
81-
echo "build_idf=$BUILD_IDF"
151+
echo "build_libraries=$LIB_CHANGED"
152+
echo "build_static_sketches=$STATIC_SKETCHES_CHANGED"
153+
echo "build_idf=$IDF_CHANGED"
82154
echo "chunk_count=$chunks_count"
83155
echo "chunks=$chunks"
84156
} >> "$GITHUB_OUTPUT"

.github/workflows/build_py_tools.yml

+9-9
Original file line numberDiff line numberDiff line change
@@ -30,16 +30,16 @@ jobs:
3030
echo "Make sure you are using a branch inside the repository and not a fork."
3131
3232
- name: Verify Python Tools Changed
33-
uses: tj-actions/changed-files@v41
3433
id: verify-changed-files
35-
with:
36-
fetch_depth: "2"
37-
since_last_remote_commit: "true"
38-
files: |
39-
tools/get.py
40-
tools/espota.py
41-
tools/gen_esp32part.py
42-
tools/gen_insights_package.py
34+
run: |
35+
CHANGED_FILES=$(git log -1 --name-only --pretty=format: -- tools/get.py tools/espota.py tools/gen_esp32part.py tools/gen_insights_package.py)
36+
echo "all_changed_files=$CHANGED_FILES" >> $GITHUB_OUTPUT
37+
if [ -n "$CHANGED_FILES" ]; then
38+
echo "any_changed=true" >> $GITHUB_OUTPUT
39+
else
40+
echo "any_changed=false" >> $GITHUB_OUTPUT
41+
fi
42+
4343
- name: List all changed files
4444
shell: bash
4545
run: |

.github/workflows/pre-commit.yml

+13-1
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,19 @@ jobs:
5858

5959
- name: Get changed files
6060
id: changed-files
61-
uses: tj-actions/[email protected]
61+
env:
62+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
63+
PR_NUM: ${{ github.event.pull_request.number }}
64+
IS_PR: ${{ github.event_name == 'pull_request' }}
65+
GITHUB_SHA: ${{ github.sha }}
66+
run: |
67+
if [[ $IS_PR != 'true' ]]; then
68+
files_changed=$(gh api repos/espressif/arduino-esp32/commits/"$GITHUB_SHA" --jq '.files[].filename')
69+
else
70+
files_changed=$(gh pr diff "$PR_NUM" --name-only)
71+
fi
72+
echo "all_changed_files=$files_changed" >> $GITHUB_OUTPUT
73+
echo "Changed files: $files_changed"
6274
6375
- name: Run pre-commit hooks in changed files
6476
run: pre-commit run --color=always --show-diff-on-failure --files ${{ steps.changed-files.outputs.all_changed_files }}

.github/workflows/push.yml

+5-49
Original file line numberDiff line numberDiff line change
@@ -45,12 +45,13 @@ on:
4545
- "!.github/scripts/tests_*"
4646
- "!.github/scripts/upload_*"
4747
- "variants/esp32/**/*"
48-
- "variants/esp32s2/**/*"
49-
- "variants/esp32s3/**/*"
5048
- "variants/esp32c2/**/*"
5149
- "variants/esp32c3/**/*"
5250
- "variants/esp32c6/**/*"
5351
- "variants/esp32h2/**/*"
52+
- "variants/esp32p4/**/*"
53+
- "variants/esp32s2/**/*"
54+
- "variants/esp32s3/**/*"
5455

5556
concurrency:
5657
group: build-${{github.event.pull_request.number || github.ref}}
@@ -85,58 +86,13 @@ jobs:
8586
with:
8687
fetch-depth: 2
8788

88-
- name: Get changed files
89-
id: changed-files
90-
uses: tj-actions/changed-files@v44
91-
with:
92-
files_yaml: |
93-
core:
94-
- '.github/**'
95-
- 'cores/**'
96-
- 'package/**'
97-
- 'tools/**'
98-
- 'platform.txt'
99-
- 'programmers.txt'
100-
- "variants/esp32/**/*"
101-
- "variants/esp32s2/**/*"
102-
- "variants/esp32s3/**/*"
103-
- "variants/esp32c3/**/*"
104-
- "variants/esp32c6/**/*"
105-
- "variants/esp32h2/**/*"
106-
libraries:
107-
- 'libraries/**/examples/**'
108-
- 'libraries/**/src/**'
109-
networking:
110-
- 'libraries/Network/src/**'
111-
fs:
112-
- 'libraries/FS/src/**'
113-
static_sketeches:
114-
- 'libraries/NetworkClientSecure/examples/WiFiClientSecure/WiFiClientSecure.ino'
115-
- 'libraries/BLE/examples/Server/Server.ino'
116-
- 'libraries/ESP32/examples/Camera/CameraWebServer/CameraWebServer.ino'
117-
- 'libraries/Insights/examples/MinimalDiagnostics/MinimalDiagnostics.ino'
118-
- 'libraries/NetworkClientSecure/src/**'
119-
- 'libraries/BLE/src/**'
120-
- 'libraries/Insights/src/**'
121-
idf:
122-
- 'idf_component.yml'
123-
- 'Kconfig.projbuild'
124-
- 'CMakeLists.txt'
125-
- "variants/esp32c2/**/*"
126-
12789
- name: Set chunks
12890
id: set-chunks
12991
env:
130-
LIB_FILES: ${{ steps.changed-files.outputs.libraries_all_changed_files }}
13192
IS_PR: ${{ github.event_name == 'pull_request' }}
93+
PR_NUM: ${{ github.event.pull_request.number }}
13294
MAX_CHUNKS: ${{ env.MAX_CHUNKS }}
133-
BUILD_IDF: ${{ steps.changed-files.outputs.idf_any_changed == 'true' }}
134-
BUILD_LIBRARIES: ${{ steps.changed-files.outputs.libraries_any_changed == 'true' }}
135-
BUILD_STATIC_SKETCHES: ${{ steps.changed-files.outputs.static_sketeches_any_changed == 'true' }}
136-
FS_CHANGED: ${{ steps.changed-files.outputs.fs_any_changed == 'true' }}
137-
NETWORKING_CHANGED: ${{ steps.changed-files.outputs.networking_any_changed == 'true' }}
138-
CORE_CHANGED: ${{ steps.changed-files.outputs.core_any_changed == 'true' }}
139-
LIB_CHANGED: ${{ steps.changed-files.outputs.libraries_any_changed == 'true' }}
95+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
14096
run: |
14197
bash ./.github/scripts/set_push_chunks.sh
14298

0 commit comments

Comments
 (0)