Arduino-CI / arduino_ci

Unit testing and Continuous Integration (CI) for Arduino libraries, from a Ruby gem
Apache License 2.0
110 stars 34 forks source link

ESP32 failing to install in CI build #339

Closed ianfixes closed 1 year ago

ianfixes commented 1 year ago

Issue Summary

via email from @RobTillaart:

Errors in this or that FRAM_I2C build:

Error initializing instance: Loading index file: loading json index file /home/runner/.arduino15/package_esp32_index.json: open /home/runner/.arduino15/package_esp32_index.json: no such file or directory

Arduino or Unit Test Code, Illustrating the Problem

https://github.com/RobTillaart/FRAM_I2C/commit/d2a06226f09569258ed166bf98519c287b23a270

hlovdal commented 1 year ago

This is caused by the missing core update-index step I mentioned in this pull request.

I included some other fixes in that branch earlier before v1.4.0 was made. I have now trimmed down my 2021-02-15_rescue.updates branch to just be fixes related to changes that were made on the original 2021-02-15_rescue

I will create separate pull requests for the other stuff.

ianfixes commented 1 year ago

@hlovdal I'm cherry-picking your commits now, and I will keep the contributions although not in their current form. Commenting here for transparency.

In https://github.com/hlovdal/arduino_ci/commit/ad9bc8e02c8a94f09f681200e73a8f3247b73552 I would use the following ruby idioms instead:

      def self.merge_capture_results(args)
-       result = { out: "", err: "", success: true }
-       args.each do |a|
-         result[:out] = result[:out] + a[:out]
-         result[:err] = result[:err] + a[:err]
-         result[:success] = a[:success] unless a[:success]
-       end
-       result
+       {
+          out: args.map { |a| a[:out] }.join(""),
+          err: args.map { |a| a[:err] }.join(""),
+          success: args.all? { |a| a[:success] }
+       }
      end

This code for merge_capture_results is referenced in https://github.com/hlovdal/arduino_ci/commit/50cb640fa2e1bb31c5edbe8507e7b04bef8a01da, but I notice an issue here as well: the install command is not run conditionally on whether update-index succeeds.

I will make the appropriate changes.

And I want to stress that I am very grateful for your help in both diagnosing and patching this issue.