Skip to content

Commit 92b3dff

Browse files
committed
test mp commits
1 parent 6ec4b83 commit 92b3dff

File tree

2 files changed

+41
-57
lines changed

2 files changed

+41
-57
lines changed

.github/workflows/ESP32.yml

Lines changed: 41 additions & 55 deletions
Original file line numberDiff line numberDiff line change
@@ -29,8 +29,7 @@ jobs:
2929
- name: Get MicroPython latest release
3030
run: |
3131
MPY_RELEASE=$(curl --silent "https://api.github.com/repos/micropython/micropython/releases/latest" | jq -r .tag_name)
32-
# echo "MPY_RELEASE=${MPY_RELEASE}" >> $GITHUB_ENV
33-
echo "MPY_RELEASE=v1.25.0" >> $GITHUB_ENV
32+
echo "MPY_RELEASE=${MPY_RELEASE}" >> $GITHUB_ENV
3433
3534
# Cache ESP-IDF dependencies and MicroPython
3635
- name: Cache ESP-IDF and MicroPython
@@ -84,56 +83,25 @@ jobs:
8483
cd ~/esp-idf/
8584
source ./export.sh
8685
cd ~
87-
git clone --depth 1 --branch ${{ env.MPY_RELEASE }} https://github.com/micropython/micropython.git
88-
cd micropython
89-
# git submodule update --init --depth 1
90-
cd mpy-cross
91-
make
92-
cd ~/micropython/ports/esp32
93-
make submodules
94-
echo "Micropython setup successfully"
86+
git clone --branch ${{ env.MPY_RELEASE }} https://github.com/micropython/micropython.git
87+
echo "Micropython cloned successfully"
9588
source ~/micropython/tools/ci.sh && echo "IDF_VER=$IDF_VER" >> $GITHUB_ENV
9689
97-
# Dynamically create jobs for each board
90+
# Dynamically create jobs for each commit
9891
build:
9992
needs: setup-environment
10093
runs-on: ubuntu-24.04
10194
strategy:
10295
fail-fast: false
10396
matrix:
104-
board:
105-
- ESP32_GENERIC-SPIRAM
106-
- ESP32_GENERIC_S2
107-
- ESP32_GENERIC_S3
108-
- ESP32_GENERIC_S3-SPIRAM_OCT
109-
- ESP32_GENERIC_S3-FLASH_4M
110-
- ESP32_GENERIC-SPIRAM@WROVER_KIT
111-
- ESP32_GENERIC-SPIRAM@ESP_EYE
112-
- ESP32_GENERIC-SPIRAM@M5STACK_PSRAM
113-
- ESP32_GENERIC-SPIRAM@M5STACK_V2_PSRAM
114-
- ESP32_GENERIC-SPIRAM@M5STACK_WIDE
115-
- ESP32_GENERIC-SPIRAM@M5STACK_ESP32CAM
116-
- ESP32_GENERIC-SPIRAM@M5STACK_UNITCAM
117-
- ESP32_GENERIC-SPIRAM@AI_THINKER
118-
- ESP32_GENERIC-SPIRAM@TTGO_T_JOURNAL
119-
- ESP32_GENERIC-SPIRAM@TTGO_T_CAMERA_PLUS
120-
- ESP32_GENERIC_S3-SPIRAM_OCT@M5STACK_CAMS3_UNIT
121-
- ESP32_GENERIC_S3-SPIRAM_OCT@M5STACK_ATOM_S3R
122-
- ESP32_GENERIC_S3-SPIRAM_OCT@XIAO_ESP32S3
123-
- ESP32_GENERIC_S3-SPIRAM_OCT@ESP32S3_CAM_LCD
124-
- ESP32_GENERIC_S3-SPIRAM_OCT@ESP32S3_EYE
125-
- ESP32_GENERIC_S3-SPIRAM_OCT@FREENOVE_ESP32S3_CAM
126-
- ESP32_GENERIC_S3-SPIRAM_OCT@DFRobot_ESP32S3
127-
- ESP32_GENERIC_S3-SPIRAM_OCT@NEW_ESPS3_RE1_0
128-
- ESP32_GENERIC_S3-SPIRAM_OCT@XENOIONEX
97+
commit_offset: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23]
12998

13099
steps:
131100
# Get the latest MicroPython release
132101
- name: Get MicroPython latest release
133102
run: |
134103
MPY_RELEASE=$(curl --silent "https://api.github.com/repos/micropython/micropython/releases/latest" | jq -r .tag_name)
135-
# echo "MPY_RELEASE=${MPY_RELEASE}" >> $GITHUB_ENV
136-
echo "MPY_RELEASE=v1.25.0" >> $GITHUB_ENV
104+
echo "MPY_RELEASE=${MPY_RELEASE}" >> $GITHUB_ENV
137105
138106
# Cache ESP-IDF dependencies and MicroPython
139107
- name: Cache ESP-IDF and MicroPython
@@ -156,7 +124,26 @@ jobs:
156124
sudo apt-get update
157125
sudo apt-get install -y git wget flex bison gperf python3 python3-pip python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 build-essential pkg-config
158126
159-
# Build MicroPython for each board
127+
# Setup MicroPython for specific commit
128+
- name: Setup MicroPython for commit
129+
run: |
130+
cd ~/micropython
131+
# Get the commit hash that is N commits before the release tag
132+
COMMIT_HASH=$(git rev-list --reverse HEAD~${{ matrix.commit_offset }}..HEAD | head -1)
133+
if [ -z "$COMMIT_HASH" ]; then
134+
COMMIT_HASH=$(git rev-parse HEAD~${{ matrix.commit_offset }})
135+
fi
136+
echo "Testing commit: $COMMIT_HASH (offset: ${{ matrix.commit_offset }})"
137+
git checkout $COMMIT_HASH
138+
git submodule update --init --depth 1
139+
cd mpy-cross
140+
make
141+
cd ~/micropython/ports/esp32
142+
make submodules
143+
echo "Micropython setup successfully for commit $COMMIT_HASH"
144+
echo "COMMIT_HASH=$COMMIT_HASH" >> $GITHUB_ENV
145+
146+
# Build MicroPython for ESP32_GENERIC_S3-SPIRAM_OCT
160147
- name: Build MicroPython
161148
run: |
162149
cd ${{ github.workspace }}
@@ -166,33 +153,32 @@ jobs:
166153
cd ~/micropython/ports/esp32
167154
source ~/esp-idf/export.sh
168155
169-
# Check if a variant is defined and adjust the idf.py command
170-
IFS='@' read -r BUILD_TARGET CAMERA_MODEL <<< "${{ matrix.board }}"
171-
IFS='-' read -r BOARD_NAME BOARD_VARIANT <<< "${BUILD_TARGET}"
156+
# Fixed board configuration for ESP32_GENERIC_S3-SPIRAM_OCT
157+
BOARD_NAME="ESP32_GENERIC_S3"
158+
BOARD_VARIANT="SPIRAM_OCT"
159+
BUILD_TARGET="ESP32_GENERIC_S3-SPIRAM_OCT"
160+
161+
IDF_CMD="idf.py -D MICROPY_BOARD=$BOARD_NAME -D USER_C_MODULES=${{ github.workspace }}/src/micropython.cmake -D MICROPY_BOARD_VARIANT=$BOARD_VARIANT -B build-$BUILD_TARGET -D MP_CAMERA_DRIVER_VERSION=$CAM_DRIVER -D MP_JPEG_DIR=${{ github.workspace }}/mp_jpeg"
162+
FINAL_CMD="${IDF_CMD} build"
172163
173-
if [ -n "${BOARD_VARIANT}" ]; then
174-
IDF_CMD="idf.py -D MICROPY_BOARD=$BOARD_NAME -D USER_C_MODULES=${{ github.workspace }}/src/micropython.cmake -D MICROPY_BOARD_VARIANT=$BOARD_VARIANT -B build-$BUILD_TARGET -D MP_CAMERA_DRIVER_VERSION=$CAM_DRIVER -D MP_JPEG_DIR=${{ github.workspace }}/mp_jpeg"
175-
else
176-
IDF_CMD="idf.py -D MICROPY_BOARD=$BOARD_NAME -D USER_C_MODULES=${{ github.workspace }}/src/micropython.cmake -B build-$BUILD_TARGET -D MP_CAMERA_DRIVER_VERSION=$CAM_DRIVER -D MP_JPEG_DIR=${{ github.workspace }}/mp_jpeg"
177-
fi
178-
if [ -n "${CAMERA_MODEL}" ]; then
179-
echo "FW_NAME=${CAMERA_MODEL}" >> $GITHUB_ENV
180-
FINAL_CMD="${IDF_CMD} -D MICROPY_CAMERA_MODEL=${CAMERA_MODEL} build"
181-
else
182-
echo "FW_NAME=${BUILD_TARGET}" >> $GITHUB_ENV
183-
FINAL_CMD="${IDF_CMD} build"
184-
fi
185164
make USER_C_MODULES=${{ github.workspace }}/src/micropython.cmake BOARD=$BOARD_NAME submodules
186165
echo "Running command: $FINAL_CMD"
187166
eval $FINAL_CMD
167+
188168
cd ~/micropython/ports/esp32/build-${BUILD_TARGET}
189169
python ../makeimg.py sdkconfig bootloader/bootloader.bin partition_table/partition-table.bin micropython.bin firmware.bin micropython.uf2
190170
mkdir -p ~/artifacts
191171
mv ~/micropython/ports/esp32/build-${BUILD_TARGET}/firmware.bin ~/artifacts/firmware.bin
172+
173+
# Get binary size info
174+
ls -lh ~/artifacts/firmware.bin
175+
FIRMWARE_SIZE=$(stat -c%s ~/artifacts/firmware.bin)
176+
echo "Firmware size: $FIRMWARE_SIZE bytes"
177+
echo "FIRMWARE_SIZE=$FIRMWARE_SIZE" >> $GITHUB_ENV
192178
193179
- name: Upload firmware artifact
194180
uses: actions/upload-artifact@v4
195181
with:
196-
name: mpy_cam-${{ env.MPY_RELEASE }}-${{ env.FW_NAME }}
182+
name: mpy_cam-${{ env.MPY_RELEASE }}-commit-${{ matrix.commit_offset }}-${{ env.COMMIT_HASH }}-ESP32_GENERIC_S3-SPIRAM_OCT
197183
path: ~/artifacts/**
198184
retention-days: 5

src/micropython.cmake

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,9 +18,7 @@ if(DEFINED ESP32_CAMERA_DIR AND EXISTS "${ESP32_CAMERA_DIR}")
1818
target_include_directories(usermod_mp_camera INTERFACE
1919
${CMAKE_CURRENT_LIST_DIR}
2020
${ESP32_CAMERA_DIR}/driver/include
21-
${ESP32_CAMERA_DIR}/conversions/include
2221
${ESP32_CAMERA_DIR}/driver/private_include
23-
${ESP32_CAMERA_DIR}/conversions/private_include
2422
${ESP32_CAMERA_DIR}/sensors/private_include
2523
)
2624

0 commit comments

Comments
 (0)