name: ESP32 on: push: branches: [master] paths: - '.github/workflows/esp32.yml' - 'CMakeLists.txt' - 'cmake/**' - 'src/*' - 'src/layer/*' pull_request: branches: [master] paths: - '.github/workflows/esp32.yml' - 'CMakeLists.txt' - 'cmake/**' - 'src/*' - 'src/layer/*' concurrency: group: esp32-${{ github.ref }} cancel-in-progress: true permissions: contents: read jobs: build: name: ESP32 runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: submodules: true - name: Setup Python uses: actions/setup-python@v5 with: python-version: '3.8' - name: Install dependencies run: | sudo apt-get update sudo apt-get install -y cmake ninja-build ccache - name: Checkout ESP-IDF uses: actions/checkout@v4 with: repository: espressif/esp-idf path: esp-idf-install ref: release/v5.3 - name: Install ESP-IDF run: | cd esp-idf-install git submodule update --init --recursive ./install.sh - name: Set environment and build NCNN for ESP32 run: | source esp-idf-install/export.sh echo "IDF_PATH=$IDF_PATH" >> $GITHUB_ENV echo "${IDF_PATH}/tools" >> $GITHUB_PATH echo "${IDF_PATH}/components" >> $GITHUB_PATH mkdir -p build-esp32 && cd build-esp32 cmake -DCMAKE_TOOLCHAIN_FILE="../toolchains/esp32.toolchain.cmake" -DCMAKE_BUILD_TYPE=Release -DNCNN_BUILD_EXAMPLES=OFF .. make -j 4 make install