Update README.md #11
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: ESP32 | |
# https://docs.github.com/en/actions/reference/workflow-syntax-for-github-actions#onschedule | |
on: | |
push: | |
pull_request: | |
paths-ignore: | |
- "examples/**" | |
- "README.md" | |
- "ci/*unix*.sh" | |
- ".github/workflows/build_unix.yml" | |
workflow_dispatch: | |
jobs: | |
tensorflow_micropython_esp32_build: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Checkout repository | |
uses: actions/checkout@v2 | |
- name: Prepare to Build Tensorflow Micropython Firmware for ESP32 | |
run: | | |
git submodule init | |
git submodule update --recursive | |
cd micropython | |
git submodule update --init lib/axtls | |
git submodule update --init lib/berkeley-db-1.xx | |
cd ports/esp32 | |
make BOARD= submodules | |
cd ../../.. | |
cd tflm_esp_kernels | |
git submodule update --init components/esp32-camera | |
git submodule update --init components/esp-nn | |
- name: Get Cache Keys | |
# later get this like this: git ls-remote --heads https://github.com/espressif/esp-idf | |
# this commit is hard-coded in micropython/tools/ci.sh | |
run: | | |
IDF_COMMIT=142bb32c50fa9875b8b69fa539a2d59559460d72 | |
echo "esp-idf-commit=$IDF_COMMIT" >> $GITHUB_ENV | |
TFLM_COMMIT=$(git submodule status tensorflow | awk '{print ($1)}') | |
echo "tflm-commit=$TFLM_COMMIT" >> $GITHUB_ENV | |
# - name: Cache esp-idf | |
# id: cache-esp-idf | |
# uses: actions/cache@v2 | |
# env: | |
# cache-name: cache-esp-idf | |
# with: | |
# path: ./esp-idf | |
# key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.esp-idf-commit }} | |
- name: Setup IDF | |
# if: steps.cache-esp-idf.outputs.cache-hit != 'true' | |
run: | | |
source ./micropython/tools/ci.sh && ci_esp32_setup_helper v4.3.1 | |
- name: Cache tflm | |
id: cache-tflm | |
uses: actions/cache@v2 | |
env: | |
cache-name: cache-tflm | |
with: | |
path: ./micropython-modules/microlite/tflm | |
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ env.tflm-commit }} | |
- name: Setup Build for Tensorflow | |
# if: steps.cache-tflm.outputs.cache-hit != 'true' | |
run: | | |
source ./esp-idf/export.sh | |
pip3 install Pillow | |
pip3 install Wave | |
echo "Regenerating microlite/tfm directory" | |
rm -rf ./micropython-modules/microlite/tflm | |
cd ./tensorflow | |
../micropython-modules/microlite/prepare-tflm-esp.sh | |
- name: Build micropython cross compiler | |
run: | | |
source ./esp-idf/export.sh | |
cd ./micropython | |
echo "make -C mpy-cross V=1 clean all" | |
make -C mpy-cross V=1 clean all | |
- name: Build standard non-psram 4MB Flash firmware | |
run: | | |
source ./esp-idf/export.sh | |
echo "cd ./boards/esp32/MICROLITE" | |
cd ./boards/esp32/MICROLITE | |
echo "Building MICROLITE" | |
rm -rf builds | |
idf.py clean build | |
../../../micropython-modules/microlite/assemble-unified-image-esp.sh \ | |
../../../micropython/ports/esp32 | |
- name: Archive ESP32-MICROLITE firmware | |
uses: actions/[email protected] | |
with: | |
name: microlite-esp32-firmware | |
path: | | |
boards/esp32/MICROLITE/build/firmware.bin | |
- name: Build with psram support and 16MB Flash firmware | |
run: | | |
source ./esp-idf/export.sh | |
echo "cd ./boards/esp32/MICROLITE_SPIRAM_16M" | |
cd ./boards/esp32/MICROLITE_SPIRAM_16M | |
echo "Building MICROLITE_SPIRAM_16M" | |
rm -rf build | |
idf.py clean build | |
../../../micropython-modules/microlite/assemble-unified-image-esp.sh \ | |
../../../micropython/ports/esp32 | |
- name: Archive ESP32-MICROLITE-SPIRAM-16M firmware | |
uses: actions/[email protected] | |
with: | |
name: microlite-spiram-16m-esp32-firmware | |
path: | | |
boards/esp32/MICROLITE_SPIRAM_16M/build/firmware.bin | |
- name: Build with psram support | |
run: | | |
source ./esp-idf/export.sh | |
echo "cd ./boards/esp32/MICROLITE_SPIRAM" | |
cd ./boards/esp32/MICROLITE_SPIRAM | |
echo "Building MICROLITE_SPIRAM" | |
rm -rf build | |
idf.py clean build | |
../../../micropython-modules/microlite/assemble-unified-image-esp.sh \ | |
../../../micropython/ports/esp32 | |
- name: Archive ESP32-MICROLITE-SPIRAM firmware | |
uses: actions/[email protected] | |
with: | |
name: microlite-spiram-esp32-firmware | |
path: | | |
boards/esp32/MICROLITE_SPIRAM/build/firmware.bin | |
- name: Build MICROLITE_SPIRAM_CAM | |
run: | | |
source ./esp-idf/export.sh | |
echo "cd ./boards/esp32/MICROLITE_SPIRAM_CAM" | |
cd ./boards/esp32/MICROLITE_SPIRAM_CAM | |
echo "Building MICROLITE_SPIRAM_CAM" | |
rm -rf builds | |
idf.py clean build | |
../../../micropython-modules/microlite/assemble-unified-image-esp.sh \ | |
../../../micropython/ports/esp32 | |
- name: Archive ESP32-MICROLITE_SPIRAM_CAM firmware | |
uses: actions/[email protected] | |
with: | |
name: microlite-spiram-cam-esp32-firmware | |
path: | | |
boards/esp32/MICROLITE_SPIRAM_CAM/build/firmware.bin |