Code Monkey home page Code Monkey logo

esp-idf-ci-action's Introduction

esp-idf-ci-action

GitHub Action for ESP32 CI

Usage

Workflow definition

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
    - name: Checkout repo
      uses: actions/checkout@v2
      with:
        submodules: 'recursive'
    - name: esp-idf build
      uses: espressif/esp-idf-ci-action@v1
      with:
        esp_idf_version: v4.4
        target: esp32s2
        path: 'esp32-s2-hmi-devkit-1/examples/smart-panel'

Version

We recommend referencing this action as espressif/esp-idf-ci-action@v1 and using v1 instead of main to avoid breaking your workflows. v1 tag always points to the latest compatible release.

Parameters

path

Path to the project to be built relative to the root of your repository.

esp_idf_version

The version of ESP-IDF for the action. Default value latest.

It must be one of the tags from Docker Hub: https://hub.docker.com/r/espressif/idf/tags

More information about supported versions of ESP-IDF: https://docs.espressif.com/projects/esp-idf/en/latest/esp32/versions.html#support-periods

target

Type of ESP32 to build for. Default value esp32.

The value must be one of the supported ESP-IDF targets as documented here: https://github.com/espressif/esp-idf#esp-idf-release-and-soc-compatibility

command

Optional: Specify the command that will run as part of this GitHub build step.

Default: idf.py build

Overriding this is useful for running other commands via github actions. Example:

command: esptool.py merge_bin -o ../your_final_output.bin @flash_args

esp-idf-ci-action's People

Contributors

atanisoft avatar binary1230 avatar fishwaldo avatar georgik avatar jdoubleu avatar kumekay avatar sebastianpsm avatar tomassebestik avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

esp-idf-ci-action's Issues

Using path corrupts git describe (RDT-344)

Problem

Using the path parameter will set the working directory for the docker container to this set path.

Example file structure

  • Project
    • .git
    • sub-folder
      • src
      • CMakeLists.txt
      • ...
    • ...

If now the sub-folder is used as "path" parameter, the .git folder will not be visible inside the docker container. This will lead to different behavior then running the "idf.py build" command directly, as in the normal herachie the "git describe --tags" command will also search in parent folders.

Fix

Add a second parameter, to specify "working-dir" and "build-path" to do some kind of using the "working-dir" as volume for docker, but then run "cd build-path" inside the docker container. Don't know how to simply do this inside this extension, but might need to update the docker image as well.

[Question] Target multiple paths (RDT-808)

I have multiple projects that use one component.

project home
 - component
 - path1
   -  CMakeLists.txt
   -  sdkconfig
   -  main
     - CMakeLists.txt
     - main.c
 - path2
   -  CMakeLists.txt
   -  sdkconfig
   -  main
     - CMakeLists.txt
     - main.c
 - path3
   -  CMakeLists.txt
   -  sdkconfig
   -  main
     - CMakeLists.txt
     - main.c

How can I target multiple paths?

I tried the following, but an error occurred.

      matrix:
        idf_version:
          - release-v4.4
          - release-v5.0
          - release-v5.1
        idf_target:
          - esp32
          - esp32s2
        idf_path:
          - path1
          - path2
          - path3

    runs-on: ubuntu-latest
    steps:
    - name: Checkout repo
      uses: actions/checkout@v4
      with:
        submodules: 'recursive'
    - name: Build Application with ESP-IDF
      uses: espressif/esp-idf-ci-action@v1
      with:
        esp_idf_version: ${{ matrix.idf_version }}
        target: ${{ matrix.idf_target }}
        path: ${{ matrix.idf_path }}

Using custom partition table alter the build folder access (RDT-440)

I have the following action in my Github repository for esp32 project

name: Build firmware

on:
  push:
    branches: [master]

jobs:
  build:

    runs-on: ubuntu-latest

    steps:
      - name: Checkout repo
        uses: actions/checkout@v3
        with:
          submodules: 'recursive'
          fetch-depth: 0 
      - name: esp-idf build
        uses: espressif/esp-idf-ci-action@v1
        with:
          esp_idf_version: v4.3
          target: esp32
          
      - name: Get latest tag name
        id: version_value
        run: |
          tag=$(git describe --tags --abbrev=0 --match "v*")
          echo "value=${tag:1}" >> $GITHUB_OUTPUT
      - name: folder settings
        run: ls -l /
      
      - name: build folder settings
        run: ls -l build

      - name: Build and Export Binaries
        env:
          version_value: ${{ steps.version_value.outputs.value }} 
        run: |
          sudo chmod a+w build
          mv build/*.bin build/"${version_value}".bin
          cp build/*.bin ${{github.workspace}}/
          
        working-directory: ${{github.workspace}}

      - name: Upload Artifacts
        uses: actions/upload-artifact@v3
        with:
          name: ESP-IDF Binaries
          path: |
            *.bin

This works well and I can see the artifacts when using the default sdkconfig ( partition table only )

#
# Partition Table
#
CONFIG_PARTITION_TABLE_SINGLE_APP=y
# CONFIG_PARTITION_TABLE_TWO_OTA is not set
# CONFIG_PARTITION_TABLE_CUSTOM is not set
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_FILENAME="partitions_singleapp.csv"
CONFIG_PARTITION_TABLE_OFFSET=0x8000
CONFIG_PARTITION_TABLE_MD5=y
# end of Partition Table

Changing the above part to

#
# Partition Table
#
# CONFIG_PARTITION_TABLE_SINGLE_APP is not set
# CONFIG_PARTITION_TABLE_TWO_OTA is not set
CONFIG_PARTITION_TABLE_CUSTOM=y
CONFIG_PARTITION_TABLE_CUSTOM_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_FILENAME="partitions.csv"
CONFIG_PARTITION_TABLE_OFFSET=0x8000
CONFIG_PARTITION_TABLE_MD5=y
# end of Partition Table

I get the following error

STEP : Build and Export Binaries

Run sudo chmod a+w build
  sudo chmod a+w build
  mv build/*.bin build/"${version_value}".bin
  cp build/*.bin /home/runner/work/esp_idf_build_test/esp_idf_build_test/
  shell: /usr/bin/bash -e {0}
  env:
    version_value: 0.0.[2](https://github.com/DDANPEAL/esp_idf_build_test/actions/runs/4671260641/jobs/8272013396#step:7:2)
mv: target 'build/0.0.2.bin' is not a directory
Error: Process completed with exit code 1.

I'm not sure how further I can investigate this !
I check folders permission for when it fails or success and didn't see any changes

Difficulty Accessing Private GitHub Repo with IDF Component Manager in CI Pipeline (RDT-637)

Hello,

I'm encountering an issue with espressif/esp-idf-ci-action@v1 while trying to build a project in my CI pipeline. The project uses the IDF Component Manager to fetch a component from a private GitHub repository.

Despite several attempts, I'm unable to grant access to the private repository for the IDF Component Manager running on GitHub. I've tried methods similar to those discussed in this forum post, including using ssh-agent and configuring known_hosts, but to no avail.

Could you please clarify:

  1. Is espressif/esp-idf-ci-action designed to support accessing private repositories through the IDF Component Manager using idf_component.yml?
    ## IDF Component Manager Manifest File
    dependencies:
      espressif/button: "^2.5.0"
      ## Required IDF version
      idf:
        version: ">=4.1.0"
    
      # For components in git repository:
      esp_arithmetic:
        path: "./component_add"
        version: "*"
        git: "[email protected]:kaspernyhus/multi_component_test.git"
  2. If supported, could you provide guidance or examples on how to configure this correctly?

FreeRTOS directory cannot be found

Hi.

I am having some issues while running the CI. My workflow has the following action:

  • name: Esp-idf build
    continue-on-error: true
    uses: espressif/esp-idf-ci-action@main
    with:
    target: esp32
    esp_idf_version: v4.3.2
    path: "wifi-project/"

Then I get the following error during the action execution:

CMake Error at /opt/esp/idf/tools/cmake/component.cmake:305 (message): Include directory '/SysGCC/esp32/esp-idf/v4.3.2/components/freertos/include/freertos' is not a directory.

In fact, this path is included automatically in the CMakeLists.txt as set(COMPONENT_PRIV_INCLUDEDIRS ../../../../../../SysGCC/esp32/esp-idf/v4.3.2/components/freertos/include/freertos) (I am using some freeRTOS functions).

Add ability to specify ESP32 target

Currently there is no way to specify the ESP32 type (esp32, esp32s2, esp32c3, esp32s3, etc). It would be great to have this ability built-in as an input with a default value of "esp32"

Unable to give custom path to build (RDT-536)

I am checking out my code to a specific folder and when I give the same folder to the action's path, it appends some stuff to it.

This is my action.yaml

- name: Checkout Application Code
  uses: actions/checkout@v3
  with:
    path: ${{ github.workspace }}/application

- name: esp-idf build
  uses: espressif/esp-idf-ci-action@v1
  with:
    esp_idf_version: v5.1
    target: esp32c3
    path: ${{ github.workspace }}/application

- name: Upload build
  uses: actions/upload-artifact@v3
  with:
    name: FirmwareFiles
    path: ${{ github.workspace }}/application/build/app_name.bin

And during the build process it's not able to find it and says this

CMakeLists.txt not found in project directory /app/my_username/app_name/home/runner/work/app_name/app_name/application

So as I see it, it is appending /app/my_username/app_name to ${{ github.workspace }}/application

Run command inside container before compilation

Proposal

Add a pre-build hook, which allows it to run a script inside the container before the build.

Use-case

My use-case is that I submitted a fix to the ESP IDF, but that I need to wait for the fix to be merged. Until then I am basically blocked from using this CI action.

My patchfile looks as shown below and could be applied at the root of the esp-idf via patch -s -p0 < idfgh-6944.patch. I can however not figure out how to apply a patch to the esp-idf inside the container before running the compilation.

--- components/esp_http_client/esp_http_client.c	2022-03-17 08:40:29.726433947 +0000
+++ components/esp_http_client/esp_http_client.c.patch	2022-03-17 08:40:19.238269499 +0000
@@ -512,6 +512,10 @@
     client->process_again = 0;
     client->response->data_process = 0;
     client->first_line_prepared = false;
+    if (client->location != NULL) {
+            free(client->location);
+            client->location = NULL;
+    }
     http_parser_init(client->parser, HTTP_RESPONSE);
     if (client->connection_info.username) {
         char *auth_response = NULL;

docker: command not found Error: Process completed with exit code 127. (RDT-459)

I'm building my first CI for GitHub Action and I have problem with building the code.

name: Build

on: [push, pull_request, workflow_dispatch]

jobs:
  build-esp-idf-component:
    name: Build with ESP-IDF ${{ matrix.idf_ver }} for ${{ matrix.idf_target }}
    runs-on: ubuntu-latest
    strategy:
      matrix:
        # The version names here correspond to the versions of espressif/idf Docker image.
        # See https://hub.docker.com/r/espressif/idf/tags and
        # https://docs.espressif.com/projects/esp-idf/en/latest/esp32/api-guides/tools/idf-docker-image.html
        # for details.
        idf_ver: ["v4.4.4", "release-v4.4"]
        idf_target: ["esp32"]
    container: espressif/idf:${{ matrix.idf_ver }}
    steps:
      - name: Checkout
        uses: actions/checkout@v3
        with:
          submodules: 'recursive'
      - name: esp-idf build
        uses: espressif/esp-idf-ci-action@v1
        with:
            esp_idf_version: ${{ matrix.idf_ver }}
            target: ${{ matrix.idf_target }}
            path: 'main'

as an output from logs I receive:

Run espressif/esp-idf-ci-action@v1
  with:
    esp_idf_version: v4.4.4
    target: esp3[2](https://github.com/NightSkySK/mSpaceLock-device/actions/runs/5159853265/jobs/9295278237#step:4:2)
    path: main
    command: idf.py build
Run export IDF_TARGET=$(echo "esp[3](https://github.com/NightSkySK/mSpaceLock-device/actions/runs/5159853265/jobs/9295278237#step:4:3)2" | tr '[:upper:]' '[:lower:]' | tr -d '_-')
  export IDF_TARGET=$(echo "esp32" | tr '[:upper:]' '[:lower:]' | tr -d '_-')
  docker run -t -e IDF_TARGET="${IDF_TARGET}" -v "${GITHUB_WORKSPACE}:/app/NightSkySK/mSpaceLock-device" \
  -w "/app/NightSkySK/mSpaceLock-device/main" espressif/idf:v[4](https://github.com/NightSkySK/mSpaceLock-device/actions/runs/5159853265/jobs/9295278237#step:4:4).4.4 \
  /bin/bash -c 'git config --global --add safe.directory "*" && idf.py build'
  shell: bash --noprofile --norc -e -o pipefail {0}
/__w/_temp/43fd[5](https://github.com/NightSkySK/mSpaceLock-device/actions/runs/5159853265/jobs/9295278237#step:4:5)74a-8b[6](https://github.com/NightSkySK/mSpaceLock-device/actions/runs/5159853265/jobs/9295278237#step:4:6)9-4abc-8986-5b3b2e88aca5.sh: line 2: docker: command not found
Error: Process completed with exit code 12[7](https://github.com/NightSkySK/mSpaceLock-device/actions/runs/5159853265/jobs/9295278237#step:4:8).

What I did wrong? The same output I got on `release-v4.4'

CMakeLists.txt not found in project directory (RDT-757)

Hi,
I am facing the issue CMakeLists.txt not found in project directory

  • name: Build compile_commands.json
    uses: espressif/esp-idf-ci-action@v1
    with:
    esp_idf_version: ${{ matrix.idf_ver }}
    target: ${{ matrix.idf_target }}
    path: ${{ github.workspace }}

Here path is specified as ${{ github.workspace }} but i got this error like CMakeLists.txt not found in project directory /app/repo_name/home/runner/work/repo_name/repo_name.

Actuall Error: CMakeLists.txt not found in project directory /app/epneo/FW_IG_AIR/home/runner/work/FW_IG_AIR/FW_IG_AIR

Why is not taking from the specified path??

Working Dir Not found (RDT-439)

compilation fails due dir not found, my structure
lets say the company name is "company"

projectA
- components
- a
- b
- main

Inside "a" I have CMakeLists.txt with some file lets say "main2.c"
when I compile it fails because it cannot find dir "/app/company/ProjectA/components/a/main2.c"

Because the file is actually in "./ProjectA/components/a/main2.c"

it seems like the docker current dir (.) is "/app/company" which causes problems.

Thanks

Add support for parametrized build

Current version of the action executes just idf.py build.
It's not possible to pass any specific options or commands to the build process.

Add possibility to specify options which are then passed to the container.
This can be solved by adding another record to inputs in action.yml

A lot of blank lines when running build (RDT-359)

Is there a reason there are so many blank lines when running this action? All in all this action outputs around ~1k lines, most of them blank. It makes it hard to inspect the output

image

Setup:

Self-hosted on ubuntu (rpi)

Workflow:

jobs:
  build:
    steps:
      - name: ESP-IDF Build
        uses: espressif/esp-idf-ci-action@v1
        with:
          esp_idf_version: v5.0
          target: esp32s2
          path: '.'

Cannot access build output from GitHub host runner

Hi,
I couldn't find a way to access the output file of my build from the GitHub host runner, as I need to upload it to AWS S3.

Should I mount a Docker volume (shared between the Esp Idf Docker image and the GitHub host runner) and run the Docker image manually without using this GitHub action at all?

My yml file is:

name: production

on:
  push:
    branches: [main]

jobs:
  build:
    runs-on: ubuntu-latest
    permissions:
      id-token: write
      contents: read

    steps:
      - uses: actions/checkout@v2

      - name: Configure AWS Credentials
        uses: aws-actions/configure-aws-credentials@v1
        with:
          role-to-assume: arn:aws:iam::XXXXXXXXXXX:role/GitHubActionsRole
          aws-region: us-east-1

      - name: esp-idf build
        uses: espressif/esp-idf-ci-action@main
        with:
          esp_idf_version: v4.4
          command: idf.py build
          target: esp32


      - name: Push to AWS S3
        run: aws s3api put-object --bucket electronica-builds-production --key folder/output-file.bin --body /app/build/output-file.bin

Obviously, the aws command won't work because the /app/build/output-file.bin file refers to the Docker image directory.

Thanks in advance!

Errors across all images (RDT-773)

I have added the following my Github actions

- uses: espressif/esp-idf-ci-action@v1
      with:
        esp_idf_version: v5.0.4
        target: esp32s3

I need to perform multiple builds, so the "command" parameter is completely useless to me and it defaulting to running idf.py build causes problems. I do not call idf.py at all in my build and because I am building several times I should be able to have it work properly without specifying a build command. I just need it to install everything, set the board and run export. Nothing more.

Ubuntu 22.04 image

Run espressif/esp-idf-ci-action@v1
  with:
    esp_idf_version: v5.0.4
    target: esp32s3
    command: idf.py build
  env:
    pythonLocation: /Users/runner/hostedtoolcache/Python/3.10.11/arm64
    PKG_CONFIG_PATH: /Users/runner/hostedtoolcache/Python/3.10.11/arm64/lib/pkgconfig
    Python_ROOT_DIR: /Users/runner/hostedtoolcache/Python/3.10.11/arm64
    Python2_ROOT_DIR: /Users/runner/hostedtoolcache/Python/3.10.11/arm64
    Python3_ROOT_DIR: /Users/runner/hostedtoolcache/Python/3.10.11/arm64
Run export IDF_TARGET=$(echo "esp32s3" | tr '[:upper:]' '[:lower:]' | tr -d '_-')
  export IDF_TARGET=$(echo "esp32s3" | tr '[:upper:]' '[:lower:]' | tr -d '_-')
  docker run -t -e IDF_TARGET="${IDF_TARGET}" -v "${GITHUB_WORKSPACE}:/app/kdschlosser/lvgl_micropython" \
  -w "/app/kdschlosser/lvgl_micropython/" espressif/idf:v5.0.4 \
  /bin/bash -c 'git config --global --add safe.directory "*" && idf.py build'
  shell: /bin/bash --noprofile --norc -e -o pipefail {0}
  env:
    pythonLocation: /Users/runner/hostedtoolcache/Python/3.10.11/arm64
    PKG_CONFIG_PATH: /Users/runner/hostedtoolcache/Python/3.10.11/arm64/lib/pkgconfig
    Python_ROOT_DIR: /Users/runner/hostedtoolcache/Python/3.10.11/arm64
    Python2_ROOT_DIR: /Users/runner/hostedtoolcache/Python/3.10.11/arm64
    Python3_ROOT_DIR: /Users/runner/hostedtoolcache/Python/3.10.11/arm64
/Users/runner/work/_temp/2ac0c02b-13e7-4e61-8725-651d91167d83.sh: line 2: docker: command not found
Error: Process completed with exit code 127.

Windows (latest)

Run espressif/esp-idf-ci-action@v1
Run export IDF_TARGET=$(echo "esp32s3" | tr '[:upper:]' '[:lower:]' | tr -d '_-')
Unable to find image 'espressif/idf:v5.0.4' locally
v5.0.4: Pulling from espressif/idf
docker: no matching manifest for windows/amd64 10.0.20348 in the manifest list entries.
See 'docker run --help'.
Error: Process completed with exit code 125.

macOS (latest)

Run espressif/esp-idf-ci-action@v1
Run export IDF_TARGET=$(echo "esp32s3" | tr '[:upper:]' '[:lower:]' | tr -d '_-')
/Users/runner/work/_temp/2ac0c02b-13e7-4e61-8725-651d91167d83.sh: line 2: docker: command not found
Error: Process completed with exit code 127.

Is only Linux supported? There is nothing that states it is only supported when using the Ubuntu image. I am not sure why it is not working properly for any image.

Clean up old releases and tags (RDT-748)

At the time of writing this repository has 5 releases, listed newest to oldest:
v1.1.0
v1.0.0
rust-latest
v4.3
v4.2.1

Dependency tracking tools like Dependabot identify the old v4.x releases as newer than the latest v1.1.0 release, because the semantic version is greater.

Can the old releases and tags be deleted, to keep consistency with the newer v1.x releases?

question regarding the esp_idf_version (RDT-553)

In regards to the versioning, it is always confusing. The docker-tagged versions are not proper, the versions are random with no proper reference to the release of esp-idf, which makes it really hard to rely on the docker image tag. If anyone knows how the version is supposed to be interpreted with esp-idf and the docker tags please do let me know. I'm in the stage to drop using the docker image and make a custom one.

Issue resolving IDF dependencies (RDT-532)

Hi ๐Ÿ‘‹ I am attempting to setup CI for my project and it keeps failing when I get to the step of resolving dependencies. It appears to work just fine on my local machine but it fails to resolve the dependencies on the runner.

idf_components.yml

## IDF Component Manager Manifest File
dependencies:
  espressif/esp_tinyusb: "~1.3.1"
  ## Required IDF version
  idf:
    version: ">=4.1.0"
  # # Put list of dependencies here
  # # For components maintained by Espressif:
  # component: "~1.0.0"
  # # For 3rd party components:
  # username/component: ">=1.0.0,<2.0.0"
  # username2/component2:
  #   version: "~1.0.0"
  #   # For transient dependencies `public` flag can be set.
  #   # `public` flag doesn't have an effect dependencies of the `main` component.
  #   # All dependencies of `main` are public by default.
  #   public: true

github workflow file

- name: ESP-IDF build
        uses: espressif/esp-idf-ci-action@v1
        with:
            esp_idf_version: v4.4
            target: esp32s3
            command: idf.py @profiles/debug build && idf.py @profiles/release build && idf.py @profiles/factory_test build

CI Build error

Solving dependencies requirements
CMake Error at /opt/esp/idf/tools/cmake/build.cmake:455 (message):
  Traceback (most recent call last):
    File "/usr/lib/python3.8/runpy.py", line 194, in _run_module_as_main
      return _run_code(code, main_globals, None,
    File "/usr/lib/python3.8/runpy.py", line 87, in _run_code
      exec(code, run_globals)
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/idf_component_manager/prepare_components/__main__.py", line 3, in <module>
      main()
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/idf_component_manager/prepare_components/prepare.py", line 110, in main
      args.func(args)
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/idf_component_manager/prepare_components/prepare.py", line 37, in prepare_dep_dirs
      ComponentManager(args.project_dir).prepare_dep_dirs(
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/idf_component_manager/core.py", line 325, in prepare_dep_dirs
      downloaded_component_paths = download_project_dependencies(
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/idf_component_manager/dependencies.py", line 36, in download_project_dependencies
      solution = solver.solve()
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/idf_component_manager/version_solver/version_solver.py", line 28, in solve
      self.solve_manifest(manifest)
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/idf_component_manager/version_solver/version_solver.py", line 47, in solve_manifest
      self.solve_component(requirement)
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/idf_component_manager/version_solver/version_solver.py", line 62, in solve_component
      self.solve_component(dep)
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/idf_component_manager/version_solver/version_solver.py", line 50, in solve_component
      cmp_with_versions = requirement.source.versions(
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/idf_component_tools/sources/web_service.py", line 96, in versions
      cmp_with_versions = self.api_client.versions(name, spec, target)
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/idf_component_tools/api_client.py", line 193, in versions
      if semantic_spec.match(Version(version['version'])):
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/semantic_version/base.py", line [105](https://github.com/astrohaus/alpha-prod-firmware/actions/runs/5954267780/job/16150434384#step:4:107), in __init__
      major, minor, patch, prerelease, build = self.parse(version_string, partial)
    File "/opt/esp/python_env/idf4.4_py3.8_env/lib/python3.8/site-packages/semantic_version/base.py", line 311, in parse
      raise ValueError('Invalid version string: %r' % version_string)
  ValueError: Invalid version string: '0.15.0~2'
Call Stack (most recent call first):
  /opt/esp/idf/tools/cmake/project.cmake:378 (idf_build_process)
  CMakeLists.txt:5 (project)
-- Configuring incomplete, errors occurred!

esp-idf-ci-action doesn't integrate with the rest of the build system (RDT-242)

I'm trying to build a project that uses esp-idf for the primary build. This project additionally uses python and nodejs in order to generate and compress web pages.

I have actions in my build script that install these projects using the official actions, however these are not picked up by the esp-idf project, and the failure is somewhat opaque.

This action should integrate with the rest of the builders, and allow the usage of other steps in the build process.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.