Skip to content

Update build.yml

Update build.yml #12

Workflow file for this run

name: build
on: [push, pull_request]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
with:
path: ESP32-SOCKETIO
- name: Setup Arduino CLI
uses: arduino/[email protected]
- name: Install Python
uses: actions/setup-python@v1
with:
python-version: '3.10'
- name: Install requirements
run: |
pip install pyserial
echo ${{github.ref}}
- name: Install platform
run: |
arduino-cli core update-index --additional-urls https://api.jsonbin.io/v3/qs/66291472e41b4d34e4e97631
arduino-cli core install esp32:esp32 --additional-urls https://api.jsonbin.io/v3/qs/66291472e41b4d34e4e97631
- name: Install libraries
run: |
arduino-cli lib install FastLED
arduino-cli lib install WebSockets
arduino-cli lib install ArduinoJson
arduino-cli lib install AceButton
- name: Checkout ESPAsyncWebServer
uses: actions/checkout@v2
with:
repository: me-no-dev/ESPAsyncWebServer
path: ESPAsyncWebServer
- name: Checkout AsyncTCP
uses: actions/checkout@v2
with:
repository: me-no-dev/AsyncTCP
path: AsyncTCP
- name: Checkout SocketIoClient
uses: actions/checkout@v2
with:
repository: timum-viw/socket.io-client
path: SocketIoClient
- name: Move libs to Arduino directory
run: |
mv ESPAsyncWebServer /home/runner/Arduino/libraries/ESPAsyncWebServer
mv AsyncTCP /home/runner/Arduino/libraries/AsyncTCP
mv SocketIoClient /home/runner/Arduino/libraries/SocketIoClient
- name: Compile
run: |
mkdir build
echo "Compiling ${{github.repository}}..."
arduino-cli compile -v -b esp32:esp32:esp32 --build-properties build.partitions=minimal,upload.maximum_size=1966080 --output-dir build ESP32-SOCKETIO
- name: Create spiffs binary
run: |
/home/runner/.arduino15/packages/esp32/tools/mkspiffs/0.2.3/mkspiffs -c ESP32-SOCKETIO/data -b 4096 -p 256 -s 0xB0000 build/spiffs.bin
- name: Checkout esp_binary_merger
uses: actions/checkout@v2
with:
repository: vtunr/esp32_binary_merger
path: esp32_binary_merger
- name: Merge binaries
run: |
python esp32_binary_merger/merge_bin_esp.py \
--output_name app-combined.bin \
--bin_path /home/runner/.arduino15/packages/esp32/hardware/esp32/1.0.5/tools/sdk/bin/bootloader_dio_80m.bin build/ESP32-SOCKETIO.ino.partitions.bin build/ESP32-SOCKETIO.ino.bin build/spiffs.bin \
--bin_address 0x1000 0x8000 0x10000 0x150000
mv output/app-combined.bin build/app-combined.bin
mv build/ESP32-SOCKETIO.ino.bin build/app.bin
- name: Upload artifacts
uses: actions/upload-artifact@v2
with:
name: build
path: build/
- name: Create Release
id: create_release
uses: actions/create-release@v1
if: startsWith(github.ref, 'refs/tags/v')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: ${{ github.ref }}
release_name: Yo-Yo Machines Firmware ${{ github.ref }}
draft: true
prerelease: false
- name: Upload app-combined.bin to Release
id: upload-release-asset-1
uses: actions/upload-release-asset@v1
if: startsWith(github.ref, 'refs/tags/v')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/app-combined.bin
asset_name: app-combined.bin
asset_content_type: application/octet-stream
- name: Upload app.bin to Release
id: upload-release-asset-2
uses: actions/upload-release-asset@v1
if: startsWith(github.ref, 'refs/tags/v')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
upload_url: ${{ steps.create_release.outputs.upload_url }}
asset_path: build/app.bin
asset_name: app.bin
asset_content_type: application/octet-stream