Add Github CI

Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
This commit is contained in:
Álvaro Fernández Rojas 2023-05-29 18:42:18 +02:00
parent 847a808351
commit eb2abb6994

134
.github/workflows/ci.yaml vendored Normal file
View file

@ -0,0 +1,134 @@
name: ESPSomfy-RTS
on: [push, pull_request]
env:
ARDUINO_BOARD_MANAGER_ADDITIONAL_URLS: "https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_dev_index.json"
LITTLEFS_VERSION: "v2.5.1"
MKLITTLEFS_VERSION: "3.1.0"
PYTHON_VERSION: "3.10"
jobs:
littlefs:
name: LittleFS
runs-on: ubuntu-latest
steps:
- name: Check out code
uses: actions/checkout@v3
- name: Checkout mklittlefs
uses: actions/checkout@v3
with:
repository: earlephilhower/mklittlefs
path: mklittlefs
ref: ${{ env.MKLITTLEFS_VERSION }}
- name: Checkout LittleFS
uses: actions/checkout@v3
with:
repository: littlefs-project/littlefs
path: mklittlefs/littlefs
ref: ${{ env.LITTLEFS_VERSION }}
- name: Build mklittlefs
run: |
make -C mklittlefs
- name: Create LittleFS
run: |
./mklittlefs/mklittlefs --create data --size 1441792 SomfyController.littlefs.bin
- name: Upload binaries
uses: actions/upload-artifact@v3
with:
name: LittleFS
path: SomfyController.littlefs.bin
retention-days: 5
arduino:
name: ${{ matrix.name }}
needs: [littlefs]
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
board: [esp32, lolin_s2_mini]
include:
- board: esp32
chip: ESP32
flash_size: 4MB
fqbn: esp32:esp32:esp32
name: ESP32
- board: lolin_s2_mini
chip: ESP32-S2
flash_size: 4MB
fqbn: esp32:esp32:lolin_s2_mini
name: LOLIN-S2-mini
steps:
- name: Check out code
uses: actions/checkout@v3
with:
path: SomfyController
- name: Get LittleFS
uses: actions/download-artifact@v3
with:
name: LittleFS
- name: Install Python ${{ env.PYTHON_VERSION }}
uses: actions/setup-python@v4
with:
python-version: ${{ env.PYTHON_VERSION }}
- name: Upgrade pip
run: |
python -m pip install --upgrade pip
pip --version
- name: Install ESPTool
run: |
pip install esptool
- name: Install Arduino CLI
uses: arduino/setup-arduino-cli@v1
- name: Configure Arduino CLI
run: |
arduino-cli core update-index
arduino-cli core install esp32:esp32
- name: Configure Arduino Libraries
run: |
arduino-cli lib install ArduinoJson
arduino-cli lib install PubSubClient
arduino-cli lib install SmartRC-CC1101-Driver-Lib
arduino-cli lib install WebSockets
- name: Build ${{ matrix.name }}
run: |
mkdir -p build
arduino-cli compile --clean --output-dir build --fqbn ${{ matrix.fqbn }} ./SomfyController
- name: ${{ matrix.name }} Image
run: |
python -m esptool --chip ${{ matrix.chip }} \
merge_bin -o build/SomfyController.onboard.bin \
--flash_size ${{ matrix.flash_size }} \
0x1000 build/SomfyController.ino.bootloader.bin \
0x8000 build/SomfyController.ino.partitions.bin \
0x10000 build/SomfyController.ino.bin \
0x290000 SomfyController.littlefs.bin
- name: Upload ${{ matrix.name }}
uses: actions/upload-artifact@v3
with:
name: ${{ matrix.name }}
path: |
build/SomfyController.ino.bin
build/SomfyController.ino.bootloader.bin
build/SomfyController.ino.partitions.bin
build/SomfyController.onboard.bin
retention-days: 5