Giter Site home page Giter Site logo

Comments (2)

UncleGrumpy avatar UncleGrumpy commented on July 23, 2024 1

Thank you so much for your quick response! I had previously searched both forums, without finding a answer, before opening this issue. I had originally used the package index url, but had another mistake in my workflow file, and in my confusion, switched to the manual package install (which I now realize would have failed to get the matrix versions correct anyway).

Just switching the url back to using the package index fixed all my problems. Thank you for this project! It will be a real life saver.

from compile-sketches.

per1234 avatar per1234 commented on July 23, 2024

Hi @UncleGrumpy.

Explanation of Problem

This part of your workflow causes the "esp8266" platform to be installed from the Git repository source:

         platforms: |
           - name: esp8266:esp8266
             source-url: https://github.com/esp8266/Arduino.git
             version: ${{ matrix.core.version }}

When you use the standard way of installing the platform, all the tool dependencies are installed along with it via the Boards Manager infrastructure. But when you install it from a Git repository source, no tool dependencies are installed. One of the tool dependencies of the "esp8266" platform is Python. This is the cause of the error you encountered.

There is no possible way for the action to know the arbitrary procedure a platform would need for tool dependencies installation when installed from a repository source so you must configure your workflow to install all dependencies of the platform if you are going to source it from a repository.

Recommended Solution

The best solution will be to simply source the platform from Boards Manager:

          platforms: |
            - name: esp8266:esp8266
              source-url: https://arduino.esp8266.com/stable/package_esp8266com_index.json
              version: ${{ matrix.core.version }}

Sourcing from a Git repository is useful in cases where you want to test against the development version of a platform, but in this case you are only using the release versions of the platform so there is absolutely no benefit to sourcing it from the repository.

Notes re: Using the Repository Source

When it does make sense to use a repository source for a platform, tool dependencies installation is typically accomplish that by installing the release version of the platform sourced from Boards Manager just to get the tool dependencies and then overwrite that installation with the repository sourced platform. You can see an example of that here:

https://github.com/arduino/ArduinoCore-avr/blob/63092126a406402022f943ac048fa195ed7e944b/.github/workflows/compile-platform-examples.yml#L186-L191

          platforms: |
            # Use Boards Manager to install the latest release of the platform to get the toolchain.
            - name: arduino:avr
            # Overwrite the Boards Manager installation with the platform from the repository.
            - source-path: ./
              name: arduino:avr

However, I haven't ever tried that with the "esp8266" platform. The standard way to install the tool dependencies when using a manual installation of that platform is the procedure described here:

https://arduino-esp8266.readthedocs.io/en/latest/installing.html#using-git-version

Providing support for this sort of thing is out of scope for this repository. You can ask over on Arduino Forum or the ESP8266 Forum if you need assistance with that.

from compile-sketches.

Related Issues (20)

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.