build_push.yml 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325
  1. name: Build and Push
  2. on:
  3. workflow_dispatch:
  4. jobs:
  5. # This workflow contains a single job called "build"
  6. build:
  7. name: Build Marauder Binaries
  8. runs-on: ubuntu-latest
  9. steps:
  10. - name: Checkout Code
  11. uses: actions/checkout@v3
  12. - name: Pull arduino-esp32 v2.0.4
  13. uses: actions/checkout@v2
  14. with:
  15. repository: espressif/arduino-esp32
  16. ref: 2.0.4
  17. path: 2.0.4arduino-esp32
  18. - name: Install TFT_eSPI
  19. uses: actions/checkout@v2
  20. with:
  21. repository: justcallmekoko/TFT_eSPI
  22. ref: master
  23. path: CustomTFT_eSPI
  24. - name: Install LinkedList
  25. uses: actions/checkout@v2
  26. with:
  27. repository: ivanseidel/LinkedList
  28. ref: master
  29. path: CustomLinkedList
  30. - name: Install lv_arduino
  31. uses: actions/checkout@v2
  32. with:
  33. repository: lvgl/lv_arduino
  34. ref: master
  35. path: Customlv_arduino
  36. - name: Install JPEGDecoder
  37. uses: actions/checkout@v2
  38. with:
  39. repository: Bodmer/JPEGDecoder
  40. ref: master
  41. path: CustomJPEGDecoder
  42. - name: Install NimBLE-Arduino
  43. uses: actions/checkout@v2
  44. with:
  45. repository: h2zero/NimBLE-Arduino
  46. ref: 1.2.0
  47. path: CustomNimBLE-Arduino
  48. - name: Install Adafruit_NeoPixel
  49. uses: actions/checkout@v2
  50. with:
  51. repository: adafruit/Adafruit_NeoPixel
  52. ref: master
  53. path: CustomAdafruit_NeoPixel
  54. - name: Install ArduinoJson
  55. uses: actions/checkout@v2
  56. with:
  57. repository: bblanchon/ArduinoJson
  58. ref: v6.18.2
  59. path: CustomArduinoJson
  60. - name: Install SwitchLib
  61. uses: actions/checkout@v2
  62. with:
  63. repository: justcallmekoko/SwitchLib
  64. ref: main
  65. path: CustomSwitchLib
  66. - name: Search for SD lib in arduino-esp32 v2.0.4
  67. run: |
  68. find /home/runner/work/ESP32Marauder/ESP32Marauder/2.0.4arduino-esp32 -name "SD"
  69. - name: Configure TFT_eSPI
  70. run: |
  71. rm -f CustomTFT_eSPI/User_Setup_Select.h
  72. cp User_Setup_Select.h CustomTFT_eSPI/
  73. cp User_Setup_marauder_mini.h CustomTFT_eSPI/
  74. cp User_Setup_og_marauder.h CustomTFT_eSPI/
  75. pwd
  76. ls -la
  77. ls -la CustomTFT_eSPI
  78. - name: Install ESP32 Boards and Compile MarauderOTA
  79. uses: ArminJo/arduino-test-compile@v3.2.0
  80. with:
  81. sketch-names: MarauderOTA.ino
  82. arduino-board-fqbn: esp32:esp32:esp32s2
  83. platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.0-rc1/package_esp32_dev_index.json
  84. - name: Modify platform.txt
  85. run: |
  86. echo "Chicken"
  87. for i in $(find /home/runner/.arduino15/packages/esp32/hardware/esp32/ -name "platform.txt"); do
  88. sed -i 's/compiler.c.elf.libs.esp32s2=/compiler.c.elf.libs.esp32s2=-zmuldefs /' "$i"
  89. sed -i 's/compiler.c.elf.libs.esp32=/compiler.c.elf.libs.esp32=-zmuldefs /' "$i"
  90. cat "$i" | grep compiler.c.elf.libs.esp32s2
  91. cat "$i" | grep compiler.c.elf.libs.esp32
  92. done
  93. - name: Build Marauder for Flipper Zero WiFi Dev Board
  94. uses: ArminJo/arduino-test-compile@v3.2.0
  95. with:
  96. sketch-names: esp32_marauder.ino
  97. arduino-board-fqbn: esp32:esp32:esp32s2:PartitionScheme=min_spiffs,FlashSize=16M,PSRAM=enabled
  98. #platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.0-rc1/package_esp32_dev_index.json
  99. extra-arduino-cli-args: "--warnings none"
  100. #extra-arduino-lib-install-args: "-zmuldefs"
  101. - name: Rename Marauder Flipper bin
  102. run: |
  103. mv ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.flipper.bin
  104. - name: Configure TFT_eSPI and configs.h for OG Marauder
  105. run: |
  106. pwd
  107. find /home/runner/ -name "*TFT_eSPI*"
  108. sed -i 's/^#include <User_Setup_marauder_mini.h>/\/\/#include <User_Setup_marauder_mini.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
  109. sed -i 's/^\/\/#include <User_Setup_og_marauder.h>/#include <User_Setup_og_marauder.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
  110. sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
  111. sed -i 's/^ \/\/#define MARAUDER_V4/ #define MARAUDER_V4/' esp32_marauder/configs.h
  112. sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
  113. sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
  114. sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
  115. sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
  116. - name: Build Marauder for OG Marauder
  117. uses: ArminJo/arduino-test-compile@v3.2.0
  118. with:
  119. sketch-names: esp32_marauder.ino
  120. arduino-board-fqbn: esp32:esp32:d32:PartitionScheme=min_spiffs
  121. #platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.0-rc1/package_esp32_dev_index.json
  122. extra-arduino-cli-args: "--warnings none"
  123. #extra-arduino-lib-install-args: "-zmuldefs"
  124. - name: Rename OG Marauder bin
  125. run: |
  126. mv ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.og.bin
  127. - name: Configure TFT_eSPI and configs.h for Marauder v6
  128. run: |
  129. sed -i 's/^#include <User_Setup_marauder_mini.h>/\/\/#include <User_Setup_marauder_mini.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
  130. sed -i 's/^\/\/#include <User_Setup_og_marauder.h>/#include <User_Setup_og_marauder.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
  131. sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
  132. sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
  133. sed -i 's/^ \/\/#define MARAUDER_V6/ #define MARAUDER_V6/' esp32_marauder/configs.h
  134. sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
  135. sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
  136. sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
  137. - name: Build Marauder for v6 Marauder
  138. uses: ArminJo/arduino-test-compile@v3.2.0
  139. with:
  140. sketch-names: esp32_marauder.ino
  141. arduino-board-fqbn: esp32:esp32:d32:PartitionScheme=min_spiffs
  142. #platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.0-rc1/package_esp32_dev_index.json
  143. extra-arduino-cli-args: "--warnings none"
  144. #extra-arduino-lib-install-args: "-zmuldefs"
  145. - name: Rename v6 Marauder bin
  146. run: |
  147. mv ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6.bin
  148. - name: Configure TFT_eSPI and configs.h for Marauder Kit
  149. run: |
  150. sed -i 's/^#include <User_Setup_marauder_mini.h>/\/\/#include <User_Setup_marauder_mini.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
  151. sed -i 's/^\/\/#include <User_Setup_og_marauder.h>/#include <User_Setup_og_marauder.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
  152. sed -i 's/^ #define MARAUDER_MINI/ \/\/#define MARAUDER_MINI/' esp32_marauder/configs.h
  153. sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
  154. sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
  155. sed -i 's/^ \/\/#define MARAUDER_KIT/ #define MARAUDER_KIT/' esp32_marauder/configs.h
  156. sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
  157. sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
  158. - name: Build Marauder for Marauder Kit
  159. uses: ArminJo/arduino-test-compile@v3.2.0
  160. with:
  161. sketch-names: esp32_marauder.ino
  162. arduino-board-fqbn: esp32:esp32:d32:PartitionScheme=min_spiffs
  163. #platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.0-rc1/package_esp32_dev_index.json
  164. extra-arduino-cli-args: "--warnings none"
  165. #extra-arduino-lib-install-args: "-zmuldefs"
  166. - name: Rename Marauder Kit bin
  167. run: |
  168. mv ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.kit.bin
  169. - name: Configure TFT_eSPI and configs.h for Marauder Mini
  170. run: |
  171. sed -i 's/^\/\/#include <User_Setup_marauder_mini.h>/#include <User_Setup_marauder_mini.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
  172. sed -i 's/^#include <User_Setup_og_marauder.h>/\/\/#include <User_Setup_og_marauder.h>/' /home/runner/Arduino/libraries/CustomTFT_eSPI/User_Setup_Select.h
  173. sed -i 's/^ \/\/#define MARAUDER_MINI/ #define MARAUDER_MINI/' esp32_marauder/configs.h
  174. sed -i 's/^ #define MARAUDER_V4/ \/\/#define MARAUDER_V4/' esp32_marauder/configs.h
  175. sed -i 's/^ #define MARAUDER_V6/ \/\/#define MARAUDER_V6/' esp32_marauder/configs.h
  176. sed -i 's/^ #define MARAUDER_KIT/ \/\/#define MARAUDER_KIT/' esp32_marauder/configs.h
  177. sed -i 's/^ #define GENERIC_ESP32/ \/\/#define GENERIC_ESP32/' esp32_marauder/configs.h
  178. sed -i 's/^ #define MARAUDER_FLIPPER/ \/\/#define MARAUDER_FLIPPER/' esp32_marauder/configs.h
  179. - name: Build Marauder for Marauder Mini
  180. uses: ArminJo/arduino-test-compile@v3.2.0
  181. with:
  182. sketch-names: esp32_marauder.ino
  183. arduino-board-fqbn: esp32:esp32:d32:PartitionScheme=min_spiffs
  184. #platform-url: https://github.com/espressif/arduino-esp32/releases/download/2.0.0-rc1/package_esp32_dev_index.json
  185. extra-arduino-cli-args: "--warnings none"
  186. #extra-arduino-lib-install-args: "-zmuldefs"
  187. - name: Rename Marauder Mini bin
  188. run: |
  189. mv ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.ino.bin ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.mini.bin
  190. - name: Display finished bins
  191. run: |
  192. find ./esp32_marauder/build -name "*.bin"
  193. - name: 'Upload Flipper Artifact'
  194. uses: actions/upload-artifact@v3
  195. with:
  196. name: esp32_marauder.flipper.bin
  197. path: ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.flipper.bin
  198. retention-days: 5
  199. - name: 'Upload OG Artifact'
  200. uses: actions/upload-artifact@v3
  201. with:
  202. name: esp32_marauder.og.bin
  203. path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.og.bin
  204. retention-days: 5
  205. - name: 'Upload v6 Artifact'
  206. uses: actions/upload-artifact@v3
  207. with:
  208. name: esp32_marauder.v6.bin
  209. path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6.bin
  210. retention-days: 5
  211. - name: 'Upload Kit Artifact'
  212. uses: actions/upload-artifact@v3
  213. with:
  214. name: esp32_marauder.kit.bin
  215. path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.kit.bin
  216. retention-days: 5
  217. - name: 'Upload Mini Artifact'
  218. uses: actions/upload-artifact@v3
  219. with:
  220. name: esp32_marauder.mini.bin
  221. path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.mini.bin
  222. retention-days: 5
  223. - name: Create Release
  224. id: create_release
  225. uses: actions/create-release@v1
  226. env:
  227. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  228. with:
  229. tag_name: ${{ github.ref }}
  230. release_name: Release ${{ github.ref }}
  231. draft: true
  232. prerelease: false
  233. - name: Upload Flipper Asset
  234. id: upload-flipper-release-asset
  235. uses: actions/upload-release-asset@v1
  236. env:
  237. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  238. with:
  239. upload_url: ${{ steps.create_release.outputs.upload_url }}
  240. asset_path: ./esp32_marauder/build/esp32.esp32.esp32s2/esp32_marauder.flipper.bin
  241. asset_name: esp32_marauder.flipper.bin
  242. asset_content_type: application/bin
  243. - name: Upload OG Asset
  244. id: upload-og-release-asset
  245. uses: actions/upload-release-asset@v1
  246. env:
  247. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  248. with:
  249. upload_url: ${{ steps.create_release.outputs.upload_url }}
  250. asset_path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.og.bin
  251. asset_name: esp32_marauder.og.bin
  252. asset_content_type: application/bin
  253. - name: Upload v6 Asset
  254. id: upload-v6-release-asset
  255. uses: actions/upload-release-asset@v1
  256. env:
  257. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  258. with:
  259. upload_url: ${{ steps.create_release.outputs.upload_url }}
  260. asset_path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.v6.bin
  261. asset_name: esp32_marauder.v6.bin
  262. asset_content_type: application/bin
  263. - name: Upload Kit Asset
  264. id: upload-kit-release-asset
  265. uses: actions/upload-release-asset@v1
  266. env:
  267. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  268. with:
  269. upload_url: ${{ steps.create_release.outputs.upload_url }}
  270. asset_path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.kit.bin
  271. asset_name: esp32_marauder.kit.bin
  272. asset_content_type: application/bin
  273. - name: Upload Mini Asset
  274. id: upload-mini-release-asset
  275. uses: actions/upload-release-asset@v1
  276. env:
  277. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  278. with:
  279. upload_url: ${{ steps.create_release.outputs.upload_url }}
  280. asset_path: ./esp32_marauder/build/esp32.esp32.d32/esp32_marauder.mini.bin
  281. asset_name: esp32_marauder.mini.bin
  282. asset_content_type: application/bin