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 containing the project" default: "." required: false esp_idf_version: default: "latest" required: false esp_idf_docker_image: default: "espressif/idf" required: false extra_docker_args: default: "" required: false target: default: "esp32" required: false command: default: "idf.py build" required: false runs: using: "composite" steps: - shell: bash env: INPUT_PATH: ${{ inputs.path }} INPUT_TARGET: ${{ inputs.target }} INPUT_VERSION: ${{ inputs.esp_idf_version }} INPUT_IMAGE: ${{ inputs.esp_idf_docker_image }} INPUT_EXTRA: ${{ inputs.extra_docker_args }} INPUT_COMMAND: ${{ inputs.command }} run: | set -euo pipefail IDF_TARGET=$(echo "$INPUT_TARGET" | tr '[:upper:]' '[:lower:]' | tr -d '_-') echo "Workspace: $GITHUB_WORKSPACE" ls -la "$GITHUB_WORKSPACE" # sanity check: is the checkout actually there? docker run --rm -t \ -e IDF_TARGET="$IDF_TARGET" \ -v "$GITHUB_WORKSPACE":/project \ -w "/project/${INPUT_PATH}" \ $INPUT_EXTRA \ "${INPUT_IMAGE}:${INPUT_VERSION}" \ /bin/bash -c "git config --global --add safe.directory '*' && ${INPUT_COMMAND}"