Skip to content

UIFLOW2 Firmware Release #30

UIFLOW2 Firmware Release

UIFLOW2 Firmware Release #30

Workflow file for this run

name: UIFLOW2 Firmware Release
on:
push:
tags:
- '[0-9]+.[0-9]+.[0-9]+'
workflow_dispatch:
permissions:
contents: write
packages: write
jobs:
setup:
runs-on: ubuntu-latest
outputs:
cache-hit: ${{ steps.cache-esp-idf.outputs.cache-hit }}
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y git wget flex bison gperf quilt python3 python3-pip \
python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
- name: Cache esp-idf
uses: actions/cache@v4
id: cache-esp-idf
with:
path: |
~/.espressif
${{ github.workspace }}/esp-idf
key: ${{ runner.os }}-idf-v5.4.2
- name: Install ESP-IDF
if: steps.cache-esp-idf.outputs.cache-hit != 'true'
run: |
git clone --depth=1 -b $IDF_VERSION https://github.com/espressif/esp-idf.git
./esp-idf/install.sh
env:
IDF_VERSION: "v5.4.2"
- name: Setup environment
run: |
source tools/ci.sh && ci_esp32_idf542_setup
source esp-idf/export.sh
pip install future
make -C m5stack submodules
make -C m5stack patch
make -C m5stack littlefs
build:
needs: setup
runs-on: ubuntu-latest
strategy:
matrix:
board:
- M5STACK_AirQ
- M5STACK_Atom_Echo
- M5STACK_Atom_Lite
- M5STACK_Atom_Matrix
- M5STACK_AtomS3
- M5STACK_AtomS3_Lite
- M5STACK_AtomS3R
- M5STACK_AtomS3R_CAM
- M5STACK_AtomS3U
- M5STACK_AtomU
- M5STACK_Basic
- M5STACK_Basic_4MB
- M5STACK_Capsule
- M5STACK_Cardputer
- M5STACK_CardputerADV
- M5STACK_Core2
- M5STACK_CoreInk
- M5STACK_CoreS3
- M5STACK_Dial
- M5STACK_DinMeter
- M5STACK_Fire
- M5STACK_NanoC6
- M5STACK_Paper
- M5STACK_PaperS3
- M5STACK_Stamp_PICO
- M5STACK_StamPLC
- M5STACK_StampS3
- M5STACK_Station
- M5STACK_StickC
- M5STACK_StickC_PLUS
- M5STACK_StickC_PLUS2
- M5STACK_Tab5
- M5STACK_Tough
- ESPRESSIF_ESP32_S3_BOX_3
- SEEED_STUDIO_XIAO_ESP32S3
max-parallel: 4
steps:
- uses: actions/checkout@v4
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y git wget flex bison gperf quilt python3 python3-pip \
python3-venv cmake ninja-build ccache libffi-dev libssl-dev dfu-util libusb-1.0-0
- name: Restore ESP-IDF cache
uses: actions/cache@v4
with:
path: |
~/.espressif
${{ github.workspace }}/esp-idf
key: ${{ runner.os }}-idf-v5.4.2
- name: Prepare environment
run: |
source esp-idf/export.sh
- name: Build M5Stack ${{ matrix.board }}
if: startsWith(matrix.board, 'M5STACK')
run: |
source esp-idf/export.sh
pip install future
make -C m5stack submodules
make -C m5stack patch
make -C m5stack littlefs
make -C m5stack BOARD=${{ matrix.board }} pack_all
- name: Build third-party ${{ matrix.board }}
if: "!startsWith(matrix.board, 'M5STACK')"
run: |
source esp-idf/export.sh
pip install future
make -C m5stack submodules
make -C m5stack patch
make -C m5stack littlefs
make -C third-party BOARD=${{ matrix.board }} pack_all
- name: Upload firmware artifact
uses: actions/upload-artifact@v4
with:
name: firmware-${{ matrix.board }}
path: |
${{ startsWith(matrix.board, 'M5STACK') && 'm5stack' || 'third-party' }}/build-${{ matrix.board }}/uiflow-*-*.bin
- name: Upload firmware to release
uses: softprops/action-gh-release@v2
if: startsWith(github.ref, 'refs/tags/')
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
files: |
${{ startsWith(matrix.board, 'M5STACK') && 'm5stack' || 'third-party' }}/build-${{ matrix.board }}/uiflow-*-*.bin