Skip to content

github/workflows: Compile firmware in parallel using a matrix strategy. #80

github/workflows: Compile firmware in parallel using a matrix strategy.

github/workflows: Compile firmware in parallel using a matrix strategy. #80

Workflow file for this run

name: m5stack port
on:
push: {}
pull_request:
paths:
- '.github/workflows/*.yml'
- 'tools/**'
- 'micropython/py/**'
- 'micropython/extmod/**'
- 'micropython/lib/**'
- 'micropython/drivers/**'
- 'm5stack/**'
- "third-party/**"
workflow_dispatch: {}
jobs:
build:
runs-on: [self-hosted, Linux, X64]
strategy:
matrix:
board:
- M5STACK_AirQ
- M5STACK_Atom_Echo
- M5STACK_Atom_Lite
steps:
- uses: actions/[email protected]
- name: Install dependencies with apt
run: |
sudo apt-get update
sudo apt-get install 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 -y
- 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.1
- name: Install ESP-IDF
if: steps.cache-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.1"
- name: Install packages
run: |
source tools/ci.sh && ci_esp32_idf541_setup
source esp-idf/export.sh
pip install future
make -C m5stack submodules
make -C m5stack patch
make -C m5stack littlefs
- name: Build for ${{ matrix.board }}
run: |
source esp-idf/export.sh
make -C m5stack BOARD=${{ matrix.board }} pack_all