-
Notifications
You must be signed in to change notification settings - Fork 2
Description
Checklist
- Checked the issue tracker for similar issues to ensure this is not a duplicate.
- Described the feature in detail and justified the reason for the request.
- Provided specific use cases and examples.
Feature description
A GitHub Action to automate the installation of the ESP-IDF framework on GitHub-hosted runners. The action should support multiple operating systems (Windows, macOS, and Linux) and allow users to customize the ESP-IDF version and installation paths.
Requirements
The GitHub Action should meet the following requirements:
-
Compatibility
The action must modify the GitHub-hosted runner on which it is executed. It should be compatible with all standard runners available for managed GitHub Actions, as described in the official documentation:
GitHub-hosted runners. -
Installation Tool
The action should use the idf-im-cli tool for installing ESP-IDF.
Inputs
The action should accept the following optional inputs:
| Input Name | Description | Default Value |
|---|---|---|
esp_idf_version |
Specifies the version of ESP-IDF to install. If unspecified, the latest released version will be installed. | Latest released version |
esp_idf_path |
Specifies the installation path for ESP-IDF. | /opt/esp/idf on POSIX systems, C:\esp\idf on Windows |
esp_idf_tools_path |
Specifies the path for ESP-IDF tools. | /opt/esp on POSIX systems |
This Dockerfile can be used as a general reference for the steps required to install ESP-IDF:
Dockerfile: eim-idf-build-docker
Use cases
Espressif already provides the action which allows building ESP-IDF projects and running other ESP-IDF commands in a docker container on Linux. For most of the simple use cases, it's sufficient.
However, some more sophisticated components and projects may contain logic in their build scripts which need to be tested to run on all majors operating systems: macOS, Linux and Windows. In this case, it's necessary to install ESP-IDF directly to the runner, but because of system requirements it can be nontrivial.
Alternatives
No response
Additional context
No response