name: "Espressif IoT Development Framework (ESP-IDF)" description: "This action builds your firmware for ESP32 directly in GitHub using Espressif ESP-IDF Docker image." branding: color: red icon: wifi inputs: path: description: "Relative path under $GITHUB_WORKSPACE to place the repository" default: "" required: false esp_idf_version: description: "Version of ESP-IDF docker image to use" default: "latest" required: false esp_idf_docker_image: description: "Docker Repository to obtain the ESP-IDF image from" default: "espressif/idf" required: false extra_docker_args: description: "Additional arguments to pass to the docker run command" default: "" required: false target: description: "ESP32 variant to build for" default: "esp32" required: false command: description: "Command to run inside the docker container (default: builds the project)" default: "idf.py build" required: false runs: using: "composite" steps: - run: | export IDF_TARGET=$(echo "${{ inputs.target }}" | tr '[:upper:]' '[:lower:]' | tr -d '_-') docker run -t \ -e IDF_TARGET="${IDF_TARGET}" \ -v ${GITHUB_WORKSPACE}:/app/${{ github.repository }} \ -w /app/${{ github.repository }}/${{ inputs.path }} \ ${{ inputs.extra_docker_args }} \ ${{ inputs.esp_idf_docker_image }}:${{ inputs.esp_idf_version }} \ /bin/bash -c 'git config --global --add safe.directory "*" && ${{ inputs.command }}' shell: bash