arduino_ci 0.1.0 → 1.6.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (341) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +192 -18
  3. data/REFERENCE.md +715 -0
  4. data/cpp/arduino/Arduino.cpp +2 -0
  5. data/cpp/arduino/Arduino.h +71 -0
  6. data/cpp/arduino/ArduinoDefines.h +112 -0
  7. data/cpp/arduino/AvrMath.h +126 -0
  8. data/cpp/arduino/Client.h +46 -0
  9. data/cpp/arduino/EEPROM.h +64 -0
  10. data/cpp/arduino/Godmode.cpp +122 -0
  11. data/cpp/arduino/Godmode.h +252 -0
  12. data/cpp/arduino/HardwareSerial.h +63 -0
  13. data/cpp/arduino/IPAddress.h +59 -0
  14. data/cpp/arduino/MockEventQueue.h +86 -0
  15. data/cpp/arduino/PinHistory.h +200 -0
  16. data/cpp/arduino/Print.h +68 -0
  17. data/cpp/arduino/Printable.h +8 -0
  18. data/cpp/arduino/SPI.h +158 -0
  19. data/cpp/arduino/Server.h +5 -0
  20. data/cpp/arduino/SoftwareSerial.h +80 -0
  21. data/cpp/arduino/Stream.h +213 -0
  22. data/cpp/arduino/Udp.h +27 -0
  23. data/cpp/arduino/WCharacter.h +96 -0
  24. data/cpp/arduino/WString.h +195 -0
  25. data/cpp/arduino/Wire.h +258 -0
  26. data/cpp/arduino/avr/CPPLINT.cfg +3 -0
  27. data/cpp/arduino/avr/README.md +3 -0
  28. data/cpp/arduino/avr/common.h +333 -0
  29. data/cpp/arduino/avr/fuse.h +274 -0
  30. data/cpp/arduino/avr/interrupt.h +7 -0
  31. data/cpp/arduino/avr/io.h +652 -0
  32. data/cpp/arduino/avr/io1200.h +274 -0
  33. data/cpp/arduino/avr/io2313.h +385 -0
  34. data/cpp/arduino/avr/io2323.h +210 -0
  35. data/cpp/arduino/avr/io2333.h +461 -0
  36. data/cpp/arduino/avr/io2343.h +214 -0
  37. data/cpp/arduino/avr/io43u32x.h +440 -0
  38. data/cpp/arduino/avr/io43u35x.h +432 -0
  39. data/cpp/arduino/avr/io4414.h +500 -0
  40. data/cpp/arduino/avr/io4433.h +489 -0
  41. data/cpp/arduino/avr/io4434.h +588 -0
  42. data/cpp/arduino/avr/io76c711.h +499 -0
  43. data/cpp/arduino/avr/io8515.h +501 -0
  44. data/cpp/arduino/avr/io8534.h +217 -0
  45. data/cpp/arduino/avr/io8535.h +589 -0
  46. data/cpp/arduino/avr/io86r401.h +309 -0
  47. data/cpp/arduino/avr/io90pwm1.h +1157 -0
  48. data/cpp/arduino/avr/io90pwm161.h +918 -0
  49. data/cpp/arduino/avr/io90pwm216.h +1225 -0
  50. data/cpp/arduino/avr/io90pwm2b.h +1466 -0
  51. data/cpp/arduino/avr/io90pwm316.h +1272 -0
  52. data/cpp/arduino/avr/io90pwm3b.h +1466 -0
  53. data/cpp/arduino/avr/io90pwm81.h +1036 -0
  54. data/cpp/arduino/avr/io90pwmx.h +1415 -0
  55. data/cpp/arduino/avr/io90scr100.h +1719 -0
  56. data/cpp/arduino/avr/ioa5272.h +803 -0
  57. data/cpp/arduino/avr/ioa5505.h +803 -0
  58. data/cpp/arduino/avr/ioa5702m322.h +2591 -0
  59. data/cpp/arduino/avr/ioa5782.h +1843 -0
  60. data/cpp/arduino/avr/ioa5790.h +907 -0
  61. data/cpp/arduino/avr/ioa5790n.h +922 -0
  62. data/cpp/arduino/avr/ioa5791.h +923 -0
  63. data/cpp/arduino/avr/ioa5795.h +756 -0
  64. data/cpp/arduino/avr/ioa5831.h +1949 -0
  65. data/cpp/arduino/avr/ioa6285.h +740 -0
  66. data/cpp/arduino/avr/ioa6286.h +740 -0
  67. data/cpp/arduino/avr/ioa6289.h +847 -0
  68. data/cpp/arduino/avr/ioa6612c.h +795 -0
  69. data/cpp/arduino/avr/ioa6613c.h +795 -0
  70. data/cpp/arduino/avr/ioa6614q.h +798 -0
  71. data/cpp/arduino/avr/ioa6616c.h +865 -0
  72. data/cpp/arduino/avr/ioa6617c.h +865 -0
  73. data/cpp/arduino/avr/ioa664251.h +857 -0
  74. data/cpp/arduino/avr/ioa8210.h +1843 -0
  75. data/cpp/arduino/avr/ioa8510.h +1949 -0
  76. data/cpp/arduino/avr/ioat94k.h +565 -0
  77. data/cpp/arduino/avr/iocan128.h +100 -0
  78. data/cpp/arduino/avr/iocan32.h +100 -0
  79. data/cpp/arduino/avr/iocan64.h +100 -0
  80. data/cpp/arduino/avr/iocanxx.h +2020 -0
  81. data/cpp/arduino/avr/iom103.h +735 -0
  82. data/cpp/arduino/avr/iom128.h +1299 -0
  83. data/cpp/arduino/avr/iom1280.h +101 -0
  84. data/cpp/arduino/avr/iom1281.h +101 -0
  85. data/cpp/arduino/avr/iom1284.h +1099 -0
  86. data/cpp/arduino/avr/iom1284p.h +1219 -0
  87. data/cpp/arduino/avr/iom1284rfr2.h +2690 -0
  88. data/cpp/arduino/avr/iom128a.h +1070 -0
  89. data/cpp/arduino/avr/iom128rfa1.h +5385 -0
  90. data/cpp/arduino/avr/iom128rfr2.h +2706 -0
  91. data/cpp/arduino/avr/iom16.h +676 -0
  92. data/cpp/arduino/avr/iom161.h +726 -0
  93. data/cpp/arduino/avr/iom162.h +1022 -0
  94. data/cpp/arduino/avr/iom163.h +686 -0
  95. data/cpp/arduino/avr/iom164.h +101 -0
  96. data/cpp/arduino/avr/iom164a.h +34 -0
  97. data/cpp/arduino/avr/iom164p.h +34 -0
  98. data/cpp/arduino/avr/iom164pa.h +1016 -0
  99. data/cpp/arduino/avr/iom165.h +887 -0
  100. data/cpp/arduino/avr/iom165a.h +832 -0
  101. data/cpp/arduino/avr/iom165p.h +889 -0
  102. data/cpp/arduino/avr/iom165pa.h +948 -0
  103. data/cpp/arduino/avr/iom168.h +97 -0
  104. data/cpp/arduino/avr/iom168a.h +35 -0
  105. data/cpp/arduino/avr/iom168p.h +942 -0
  106. data/cpp/arduino/avr/iom168pa.h +843 -0
  107. data/cpp/arduino/avr/iom168pb.h +899 -0
  108. data/cpp/arduino/avr/iom169.h +1174 -0
  109. data/cpp/arduino/avr/iom169a.h +44 -0
  110. data/cpp/arduino/avr/iom169p.h +1097 -0
  111. data/cpp/arduino/avr/iom169pa.h +1485 -0
  112. data/cpp/arduino/avr/iom16a.h +923 -0
  113. data/cpp/arduino/avr/iom16hva.h +80 -0
  114. data/cpp/arduino/avr/iom16hva2.h +883 -0
  115. data/cpp/arduino/avr/iom16hvb.h +1052 -0
  116. data/cpp/arduino/avr/iom16hvbrevb.h +1052 -0
  117. data/cpp/arduino/avr/iom16m1.h +1571 -0
  118. data/cpp/arduino/avr/iom16u2.h +1000 -0
  119. data/cpp/arduino/avr/iom16u4.h +1423 -0
  120. data/cpp/arduino/avr/iom2560.h +101 -0
  121. data/cpp/arduino/avr/iom2561.h +101 -0
  122. data/cpp/arduino/avr/iom2564rfr2.h +2691 -0
  123. data/cpp/arduino/avr/iom256rfr2.h +2707 -0
  124. data/cpp/arduino/avr/iom3000.h +237 -0
  125. data/cpp/arduino/avr/iom32.h +755 -0
  126. data/cpp/arduino/avr/iom323.h +744 -0
  127. data/cpp/arduino/avr/iom324a.h +1014 -0
  128. data/cpp/arduino/avr/iom324p.h +1016 -0
  129. data/cpp/arduino/avr/iom324pa.h +1372 -0
  130. data/cpp/arduino/avr/iom325.h +886 -0
  131. data/cpp/arduino/avr/iom3250.h +982 -0
  132. data/cpp/arduino/avr/iom3250a.h +34 -0
  133. data/cpp/arduino/avr/iom3250p.h +34 -0
  134. data/cpp/arduino/avr/iom3250pa.h +1042 -0
  135. data/cpp/arduino/avr/iom325a.h +34 -0
  136. data/cpp/arduino/avr/iom325p.h +34 -0
  137. data/cpp/arduino/avr/iom325pa.h +937 -0
  138. data/cpp/arduino/avr/iom328.h +34 -0
  139. data/cpp/arduino/avr/iom328p.h +948 -0
  140. data/cpp/arduino/avr/iom329.h +1069 -0
  141. data/cpp/arduino/avr/iom3290.h +1227 -0
  142. data/cpp/arduino/avr/iom3290a.h +34 -0
  143. data/cpp/arduino/avr/iom3290pa.h +1123 -0
  144. data/cpp/arduino/avr/iom329a.h +34 -0
  145. data/cpp/arduino/avr/iom329p.h +1164 -0
  146. data/cpp/arduino/avr/iom329pa.h +34 -0
  147. data/cpp/arduino/avr/iom32a.h +686 -0
  148. data/cpp/arduino/avr/iom32c1.h +1320 -0
  149. data/cpp/arduino/avr/iom32hvb.h +1052 -0
  150. data/cpp/arduino/avr/iom32hvbrevb.h +953 -0
  151. data/cpp/arduino/avr/iom32m1.h +1625 -0
  152. data/cpp/arduino/avr/iom32u2.h +1000 -0
  153. data/cpp/arduino/avr/iom32u4.h +1512 -0
  154. data/cpp/arduino/avr/iom32u6.h +1431 -0
  155. data/cpp/arduino/avr/iom406.h +783 -0
  156. data/cpp/arduino/avr/iom48.h +93 -0
  157. data/cpp/arduino/avr/iom48a.h +35 -0
  158. data/cpp/arduino/avr/iom48p.h +936 -0
  159. data/cpp/arduino/avr/iom48pa.h +839 -0
  160. data/cpp/arduino/avr/iom48pb.h +890 -0
  161. data/cpp/arduino/avr/iom64.h +1311 -0
  162. data/cpp/arduino/avr/iom640.h +101 -0
  163. data/cpp/arduino/avr/iom644.h +101 -0
  164. data/cpp/arduino/avr/iom644a.h +34 -0
  165. data/cpp/arduino/avr/iom644p.h +101 -0
  166. data/cpp/arduino/avr/iom644pa.h +1387 -0
  167. data/cpp/arduino/avr/iom644rfr2.h +2685 -0
  168. data/cpp/arduino/avr/iom645.h +881 -0
  169. data/cpp/arduino/avr/iom6450.h +978 -0
  170. data/cpp/arduino/avr/iom6450a.h +34 -0
  171. data/cpp/arduino/avr/iom6450p.h +34 -0
  172. data/cpp/arduino/avr/iom645a.h +34 -0
  173. data/cpp/arduino/avr/iom645p.h +34 -0
  174. data/cpp/arduino/avr/iom649.h +1061 -0
  175. data/cpp/arduino/avr/iom6490.h +1182 -0
  176. data/cpp/arduino/avr/iom6490a.h +34 -0
  177. data/cpp/arduino/avr/iom6490p.h +34 -0
  178. data/cpp/arduino/avr/iom649a.h +34 -0
  179. data/cpp/arduino/avr/iom649p.h +1490 -0
  180. data/cpp/arduino/avr/iom64a.h +1084 -0
  181. data/cpp/arduino/avr/iom64c1.h +1321 -0
  182. data/cpp/arduino/avr/iom64hve.h +1034 -0
  183. data/cpp/arduino/avr/iom64hve2.h +767 -0
  184. data/cpp/arduino/avr/iom64m1.h +1572 -0
  185. data/cpp/arduino/avr/iom64rfr2.h +2701 -0
  186. data/cpp/arduino/avr/iom8.h +665 -0
  187. data/cpp/arduino/avr/iom8515.h +687 -0
  188. data/cpp/arduino/avr/iom8535.h +772 -0
  189. data/cpp/arduino/avr/iom88.h +97 -0
  190. data/cpp/arduino/avr/iom88a.h +35 -0
  191. data/cpp/arduino/avr/iom88p.h +941 -0
  192. data/cpp/arduino/avr/iom88pa.h +1185 -0
  193. data/cpp/arduino/avr/iom88pb.h +899 -0
  194. data/cpp/arduino/avr/iom8a.h +621 -0
  195. data/cpp/arduino/avr/iom8hva.h +76 -0
  196. data/cpp/arduino/avr/iom8u2.h +997 -0
  197. data/cpp/arduino/avr/iomx8.h +808 -0
  198. data/cpp/arduino/avr/iomxx0_1.h +1692 -0
  199. data/cpp/arduino/avr/iomxx4.h +954 -0
  200. data/cpp/arduino/avr/iomxxhva.h +550 -0
  201. data/cpp/arduino/avr/iotn10.h +512 -0
  202. data/cpp/arduino/avr/iotn11.h +255 -0
  203. data/cpp/arduino/avr/iotn12.h +288 -0
  204. data/cpp/arduino/avr/iotn13.h +395 -0
  205. data/cpp/arduino/avr/iotn13a.h +394 -0
  206. data/cpp/arduino/avr/iotn15.h +363 -0
  207. data/cpp/arduino/avr/iotn1634.h +914 -0
  208. data/cpp/arduino/avr/iotn167.h +883 -0
  209. data/cpp/arduino/avr/iotn20.h +776 -0
  210. data/cpp/arduino/avr/iotn22.h +221 -0
  211. data/cpp/arduino/avr/iotn2313.h +702 -0
  212. data/cpp/arduino/avr/iotn2313a.h +812 -0
  213. data/cpp/arduino/avr/iotn24.h +94 -0
  214. data/cpp/arduino/avr/iotn24a.h +846 -0
  215. data/cpp/arduino/avr/iotn25.h +93 -0
  216. data/cpp/arduino/avr/iotn26.h +422 -0
  217. data/cpp/arduino/avr/iotn261.h +93 -0
  218. data/cpp/arduino/avr/iotn261a.h +987 -0
  219. data/cpp/arduino/avr/iotn28.h +297 -0
  220. data/cpp/arduino/avr/iotn4.h +477 -0
  221. data/cpp/arduino/avr/iotn40.h +767 -0
  222. data/cpp/arduino/avr/iotn4313.h +813 -0
  223. data/cpp/arduino/avr/iotn43u.h +604 -0
  224. data/cpp/arduino/avr/iotn44.h +94 -0
  225. data/cpp/arduino/avr/iotn441.h +903 -0
  226. data/cpp/arduino/avr/iotn44a.h +844 -0
  227. data/cpp/arduino/avr/iotn45.h +93 -0
  228. data/cpp/arduino/avr/iotn461.h +94 -0
  229. data/cpp/arduino/avr/iotn461a.h +987 -0
  230. data/cpp/arduino/avr/iotn48.h +806 -0
  231. data/cpp/arduino/avr/iotn5.h +512 -0
  232. data/cpp/arduino/avr/iotn828.h +911 -0
  233. data/cpp/arduino/avr/iotn84.h +94 -0
  234. data/cpp/arduino/avr/iotn841.h +903 -0
  235. data/cpp/arduino/avr/iotn84a.h +844 -0
  236. data/cpp/arduino/avr/iotn85.h +93 -0
  237. data/cpp/arduino/avr/iotn861.h +94 -0
  238. data/cpp/arduino/avr/iotn861a.h +988 -0
  239. data/cpp/arduino/avr/iotn87.h +859 -0
  240. data/cpp/arduino/avr/iotn88.h +806 -0
  241. data/cpp/arduino/avr/iotn9.h +477 -0
  242. data/cpp/arduino/avr/iotnx4.h +482 -0
  243. data/cpp/arduino/avr/iotnx5.h +442 -0
  244. data/cpp/arduino/avr/iotnx61.h +541 -0
  245. data/cpp/arduino/avr/iousb1286.h +101 -0
  246. data/cpp/arduino/avr/iousb1287.h +101 -0
  247. data/cpp/arduino/avr/iousb162.h +101 -0
  248. data/cpp/arduino/avr/iousb646.h +102 -0
  249. data/cpp/arduino/avr/iousb647.h +102 -0
  250. data/cpp/arduino/avr/iousb82.h +95 -0
  251. data/cpp/arduino/avr/iousbxx2.h +807 -0
  252. data/cpp/arduino/avr/iousbxx6_7.h +1336 -0
  253. data/cpp/arduino/avr/iox128a1.h +7236 -0
  254. data/cpp/arduino/avr/iox128a1u.h +8305 -0
  255. data/cpp/arduino/avr/iox128a3.h +6987 -0
  256. data/cpp/arduino/avr/iox128a3u.h +7697 -0
  257. data/cpp/arduino/avr/iox128a4u.h +7309 -0
  258. data/cpp/arduino/avr/iox128b1.h +6872 -0
  259. data/cpp/arduino/avr/iox128b3.h +6288 -0
  260. data/cpp/arduino/avr/iox128c3.h +6264 -0
  261. data/cpp/arduino/avr/iox128d3.h +5749 -0
  262. data/cpp/arduino/avr/iox128d4.h +5562 -0
  263. data/cpp/arduino/avr/iox16a4.h +6748 -0
  264. data/cpp/arduino/avr/iox16a4u.h +7309 -0
  265. data/cpp/arduino/avr/iox16c4.h +6078 -0
  266. data/cpp/arduino/avr/iox16d4.h +5717 -0
  267. data/cpp/arduino/avr/iox16e5.h +7699 -0
  268. data/cpp/arduino/avr/iox192a3.h +6987 -0
  269. data/cpp/arduino/avr/iox192a3u.h +7697 -0
  270. data/cpp/arduino/avr/iox192c3.h +6264 -0
  271. data/cpp/arduino/avr/iox192d3.h +5749 -0
  272. data/cpp/arduino/avr/iox256a3.h +6987 -0
  273. data/cpp/arduino/avr/iox256a3b.h +6983 -0
  274. data/cpp/arduino/avr/iox256a3bu.h +7706 -0
  275. data/cpp/arduino/avr/iox256a3u.h +7697 -0
  276. data/cpp/arduino/avr/iox256c3.h +6264 -0
  277. data/cpp/arduino/avr/iox256d3.h +5709 -0
  278. data/cpp/arduino/avr/iox32a4.h +6747 -0
  279. data/cpp/arduino/avr/iox32a4u.h +7309 -0
  280. data/cpp/arduino/avr/iox32c3.h +6264 -0
  281. data/cpp/arduino/avr/iox32c4.h +6078 -0
  282. data/cpp/arduino/avr/iox32d3.h +5105 -0
  283. data/cpp/arduino/avr/iox32d4.h +5685 -0
  284. data/cpp/arduino/avr/iox32e5.h +7699 -0
  285. data/cpp/arduino/avr/iox384c3.h +6849 -0
  286. data/cpp/arduino/avr/iox384d3.h +5833 -0
  287. data/cpp/arduino/avr/iox64a1.h +7236 -0
  288. data/cpp/arduino/avr/iox64a1u.h +8305 -0
  289. data/cpp/arduino/avr/iox64a3.h +6987 -0
  290. data/cpp/arduino/avr/iox64a3u.h +7697 -0
  291. data/cpp/arduino/avr/iox64a4u.h +7309 -0
  292. data/cpp/arduino/avr/iox64b1.h +6454 -0
  293. data/cpp/arduino/avr/iox64b3.h +6288 -0
  294. data/cpp/arduino/avr/iox64c3.h +6264 -0
  295. data/cpp/arduino/avr/iox64d3.h +5764 -0
  296. data/cpp/arduino/avr/iox64d4.h +5555 -0
  297. data/cpp/arduino/avr/iox8e5.h +7699 -0
  298. data/cpp/arduino/avr/lock.h +239 -0
  299. data/cpp/arduino/avr/pgmspace.h +125 -0
  300. data/cpp/arduino/avr/portpins.h +549 -0
  301. data/cpp/arduino/avr/version.h +90 -0
  302. data/cpp/arduino/avr/wdt.h +16 -0
  303. data/cpp/arduino/avr/xmega.h +71 -0
  304. data/cpp/arduino/binary.h +519 -0
  305. data/cpp/arduino/ci/DeviceUsingBytes.h +56 -0
  306. data/cpp/arduino/ci/ObservableDataStream.h +124 -0
  307. data/cpp/arduino/ci/README.md +5 -0
  308. data/cpp/arduino/ci/StreamTape.h +36 -0
  309. data/cpp/arduino/ci/Table.h +133 -0
  310. data/cpp/arduino/stdlib.cpp +81 -0
  311. data/cpp/arduino/stdlib.h +17 -0
  312. data/cpp/arduino/util/atomic.h +313 -0
  313. data/cpp/unittest/ArduinoUnitTests.cpp +6 -0
  314. data/cpp/unittest/ArduinoUnitTests.h +297 -0
  315. data/cpp/unittest/Assertion.h +83 -0
  316. data/cpp/unittest/Compare.h +119 -0
  317. data/cpp/unittest/OstreamHelpers.h +9 -0
  318. data/exe/arduino_ci.rb +611 -0
  319. data/exe/arduino_ci_remote.rb +2 -131
  320. data/exe/arduino_library_location.rb +7 -0
  321. data/exe/ensure_arduino_installation.rb +11 -0
  322. data/lib/arduino_ci/arduino_backend.rb +339 -0
  323. data/lib/arduino_ci/arduino_downloader.rb +170 -0
  324. data/lib/arduino_ci/arduino_downloader_linux.rb +44 -0
  325. data/lib/arduino_ci/arduino_downloader_osx.rb +44 -0
  326. data/lib/arduino_ci/arduino_downloader_windows.rb +61 -0
  327. data/lib/arduino_ci/arduino_installation.rb +30 -103
  328. data/lib/arduino_ci/ci_config.rb +142 -23
  329. data/lib/arduino_ci/cpp_library.rb +475 -63
  330. data/lib/arduino_ci/host.rb +104 -6
  331. data/lib/arduino_ci/library_properties.rb +103 -0
  332. data/lib/arduino_ci/logger.rb +243 -0
  333. data/lib/arduino_ci/version.rb +1 -1
  334. data/lib/arduino_ci.rb +3 -1
  335. data/misc/default.yml +208 -0
  336. metadata +341 -60
  337. data/lib/arduino_ci/arduino_cmd.rb +0 -296
  338. data/lib/arduino_ci/arduino_cmd_linux.rb +0 -86
  339. data/lib/arduino_ci/arduino_cmd_linux_builder.rb +0 -32
  340. data/lib/arduino_ci/arduino_cmd_osx.rb +0 -27
  341. data/lib/arduino_ci/display_manager.rb +0 -187
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cad9df4f8ade3fbe801da837c8b6a73d129c9a5497e1d43b4f655de8d9b5b640
4
- data.tar.gz: b42f9624e6af593c467d0f67a94b0695fb36b584d740f4fc38e256b8f703c075
3
+ metadata.gz: 06b06a608bb5c276ab675b72fac4b0cc42a0a7a778ce377e2e56f4d3a2d31e54
4
+ data.tar.gz: 34a6f4e135205b4c86e5fe7419a32ec90826d6ae9dcdb7574db90f359defd964
5
5
  SHA512:
6
- metadata.gz: 25d40817ac30d531979d197768aad671e8efa9b3e2bc023fde41f3dbcbbb1b829a4f6a9915714a6eec2e1e234f2f70749390802431af81a7b23cf8b847a39750
7
- data.tar.gz: 9ef54c3d3fc6704ad70d347b85f2fc039d697a81edfafaa3e9fea329cc20c0a0919f42267452e4f62be5d508460f38a3264f04b0c51ea98a3b98062cc4bd18b1
6
+ metadata.gz: 5e425833e36f40ad70e219fd7d2696ad75999f80fa8a39a081a930e351669e91acf866733166603066a0e33e70e39f8a4a1a8677330b12b06a8d3e82121d216b
7
+ data.tar.gz: c50bb2733cb5b40aae5e0580316a8a73fcdb2fa6175da0bdaf9b098cf01f5f08373b043d8d08bcea600da47026e9d2efc3a69db5e2aa4a0920b06c3599d21073
data/README.md CHANGED
@@ -1,53 +1,227 @@
1
- [![Gem Version](https://badge.fury.io/rb/arduino_ci.svg)](https://rubygems.org/gems/arduino_ci)
2
- [![Build Status](https://travis-ci.org/ifreecarve/arduino_ci.svg)](https://travis-ci.org/ifreecarve/arduino_ci)
3
- [![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](http://www.rubydoc.info/gems/arduino_ci/0.1.0)
4
1
 
5
2
  # ArduinoCI Ruby gem (`arduino_ci`)
3
+ [![Gem Version](https://badge.fury.io/rb/arduino_ci.svg)](https://rubygems.org/gems/arduino_ci)
4
+ [![Documentation](http://img.shields.io/badge/docs-rdoc.info-blue.svg)](http://www.rubydoc.info/gems/arduino_ci/1.6.2)
5
+ [![Gitter](https://badges.gitter.im/Arduino-CI/arduino_ci.svg)](https://gitter.im/Arduino-CI/arduino_ci?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
6
+ [![GitHub Marketplace](https://img.shields.io/badge/Get_it-on_Marketplace-informational.svg)](https://github.com/marketplace/actions/arduino_ci)
7
+
8
+ Arduino CI tests [Arduino libraries](https://arduino.github.io/arduino-cli/library-specification/); it was created to enable better collaboration among Arduino library maintainers and contributors, by enabling automated code checks to be performed as part of a pull request process.
9
+
10
+ * enables running unit tests against the library **without hardware present**
11
+ * provides a system of mocks that allow fine-grained control over the hardware inputs, including the system's clock
12
+ * verifies compilation of any example sketches included in the library
13
+ * can test a wide range of arduino boards with different hardware options available
14
+ * can be run both locally and as part of CI (GitHub Actions, TravisCI, Appveyor, etc.)
15
+ * runs on multiple platforms -- any platform that supports the Arduino IDE
16
+ * provides detailed analysis of segfaults in compilers that support such debugging features
17
+
18
+ > Note: for running tests in response to [GitHub events](https://docs.github.com/en/free-pro-team@latest/developers/webhooks-and-events/github-event-types), an [Arduino CI GitHub Action](https://github.com/marketplace/actions/arduino_ci) is available for your convenience. This method of running `arduino_ci` is driven by Docker, which may also serve your local testing needs (as it does not require a ruby environment to be installed).
19
+
20
+ Arduino CI works on multiple platforms, which should enable your CI system of choice to leverage it for testing.
21
+
22
+ Platform | CI Status
23
+ ---------|:---------
24
+ OSX | [![OSX Build Status](https://github.com/Arduino-CI/arduino_ci/workflows/macos/badge.svg)](https://github.com/Arduino-CI/arduino_ci/actions?workflow=macos)
25
+ Linux | [![Linux Build Status](https://github.com/Arduino-CI/arduino_ci/workflows/linux/badge.svg)](https://github.com/Arduino-CI/arduino_ci/actions?workflow=linux)
26
+ Windows | [![Windows Build status](https://github.com/Arduino-CI/arduino_ci/workflows/windows/badge.svg)](https://github.com/Arduino-CI/arduino_ci/actions?workflow=windows)
27
+
28
+
29
+ ## Quick Start
30
+
31
+ This project has the following dependencies:
32
+
33
+ * `ruby` 2.5 or higher
34
+ * A compiler like `g++` (on OSX, `clang` works; on Cygwin, use the `mingw-gcc-c++` package)
35
+ * `python` (if using a board architecture that requires it, e.g. ESP32, ESP8266; see [this issue](https://github.com/Arduino-CI/arduino_ci/issues/235#issuecomment-739629243)). Consider `pyserial` as well.
36
+
37
+ In that environment, you can install by running `gem install arduino_ci`. To update to a latest version, use `gem update arduino_ci`.
38
+
39
+ You can now test your library by simply running the command `arduino_ci.rb` from your library directory. This will perform the following:
40
+
41
+ * validation of some fields in `library.properties`, if it exists
42
+ * running unit tests from files found in `test/`, if they exist
43
+ * testing compilation of example sketches found in `examples/`, if they exist
44
+
45
+ ### Assumptions About Your Repository
46
+
47
+ Arduino expects all libraries to be in a specific `Arduino/libraries` directory on your system. If your library is elsewhere, `arduino_ci` will _automatically_ create a symbolic link in the `libraries` directory that points to the directory of the project being tested. This simplifieds working with project dependencies, but **it can have unintended consequences on Windows systems**.
48
+
49
+ > If you use a Windows system **it is recommended that you only run `arduino_ci` from project directories that are already inside the `libraries` directory** because [in some cases deleting a folder that contains a symbolic link to another folder can cause the _entire linked folder_ to be removed instead of just the link itself](https://superuser.com/a/306618).
50
+
51
+ ### Changes to Your Repository
52
+
53
+ Unit testing binaries created by `arduino_ci` should not be committed to the codebase. To avoid that, add the following to your `.gitignore`:
54
+
55
+ ```ignore-list
56
+ # arduino_ci unit test binaries and artifacts
57
+ *.bin
58
+ *.bin.dSYM
59
+ ```
60
+
61
+ ### A Quick Example
62
+
63
+ For a fairly minimal practical example of a unit-testable library repo that you can copy from, see [the `Arduino-CI/Blink` repository](https://github.com/Arduino-CI/Blink).
64
+
65
+
66
+ ## Advanced Start
67
+
68
+ New features and bugfixes reach GitHub before they reach a released ruby gem. Alternately, it may be that (for your own reasons) you do not wish to install `arduino_ci` globally on your system. A few additional setup steps are required if you wish to do this.
69
+
70
+ ### You Need Ruby _and_ Bundler
71
+
72
+ In addition to version 2.5 or higher, you'll also need to `gem install bundler` to a minimum of version 2.0 if it's not already there. You may find it easiest to do this by using [`rbenv`](https://github.com/rbenv/rbenv).
73
+
74
+ You will need to add a file called `Gemfile` (no extension) to your Arduino project.
75
+
76
+ #### Non-root installation
77
+
78
+ If you are simply trying to avoid the need to install `arduino_ci` system-wide (which may require administrator permissions), your `Gemfile` would look like this:
79
+
80
+ ```ruby
81
+ source 'https://rubygems.org'
82
+
83
+ # Replace 1.2 with the desired version of arduino_ci. See https://guides.rubygems.org/patterns/#pessimistic-version-constraint
84
+ gem 'arduino_ci', '~> 1.2'
85
+ ```
86
+
87
+ It would also make sense to add the following to your `.gitignore`:
88
+ ```ignore-list
89
+ /.bundle/
90
+ vendor
91
+ ```
92
+
93
+ > Note: this used to be the recommended installation method, but with the library's maturation it's better to avoid the use of `Gemfile` and `bundle install` by just installing as per the "Quick Start" instructions above.
94
+
6
95
 
7
- [Arduino CI](https://github.com/ifreecarve/arduino_ci) is a Ruby gem for executing Continuous Integration (CI) tests on an Arduino library -- both locally and as part of a service like Travis CI.
96
+ #### Using the latest-available code
8
97
 
98
+ If you want to use the latest code on GitHub, your `Gemfile` would look like this:
99
+
100
+ ```ruby
101
+ source 'https://rubygems.org'
102
+
103
+ # to use the latest github code in a given repo and branch, replace the below values for git: and ref: as needed
104
+ gem 'arduino_ci', git: 'https://github.com/ArduinoCI/arduino_ci.git', ref: '<your desired ref, branch, or tag>'
105
+ ```
9
106
 
10
- ## Installation In Your GitHub Project And Using Travis CI
11
107
 
12
- Add a file called `Gemfile` (no extension) to your Arduino project:
108
+ #### Using a version of `arduino_ci` source code on your local machine
109
+
110
+ First, Thanks! See [CONTRIBUTING.md](CONTRIBUTING.md). Your `Gemfile` would look like this:
13
111
 
14
112
  ```ruby
15
113
  source 'https://rubygems.org'
16
- gem 'arduino_ci'
114
+
115
+ gem 'arduino_ci', path: '/path/to/development/dir/for/arduino_ci'
116
+ ```
117
+
118
+
119
+ ### Installing the Dependencies
120
+
121
+ Fulfilling the `arduino_ci` library dependency is as easy as running one or both of these commands:
122
+
123
+ ```console
124
+ $ bundle config set --local path 'vendor/bundle' # if you lack administrative privileges to install globally
125
+ $ bundle install
126
+ ```
127
+
128
+ This will create a `Gemfile.lock` in your project directory, which you may optionally check into source control. A broader introduction to ruby dependencies is outside the scope of this document.
129
+
130
+
131
+ ### Running `arduino_ci.rb` To Test Your Library
132
+
133
+ With that installed, just the following shell command each time you want the tests to execute:
134
+
135
+ ```console
136
+ $ bundle exec arduino_ci.rb
137
+ ```
138
+
139
+
140
+ ### Reference
141
+
142
+ For more information on the usage of `arduino_ci.rb`, see [REFERENCE.md](REFERENCE.md). It contains information such as:
143
+
144
+ * How to configure build options (platforms to test, Arduino library dependencies to install) with an `.arduino-ci.yml` file
145
+ * Where to put unit test files
146
+ * How to structure unit test files
147
+ * How to control the global (physical) state of the Arduino board
148
+ * How to modify the Arduino platforms, compilers, test plans, etc
149
+
150
+
151
+ ## Setting up Pull Request Testing and/or External CI
152
+
153
+ > **Note:** `arduino_ci.rb` expects to be run from the root directory of your Arduino project library.
154
+
155
+ ### Arduino CI's Own GitHub action
156
+
157
+ [![GitHub Marketplace](https://img.shields.io/badge/Get_it-on_Marketplace-informational.svg)](https://github.com/marketplace/actions/arduino_ci)
158
+
159
+
160
+ ### Your Own Scripted GitHub Action
161
+
162
+ GitHub Actions allows you to automate your workflows directly in GitHub.
163
+ No additional steps are needed.
164
+ Just create a YAML file with the information below in your repo under the `.github/workflows/` directory.
165
+
166
+ ```yaml
167
+ on: [push, pull_request]
168
+ jobs:
169
+ runTest:
170
+ runs-on: ubuntu-latest
171
+ steps:
172
+ - uses: actions/checkout@v3
173
+ - uses: ruby/setup-ruby@v1
174
+ with:
175
+ ruby-version: 2.6
176
+ - run: |
177
+ gem install arduino_ci
178
+ arduino_ci.rb
17
179
  ```
18
180
 
19
- Next, you need this in `.travis.yml`
181
+
182
+ ### Travis CI
183
+
184
+ You'll need to go to https://travis-ci.org/profile/ and enable testing for your Arduino project. Once that happens, you should be all set. The script will test all example projects of the library and all unit tests.
185
+
186
+ Next, you need this in `.travis.yml` in your repo
20
187
 
21
188
  ```yaml
22
189
  sudo: false
23
190
  language: ruby
24
191
  script:
25
- - bundle install
26
- - bundle exec arduino_ci_remote.rb
192
+ - gem install arduino_ci
193
+ - arduino_ci.rb
27
194
  ```
28
195
 
29
- That's literally all there is to it on the repository side. You'll need to go to https://travis-ci.org/profile/ and enable testing for your Arduino project. Once that happens, you should be all set.
30
196
 
197
+ ### Appveyor CI
198
+
199
+ You'll need to go to https://ci.appveyor.com/projects and add your project.
200
+
201
+ Next, you'll need this in `appveyor.yml` in your repo.
31
202
 
32
- ## More Documentation
203
+ ```yaml
204
+ build: off
205
+ test_script:
206
+ - gem install arduino_ci
207
+ - arduino_ci.rb
208
+ ```
33
209
 
34
- This software is in alpha. But [SampleProjects/DoSomething](SampleProjects/DoSomething) has a decent writeup and is a good bare-bones example of all the features.
35
210
 
36
211
  ## Known Problems
37
212
 
38
- * The Arduino library is not fully mocked.
213
+ * The Arduino library is not fully mocked, nor is `avr-libc`.
39
214
  * I don't have preprocessor defines for all the Arduino board flavors
40
- * Arduino Zero boards don't work in CI. I'm confused.
41
- * https://github.com/ifreecarve/arduino_ci/issues
215
+ * https://github.com/Arduino-CI/arduino_ci/issues
42
216
 
43
217
 
44
218
  ## Author
45
219
 
46
- This gem was written by Ian Katz (ifreecarve@gmail.com) in 2018. It's released under the Apache 2.0 license.
220
+ This gem was written by Ian Katz (ianfixes@gmail.com) in 2018. It's released under the Apache 2.0 license.
47
221
 
48
222
 
49
223
  ## See Also
50
224
 
51
225
  * [Contributing](CONTRIBUTING.md)
52
- * [Adafruit/travis-ci-arduino](https://github.com/adafruit/travis-ci-arduino) which inspired this project
226
+ * [Adafruit/ci-arduino](https://github.com/adafruit/ci-arduino) which inspired this project
53
227
  * [mmurdoch/arduinounit](https://github.com/mmurdoch/arduinounit) from which the unit test macros were adopted