Skip to content

Commit 84ad9a2

Browse files
committed
[9cb011e] ci(runner): Save image from camera
1 parent 1cd2c92 commit 84ad9a2

File tree

2 files changed

+102
-79
lines changed

2 files changed

+102
-79
lines changed

.github/ci/runner_camera.py

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
# SPDX-FileCopyrightText: 2025 Espressif Systems (Shanghai) CO LTD
2+
# SPDX-License-Identifier: Apache-2.0
3+
4+
import cv2
5+
6+
# This will return video from the first webcam on your computer.
7+
cap = cv2.VideoCapture(0)
8+
9+
# reads frames from a camera
10+
# ret checks return at each frame
11+
ret, frame = cap.read()
12+
if ret:
13+
# Save image
14+
image_path = "snapshot.jpg"
15+
cv2.imwrite(image_path, frame)
16+
print(f"Image saved {image_path}")
17+
else:
18+
print("Cannot save image.")
19+
20+
# Close the window / Release webcam
21+
cap.release()

.github/workflows/build-run-applications.yml

Lines changed: 81 additions & 79 deletions
Original file line numberDiff line numberDiff line change
@@ -45,30 +45,30 @@ jobs:
4545
- idf_ver: "latest"
4646
parallel_count: 5
4747
parallel_index: 5
48-
- idf_ver: "release-v5.1"
49-
parallel_count: 2
50-
parallel_index: 1
51-
- idf_ver: "release-v5.1"
52-
parallel_count: 2
53-
parallel_index: 2
54-
- idf_ver: "release-v5.2"
55-
parallel_count: 2
56-
parallel_index: 1
57-
- idf_ver: "release-v5.2"
58-
parallel_count: 2
59-
parallel_index: 2
60-
- idf_ver: "release-v5.3"
61-
parallel_count: 2
62-
parallel_index: 1
63-
- idf_ver: "release-v5.3"
64-
parallel_count: 2
65-
parallel_index: 2
66-
- idf_ver: "release-v5.4"
67-
parallel_count: 2
68-
parallel_index: 1
69-
- idf_ver: "release-v5.4"
70-
parallel_count: 2
71-
parallel_index: 2
48+
#- idf_ver: "release-v5.1"
49+
# parallel_count: 2
50+
# parallel_index: 1
51+
#- idf_ver: "release-v5.1"
52+
# parallel_count: 2
53+
# parallel_index: 2
54+
#- idf_ver: "release-v5.2"
55+
# parallel_count: 2
56+
# parallel_index: 1
57+
#- idf_ver: "release-v5.2"
58+
# parallel_count: 2
59+
# parallel_index: 2
60+
#- idf_ver: "release-v5.3"
61+
# parallel_count: 2
62+
# parallel_index: 1
63+
#- idf_ver: "release-v5.3"
64+
# parallel_count: 2
65+
# parallel_index: 2
66+
#- idf_ver: "release-v5.4"
67+
# parallel_count: 2
68+
# parallel_index: 1
69+
#- idf_ver: "release-v5.4"
70+
# parallel_count: 2
71+
# parallel_index: 2
7272
runs-on: ubuntu-latest
7373
container: espressif/idf:${{ matrix.idf_ver }}
7474
steps:
@@ -122,60 +122,60 @@ jobs:
122122
- runs-on: "esp-box-3"
123123
marker: "esp_box_3"
124124
target: "esp32s3"
125-
- runs-on: "esp32_c3_lcdkit"
126-
marker: "esp32_c3_lcdkit"
127-
target: "esp32c3"
128-
- runs-on: "esp32_p4_box"
129-
marker: "esp32_p4_box"
130-
target: "esp32p4"
131-
- runs-on: "esp32_p4_function_ev_board"
132-
marker: "esp32_p4_function_ev_board"
133-
target: "esp32p4"
134-
- runs-on: "esp32_s3_eye"
135-
marker: "esp32_s3_eye"
136-
target: "esp32s3"
137-
- runs-on: "esp32_s3_lcd_ev_board"
138-
marker: "esp32_s3_lcd_ev_board"
139-
target: "esp32s3"
140-
- runs-on: "esp32_s3_lcd_ev_board"
141-
marker: "esp32_s3_lcd_ev_board_2"
142-
target: "esp32s3"
143-
- runs-on: "esp32_s3_usb_otg"
144-
marker: "esp32_s3_usb_otg"
145-
target: "esp32s3"
146-
- runs-on: "esp_wrover_kit"
147-
marker: "esp_wrover_kit"
148-
target: "esp32"
149-
- runs-on: "m5dial"
150-
marker: "m5dial"
151-
target: "esp32s3"
152-
- runs-on: "m5stack_core"
153-
marker: "m5stack_core"
154-
target: "esp32"
155-
- runs-on: "m5stack_core_2"
156-
marker: "m5stack_core_2"
157-
target: "esp32"
158-
- runs-on: "m5stack_core_s3"
159-
marker: "m5stack_core_s3"
160-
target: "esp32s3"
161-
- runs-on: "m5stack_core_s3"
162-
marker: "m5stack_core_s3_se"
163-
target: "esp32s3"
164-
- runs-on: "esp32_azure_iot_kit"
165-
marker: "esp32_azure_iot_kit"
166-
target: "esp32"
167-
- runs-on: "esp_bsp_devkit"
168-
marker: "esp_bsp_devkit"
169-
target: "esp32s3"
170-
- runs-on: "esp_bsp_generic"
171-
marker: "esp_bsp_generic"
172-
target: "esp32s3"
173-
- runs-on: "esp32_s3_korvo_2"
174-
marker: "esp32_s3_korvo_2"
175-
target: "esp32s3"
176-
- runs-on: "m5_atom_s3"
177-
marker: "m5_atom_s3"
178-
target: "esp32s3"
125+
#- runs-on: "esp32_c3_lcdkit"
126+
# marker: "esp32_c3_lcdkit"
127+
# target: "esp32c3"
128+
#- runs-on: "esp32_p4_box"
129+
# marker: "esp32_p4_box"
130+
# target: "esp32p4"
131+
#- runs-on: "esp32_p4_function_ev_board"
132+
# marker: "esp32_p4_function_ev_board"
133+
# target: "esp32p4"
134+
#- runs-on: "esp32_s3_eye"
135+
# marker: "esp32_s3_eye"
136+
# target: "esp32s3"
137+
#- runs-on: "esp32_s3_lcd_ev_board"
138+
# marker: "esp32_s3_lcd_ev_board"
139+
# target: "esp32s3"
140+
#- runs-on: "esp32_s3_lcd_ev_board"
141+
# marker: "esp32_s3_lcd_ev_board_2"
142+
# target: "esp32s3"
143+
#- runs-on: "esp32_s3_usb_otg"
144+
# marker: "esp32_s3_usb_otg"
145+
# target: "esp32s3"
146+
#- runs-on: "esp_wrover_kit"
147+
# marker: "esp_wrover_kit"
148+
# target: "esp32"
149+
#- runs-on: "m5dial"
150+
# marker: "m5dial"
151+
# target: "esp32s3"
152+
#- runs-on: "m5stack_core"
153+
# marker: "m5stack_core"
154+
# target: "esp32"
155+
#- runs-on: "m5stack_core_2"
156+
# marker: "m5stack_core_2"
157+
# target: "esp32"
158+
#- runs-on: "m5stack_core_s3"
159+
# marker: "m5stack_core_s3"
160+
# target: "esp32s3"
161+
#- runs-on: "m5stack_core_s3"
162+
# marker: "m5stack_core_s3_se"
163+
# target: "esp32s3"
164+
#- runs-on: "esp32_azure_iot_kit"
165+
# marker: "esp32_azure_iot_kit"
166+
# target: "esp32"
167+
#- runs-on: "esp_bsp_devkit"
168+
# marker: "esp_bsp_devkit"
169+
# target: "esp32s3"
170+
#- runs-on: "esp_bsp_generic"
171+
# marker: "esp_bsp_generic"
172+
# target: "esp32s3"
173+
#- runs-on: "esp32_s3_korvo_2"
174+
# marker: "esp32_s3_korvo_2"
175+
# target: "esp32s3"
176+
#- runs-on: "m5_atom_s3"
177+
# marker: "m5_atom_s3"
178+
# target: "esp32s3"
179179
env:
180180
TEST_RESULT_NAME: test_results_${{ matrix.runner.target }}_${{ matrix.runner.marker }}_${{ matrix.idf_ver }}
181181
BENCHMARK_RESULT_NAME: benchmark_${{ matrix.runner.target }}_${{ matrix.runner.marker }}_${{ matrix.idf_ver }}
@@ -195,7 +195,7 @@ jobs:
195195
env:
196196
PIP_EXTRA_INDEX_URL: "https://dl.espressif.com/pypi/"
197197
run: |
198-
pip install --prefer-binary cryptography pytest-embedded pytest-embedded-serial-esp pytest-embedded-idf pytest-custom_exit_code
198+
pip install --prefer-binary cryptography pytest-embedded pytest-embedded-serial-esp pytest-embedded-idf pytest-custom_exit_code opencv-python numpy
199199
- name: Download latest results
200200
uses: actions/download-artifact@v4
201201
with:
@@ -204,6 +204,7 @@ jobs:
204204
- name: Run apps
205205
run: |
206206
pytest --suppress-no-test-exit-code --ignore-glob '*/managed_components/*' --ignore=.github --junit-xml=${{ env.TEST_RESULT_FILE }} --target=${{ matrix.runner.target }} -m ${{ matrix.runner.marker }} --build-dir=build_${{ matrix.runner.runs-on }} ${{ env.PYTEST_BENCHMARK_IGNORE }}
207+
python .github/ci/runner_camera.py
207208
- name: Upload test results
208209
uses: actions/upload-artifact@v4
209210
if: always()
@@ -214,6 +215,7 @@ jobs:
214215
benchmark_*.md
215216
benchmark_*.json
216217
benchmark.json
218+
*.jpg
217219
- name: Check if benchmark files exist
218220
id: check_files
219221
run: |

0 commit comments

Comments
 (0)