LoRa_APRS_iGate/.github/workflows/build.yml
2024-05-24 15:18:21 -04:00

117 lines
5.5 KiB
YAML

name: Build Release
on:
release:
types: [published]
jobs:
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
board:
- name: ttgo-lora32-v21
board_type: esp32
- name: heltec-lora32-v2
board_type: esp32
- name: heltec_wifi_lora_32_V3
board_type: esp32s3
- name: heltec_wireless_stick
board_type: esp32s3
- name: heltec_wireless_stick_lite_v3
board_type: esp32s3
- name: heltec_ht-ct62
board_type: esp32c3
- name: ESP32_DIY_LoRa
board_type: esp32
- name: ESP32_DIY_1W_LoRa
board_type: esp32
- name: ttgo-t-beam-v1_2
board_type: esp32
- name: ttgo-t-beam-v1
board_type: esp32
- name: ttgo-t-beam-v1_SX1268
board_type: esp32
- name: ttgo-t-beam-v1_2_SX1262
board_type: esp32
- name: ESP32_DIY_LoRa_A7670
board_type: esp32
- name: heltec_wireless_tracker
board_type: esp32s3
- name: OE5HWN_MeshCom
board_type: esp32
- name: WEMOS-LOLIN32-OLED-DIY
board_type: esp32
- name: WEMOS-D1-R32-RA02
board_type: esp32
- name: ttgo-lora32-v21-915
board_type: esp32
steps:
- uses: actions/checkout@v3
- uses: actions/setup-python@v4
with:
python-version: "3.9"
- name: Install PlatformIO Core
run: pip install --upgrade platformio
- name: Determine board type
run: |
if [[ "${{ matrix.board.board_type }}" == "esp32s3" ]]; then
export BOARD_ENV="esp32s3"
else
if [[ "${{ matrix.board.board_type }}" == "esp32c3" ]]; then
export BOARD_ENV="esp32c3"
else
export BOARD_ENV="esp32"
fi
fi
shell: bash
- name: Build target
run: |
pio run -e ${{ matrix.board.name }} --environment $BOARD_ENV
- name: Build FS
run: |
pio run --target buildfs -e ${{ matrix.board.name }} --environment $BOARD_ENV
- name: Move Files
run: |
mkdir -p installer/firmware
cp .pio/build/${{ matrix.board.name }}/firmware.bin installer/ota_update.bin
cp .pio/build/${{ matrix.board.name }}/firmware.bin installer/firmware/
cp .pio/build/${{ matrix.board.name }}/bootloader.bin installer/firmware/
cp .pio/build/${{ matrix.board.name }}/partitions.bin installer/firmware/
cp .pio/build/${{ matrix.board.name }}/spiffs.bin installer/firmware/
cp ~/.platformio/packages/framework-arduinoespressif32/tools/partitions/boot_app0.bin installer/firmware/
#- name: Merge for web flashing
# run: |
# python installer/bin/esptool/esptool.py --chip esp32 merge_bin -o installer/web_upgrade.bin --flash_mode dio --flash_freq 40m --flash_size 4MB 0x1000 installer/firmware/bootloader.bin 0x8000 installer/firmware/partitions.bin 0xe000 installer/firmware/boot_app0.bin 0x10000 installer/firmware/firmware.bin
# python installer/bin/esptool/esptool.py --chip esp32 merge_bin -o installer/web_factory.bin --flash_mode dio --flash_freq 40m --flash_size 4MB 0x1000 installer/firmware/bootloader.bin 0x8000 installer/firmware/partitions.bin 0xe000 installer/firmware/boot_app0.bin 0x10000 installer/firmware/firmware.bin 2686976 installer/firmware/spiffs.bin
# python3 -m esptool --chip $BOARD_ENV merge_bin -o installer/web_upgrade.bin --flash_mode dio --flash_freq 40m --flash_size 4MB 0x1000 installer/firmware/bootloader.bin 0x9000 installer/firmware/partitions.bin 0xe000 installer/firmware/boot_app0.bin 0x10000 installer/firmware/firmware.bin
- name: Merge for web flashing
run: |
python3 -m pip install esptool
python3 -m esptool --chip $BOARD_ENV merge_bin -o installer/web_factory.bin --flash_mode dio --flash_freq 40m --flash_size 4MB 0x1000 installer/firmware/bootloader.bin 0x9000 installer/firmware/partitions.bin 0xe000 installer/firmware/boot_app0.bin 0x10000 installer/firmware/firmware.bin 0x3D0000 installer/firmware/spiffs.bin
- name: Install Zip
run: sudo apt-get install zip
- name: Archive Files
run: zip -r installer.zip installer/
- name: Upload Release Asset
uses: actions/upload-release-asset@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ github.event.release.upload_url }}
asset_path: ./installer.zip
asset_name: ${{ matrix.board.name }}.zip
asset_content_type: application/zip