Skip to content

Commit ca97dae

Browse files
committed
update action
1 parent 2a19f8d commit ca97dae

File tree

9 files changed

+119
-27
lines changed

9 files changed

+119
-27
lines changed

.github/workflows/MicroPython.yml

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,108 @@
1+
name: MicroPython For ESP32
2+
3+
on:
4+
workflow_dispatch:
5+
6+
env:
7+
MICROPYTHON: micropython
8+
MICROPYTHON_REPO: https://github.com/micropython/micropython.git
9+
MICROPYTHON_VERSION: v1.24.1
10+
ESPIDF: esp-idf
11+
ESPIDF_REPO: https://github.com/espressif/esp-idf.git
12+
ESPIDF_VERSION: v5.2.2
13+
TZ: Asia/Shanghai
14+
15+
jobs:
16+
MicroPython_ESP32:
17+
name: Build MicroPython
18+
runs-on: ubuntu-22.04
19+
20+
strategy:
21+
fail-fast: false
22+
matrix:
23+
info:
24+
- '{ "BOARD": "ESP32_GENERIC", "BOARD_VARIANT": "SPIRAM", "FLASH": "4" }'
25+
- '{ "BOARD": "ESP32_GENERIC", "BOARD_VARIANT": "SPIRAM", "FLASH": "8" }'
26+
- '{ "BOARD": "ESP32_GENERIC", "BOARD_VARIANT": "SPIRAM", "FLASH": "16" }'
27+
- '{ "BOARD": "ESP32_GENERIC_S3", "BOARD_VARIANT": "SPIRAM_OCT", "FLASH": "4" }'
28+
- '{ "BOARD": "ESP32_GENERIC_S3", "BOARD_VARIANT": "SPIRAM_OCT", "FLASH": "8" }'
29+
- '{ "BOARD": "ESP32_GENERIC_S3", "BOARD_VARIANT": "SPIRAM_OCT", "FLASH": "16" }'
30+
31+
steps:
32+
- name: Checkout
33+
uses: actions/checkout@main
34+
35+
- name: Initialization environment
36+
run: |
37+
sudo apt-get update -y
38+
sudo apt-get install -y build-essential libffi-dev git pkg-config
39+
sudo apt-get install -y git wget flex bison gperf python3 python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0 python-is-python3 pip
40+
sudo timedatectl set-timezone "$TZ"
41+
42+
- name: Clone ESP-IDF
43+
run: |
44+
git clone -b $ESPIDF_VERSION --recursive $ESPIDF_REPO $ESPIDF
45+
cd $ESPIDF
46+
git checkout $ESPIDF_VERSION
47+
git submodule update --init --recursive
48+
./install.sh
49+
source export.sh
50+
51+
- name: Clone MicroPython
52+
run: |
53+
git clone -b $MICROPYTHON_VERSION --recursive $MICROPYTHON_REPO $MICROPYTHON
54+
cd $MICROPYTHON
55+
git checkout $MICROPYTHON_VERSION
56+
git submodule update --init --recursive
57+
58+
- name: Custom MicroPython for ESP32
59+
run: |
60+
wget -P $MICROPYTHON/ports/esp32/modules https://raw.githubusercontent.com/Josverl/micropython-stubs/main/mip/typing.py
61+
wget -P $MICROPYTHON/ports/esp32/modules https://raw.githubusercontent.com/micropython/micropython-lib/master/python-stdlib/logging/logging.py
62+
wget -P $MICROPYTHON/ports/esp32/modules https://raw.githubusercontent.com/micropython/micropython-lib/master/micropython/drivers/storage/sdcard/sdcard.py
63+
rm -rf $MICROPYTHON/ports/esp32/boards/${{ fromJSON(matrix.info).BOARD }}/mpconfigboard.cmake
64+
rm -rf $MICROPYTHON/ports/esp32/boards/${{ fromJSON(matrix.info).BOARD }}/sdkconfig.board
65+
mv config/micropython/${{ fromJSON(matrix.info).BOARD }}.mpconfigboard $MICROPYTHON/ports/esp32/boards/${{ fromJSON(matrix.info).BOARD }}/mpconfigboard.cmake
66+
mv config/micropython/N${{ fromJSON(matrix.info).FLASH }}.sdkconfig $MICROPYTHON/ports/esp32/boards/${{ fromJSON(matrix.info).BOARD }}/sdkconfig.board
67+
68+
- name: Compile the firmware
69+
id: compile
70+
run: |
71+
source $ESPIDF/export.sh
72+
cd $MICROPYTHON
73+
make -C mpy-cross
74+
cd ports/esp32
75+
make submodules
76+
make V=1 BOARD=${{ fromJSON(matrix.info).BOARD }} BOARD_VARIANT=${{ fromJSON(matrix.info).BOARD_VARIANT }}
77+
echo "status=success" >> $GITHUB_OUTPUT
78+
echo "COMPILE_DATE=$(date +"%Y%m%d%H%M")" >> $GITHUB_ENV
79+
80+
- name: Organize compiled firmware
81+
if: steps.compile.outputs.status == 'success' && !cancelled()
82+
run: |
83+
cd $MICROPYTHON/ports/esp32/build-${{ fromJSON(matrix.info).BOARD }}-${{ fromJSON(matrix.info).BOARD_VARIANT }}
84+
mv firmware.bin MicroPython_${{ env.MICROPYTHON_VERSION }}-${{ fromJSON(matrix.info).BOARD }}-${{ fromJSON(matrix.info).BOARD_VARIANT }}-N${{ fromJSON(matrix.info).FLASH }}-${{ env.COMPILE_DATE }}.bin
85+
86+
- name: Upload firmware to release
87+
if: steps.compile.outputs.status == 'success' && !cancelled()
88+
uses: svenstaro/upload-release-action@v2
89+
with:
90+
repo_token: ${{ secrets.GITHUB_TOKEN }}
91+
file: ${{ env.MICROPYTHON }}/ports/esp32/build-${{ fromJSON(matrix.info).BOARD }}-${{ fromJSON(matrix.info).BOARD_VARIANT }}/MicroPython_${{ env.MICROPYTHON_VERSION }}-${{ fromJSON(matrix.info).BOARD }}-${{ fromJSON(matrix.info).BOARD_VARIANT }}-N${{ fromJSON(matrix.info).FLASH }}-${{ env.COMPILE_DATE }}.bin
92+
asset_name: MicroPython_${{ env.MICROPYTHON_VERSION }}-${{ fromJSON(matrix.info).BOARD }}-${{ fromJSON(matrix.info).BOARD_VARIANT }}-N${{ fromJSON(matrix.info).FLASH }}-${{ env.COMPILE_DATE }}.bin
93+
tag: MicroPython-${{ env.MICROPYTHON_VERSION }}
94+
body: |
95+
### MicroPython Firmware For ESP32
96+
1. ESP32-NX: ESP32、ESP32-WROOM、ESP32-WROVER、ESP32-SOLO、ESP32-PICO、ESP32-MINI with SPIRAM and xMib Flash
97+
2. ESP32-S3-NX: ESP32-S3、ESP32-S3-WROOM、ESP32-S3-MINI with Octal-SPIRAM and xMib Flash
98+
overwrite: true
99+
100+
Delete_Workflow:
101+
needs: [ MicroPython_ESP32 ]
102+
runs-on: ubuntu-22.04
103+
steps:
104+
- name: Delete workflow runs
105+
uses: Mattraks/delete-workflow-runs@main
106+
with:
107+
retain_days: 0
108+
keep_minimum_runs: 4

config/micropython/mpconfigboard_ESP32.cmake renamed to config/micropython/ESP32_GENERIC.mpconfigboard

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,5 +2,6 @@ set(SDKCONFIG_DEFAULTS
22
boards/sdkconfig.base
33
${SDKCONFIG_IDF_VERSION_SPECIFIC}
44
boards/sdkconfig.ble
5+
boards/sdkconfig.spiram
56
boards/ESP32_GENERIC/sdkconfig.board
67
)
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
set(IDF_TARGET esp32s3)
2+
3+
set(SDKCONFIG_DEFAULTS
4+
boards/sdkconfig.base
5+
${SDKCONFIG_IDF_VERSION_SPECIFIC}
6+
boards/sdkconfig.usb
7+
boards/sdkconfig.ble
8+
boards/sdkconfig.spiram_sx
9+
boards/ESP32_GENERIC_S3/sdkconfig.board
10+
)
File renamed without changes.
File renamed without changes.
File renamed without changes.

config/micropython/sdkconfig_ESP32-S3-N16.board

Lines changed: 0 additions & 9 deletions
This file was deleted.

config/micropython/sdkconfig_ESP32-S3-N4.board

Lines changed: 0 additions & 9 deletions
This file was deleted.

config/micropython/sdkconfig_ESP32-S3-N8.board

Lines changed: 0 additions & 9 deletions
This file was deleted.

0 commit comments

Comments
 (0)