@@ -97,11 +97,13 @@ jobs:
9797 run : |
9898 mkdir sonarqube-out
9999 ./sonarqube/build-wrapper-linux-x86/build-wrapper-linux-x86-64 --out-dir sonarqube-out \
100- platformio ci --build-dir=" ./bin" --keep-build-dir --project-conf= platformio.ini ./src/
100+ platformio ci --environment obspro --environment obs -- build-dir ./bin --keep-build-dir --project-conf platformio.ini ./src/
101101
102- - name : Package firmware
102+ - name : Package firmware OBS classic
103103 run : |
104104 set -eux
105+ mkdir -p obs-classic
106+ cd obs-classic
105107 if [ -f "/github/home/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/bin/bootloader_dio_40m.elf" ]; then
106108 cp /github/home/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/bin/bootloader_dio_40m.elf 0x01000.elf
107109 elif [ -f "/github/home/.platformio/packages/framework-arduinoespressif32/tools/sdk/bin/bootloader_dio_40m.bin" ]; then
@@ -112,10 +114,10 @@ jobs:
112114 find /github/home/.platformio/ -name "bootloader*.elf"
113115 exit 1
114116 fi
115- cp bin/.pio/build/esp32dev /partitions.bin 0x08000.bin
117+ cp ../ bin/.pio/build/obs /partitions.bin 0x08000.bin
116118 cp /github/home/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin 0x0e000.bin
117- cp bin/.pio/build/esp32dev /firmware.bin 0x10000.bin
118- cp bin/.pio/build/esp32dev /firmware.bin firmware.bin
119+ cp ../ bin/.pio/build/obs /firmware.bin 0x10000.bin
120+ cp ../ bin/.pio/build/obs /firmware.bin firmware.bin
119121 ESPTOOL=/github/home/.platformio/packages/tool-esptoolpy/esptool.py
120122 chmod +x ${ESPTOOL}
121123 # CMD to create a merged binary (still missing flash.app)
@@ -138,23 +140,81 @@ jobs:
138140 0x01000 0x01000.bin.org
139141 echo OpenBikeSensor bootloader params
140142 ${ESPTOOL} --chip esp32 image_info --version 2 0x01000.bin || echo image_info failed
141- cp src/fonts/LICENSE.txt LICENSE-OpenSans.txt
143+ cp ../ src/fonts/LICENSE.txt LICENSE-OpenSans.txt
142144 wget --no-verbose -O COPYRIGHT-ESP.html https://docs.espressif.com/projects/esp-idf/en/latest/esp32/COPYRIGHT.html
143145 wget --no-verbose -O LICENSE-ARDUINO-ESP32.md https://github.com/espressif/arduino-esp32/raw/master/LICENSE.md
144- zip --junk-paths obs-${{ env.OBS_VERSION }}-initial-flash.zip \
146+ zip --junk-paths ../ obs-${{ env.OBS_VERSION }}-initial-flash.zip \
145147 0x*.bin \
146148 COPYRIGHT-ESP.html \
147149 LICENSE-ARDUINO-ESP32.md \
148150 LICENSE-OpenSans.txt \
149151 LICENSE
150- zip --junk-paths obs-${{ env.OBS_VERSION }}.zip \
152+ zip --junk-paths ../obs-${{ env.OBS_VERSION }}.zip \
153+ firmware.bin \
154+ COPYRIGHT-ESP.html \
155+ LICENSE-ARDUINO-ESP32.md \
156+ LICENSE-OpenSans.txt \
157+ LICENSE
158+
159+ - name : Package firmware OBS pro
160+ run : |
161+ set -eux
162+ mkdir -p obs-pro
163+ cd obs-pro
164+ if [ -f "/github/home/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/bin/bootloader_dio_40m.elf" ]; then
165+ cp /github/home/.platformio/packages/framework-arduinoespressif32/tools/sdk/esp32/bin/bootloader_dio_40m.elf 0x01000.elf
166+ elif [ -f "/github/home/.platformio/packages/framework-arduinoespressif32/tools/sdk/bin/bootloader_dio_40m.bin" ]; then
167+ cp /github/home/.platformio/packages/framework-arduinoespressif32/tools/sdk/bin/bootloader_dio_40m.bin 0x01000.bin
168+ else
169+ echo could not find bootloader_dio_40m.bin, new location?
170+ find /github/home/.platformio/ -name "bootloader*.bin"
171+ find /github/home/.platformio/ -name "bootloader*.elf"
172+ exit 1
173+ fi
174+ cp ../bin/.pio/build/obspro/partitions.bin 0x08000.bin
175+ cp /github/home/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin 0x0e000.bin
176+ cp ../bin/.pio/build/obspro/firmware.bin 0x10000.bin
177+ cp ../bin/.pio/build/obspro/firmware.bin firmware.bin
178+ ESPTOOL=/github/home/.platformio/packages/tool-esptoolpy/esptool.py
179+ chmod +x ${ESPTOOL}
180+ # CMD to create a merged binary (still missing flash.app)
181+ # ${ESPTOOL} --trace --chip esp32 merge_bin --output merged.bin \
182+ # --flash_freq keep --flash_mode dio --flash_size 4MB \
183+ # 0x01000 0x01000.bin \
184+ # 0x08000 0x08000.bin \
185+ # 0x0e000 0x0e000.bin \
186+ # 0x10000 0x10000.bin
187+ ${ESPTOOL} --trace --chip esp32 elf2image \
188+ --dont-append-digest \
189+ --flash_freq 40m --flash_mode dio \
190+ 0x01000.elf
191+ echo Original bootloader params after elf2image
192+ ${ESPTOOL} --chip esp32 image_info --version 2 0x01000.bin || echo image_info for converted bootloader failed
193+ mv 0x01000.bin 0x01000.bin.org
194+ ${ESPTOOL} --trace --chip esp32 merge_bin --output 0x01000.bin \
195+ --flash_freq 40m --flash_mode dio --flash_size 4MB \
196+ --target-offset 0x01000 \
197+ 0x01000 0x01000.bin.org
198+ echo OpenBikeSensor bootloader params
199+ ${ESPTOOL} --chip esp32 image_info --version 2 0x01000.bin || echo image_info failed
200+ cp ../src/fonts/LICENSE.txt LICENSE-OpenSans.txt
201+ wget --no-verbose -O COPYRIGHT-ESP.html https://docs.espressif.com/projects/esp-idf/en/latest/esp32/COPYRIGHT.html
202+ wget --no-verbose -O LICENSE-ARDUINO-ESP32.md https://github.com/espressif/arduino-esp32/raw/master/LICENSE.md
203+ zip --junk-paths ../obspro-${{ env.OBS_VERSION }}-initial-flash.zip \
204+ 0x*.bin \
205+ COPYRIGHT-ESP.html \
206+ LICENSE-ARDUINO-ESP32.md \
207+ LICENSE-OpenSans.txt \
208+ LICENSE
209+ zip --junk-paths ../obspro-${{ env.OBS_VERSION }}.zip \
151210 firmware.bin \
152211 COPYRIGHT-ESP.html \
153212 LICENSE-ARDUINO-ESP32.md \
154213 LICENSE-OpenSans.txt \
155214 LICENSE
156215
157216 - name : Analyze with SonarCloud
217+ if : false
158218 env :
159219 SONAR_TOKEN : ${{ secrets.SONAR_TOKEN }}
160220 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
@@ -186,26 +246,50 @@ jobs:
186246 with :
187247 name : obs-${{ env.OBS_VERSION }}
188248 path : |
189- firmware.bin
190- COPYRIGHT-ESP.html
191- LICENSE-ARDUINO-ESP32.md
192- LICENSE-OpenSans.txt
193- LICENSE
249+ obs-classic/ firmware.bin
250+ obs-classic/ COPYRIGHT-ESP.html
251+ obs-classic/ LICENSE-ARDUINO-ESP32.md
252+ obs-classic/ LICENSE-OpenSans.txt
253+ obs-classic/ LICENSE
194254 if-no-files-found : error
195255
196256 - name : Upload Build Asset Initial Flash
197257 uses : actions/upload-artifact@v4
198258 with :
199259 name : obs-${{ env.OBS_VERSION }}-initial-flash
200260 path : |
201- 0x*.bin
202- COPYRIGHT-ESP.html
203- LICENSE-ARDUINO-ESP32.md
204- LICENSE-OpenSans.txt
205- LICENSE
261+ obs-classic/ 0x*.bin
262+ obs-classic/ COPYRIGHT-ESP.html
263+ obs-classic/ LICENSE-ARDUINO-ESP32.md
264+ obs-classic/ LICENSE-OpenSans.txt
265+ obs-classic/ LICENSE
206266 sonarqube-out/build-wrapper-dump.json
207267 if-no-files-found : error
208268
269+ - name : Upload Build Asset obspro
270+ uses : actions/upload-artifact@v4
271+ with :
272+ name : obspro-${{ env.OBS_VERSION }}
273+ path : |
274+ obs-pro/firmware.bin
275+ obs-pro/COPYRIGHT-ESP.html
276+ obs-pro/LICENSE-ARDUINO-ESP32.md
277+ obs-pro/LICENSE-OpenSans.txt
278+ obs-pro/LICENSE
279+ if-no-files-found : error
280+
281+ - name : Upload Build Asset Initial Flash obspro
282+ uses : actions/upload-artifact@v4
283+ with :
284+ name : obspro-${{ env.OBS_VERSION }}-initial-flash
285+ path : |
286+ obs-pro/0x*.bin
287+ obs-pro/COPYRIGHT-ESP.html
288+ obs-pro/LICENSE-ARDUINO-ESP32.md
289+ obs-pro/LICENSE-OpenSans.txt
290+ obs-pro/LICENSE
291+ if-no-files-found : error
292+
209293 - name : Generate changelog
210294 id : changelog
211295 if : ${{ env.OBS_PREPARE_RELEASE == 'true' }}
@@ -275,6 +359,42 @@ jobs:
275359 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
276360 with :
277361 upload_url : ${{ steps.create_release.outputs.upload_url }}
278- asset_path : ./bin/.pio/build/esp32dev /firmware.bin
362+ asset_path : ./bin/.pio/build/obs /firmware.bin
279363 asset_name : firmware.bin
280364 asset_content_type : application/x-esp32
365+
366+ - name : Upload Release Asset obspro
367+ id : upload-obspro-release-asset
368+ if : ${{ env.OBS_PREPARE_RELEASE == 'true' }}
369+ uses : actions/upload-release-asset@v1
370+ env :
371+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
372+ with :
373+ upload_url : ${{ steps.create_release.outputs.upload_url }}
374+ asset_path : ./obspro-${{ env.OBS_VERSION }}.zip
375+ asset_name : obspro-${{ env.OBS_VERSION }}.zip
376+ asset_content_type : application/zip
377+
378+ - name : Upload Release Asset Initial Flash pro
379+ id : upload-obspro-release-asset-initial-flash
380+ if : ${{ env.OBS_PREPARE_RELEASE == 'true' }}
381+ uses : actions/upload-release-asset@v1
382+ env :
383+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
384+ with :
385+ upload_url : ${{ steps.create_release.outputs.upload_url }}
386+ asset_path : ./obspro-${{ env.OBS_VERSION }}-initial-flash.zip
387+ asset_name : obspro-${{ env.OBS_VERSION }}-initial-flash.zip
388+ asset_content_type : application/zip
389+
390+ - name : Upload Release Asset app bin pro
391+ id : upload-obspro-release-asset-app-bin
392+ if : ${{ env.OBS_PREPARE_RELEASE == 'true' }}
393+ uses : actions/upload-release-asset@v1
394+ env :
395+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
396+ with :
397+ upload_url : ${{ steps.create_release.outputs.upload_url }}
398+ asset_path : ./bin/.pio/build/obspro/firmware.bin
399+ asset_name : firmware-obspro.bin
400+ asset_content_type : application/x-esp32
0 commit comments