Skip to content

Merge pull request #16 from vs4vijay/renovate/esp-idf-svc-0.x #98

Merge pull request #16 from vs4vijay/renovate/esp-idf-svc-0.x

Merge pull request #16 from vs4vijay/renovate/esp-idf-svc-0.x #98

---
name: Build and Release Firmwares
on:
workflow_dispatch:
push:
branches:
- main
tags:
- "*"
pull_request:
branches:
- main
permissions:
contents: write
jobs:
# compile_playground_sketch:
# runs-on: ubuntu-latest
# steps:
# - uses: actions/checkout@v4
# - name: Compile demo sketch on ESP32
# uses: arduino/compile-sketches@v1
# with:
# sketch-paths: |
# - ./iot-playground.ino
# libraries: |
# -
# enable-deltas-report: true
# enable-warnings-report: true
# sketches-report-path: ${{ env.SKETCHES_REPORTS_PATH }}
# - name: List all files
# if: always()
# continue-on-error: true
# run: |
# set -x +e
# pwd
# ls -all
# tree
# - name: Upload firmware
# uses: actions/upload-artifact@v4
# with:
# path: iot-playground.ino.bin
# name: iot-playground
# compression-level: 0
# if-no-files-found: error
compile_one_button_m5stickc_plus2:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Update submodules
run: |
git submodule update --init --recursive --force --remote
- id: version
name: Get Version
run: |
set -x
if [[ "${{ github.ref_type }}" == "tag" ]]; then
version=${{ github.ref_name }}
else
version="${GITHUB_SHA::7}"
fi
echo "version=${version}" > $GITHUB_OUTPUT
- name: Setup Arduino CLI
uses: arduino/setup-arduino-cli@v1
- name: Install platform
run: |
set -x
arduino-cli core install m5stack:esp32 --additional-urls "file:///${PWD}/package_m5stack_index.json"
arduino-cli core search m5stack
arduino-cli board listall
arduino-cli lib install M5StickCPlus2 --log-level warn --verbose
- name: Install esptool
run: |
set -x
pip install -U esptool
- name: Compile OneButton Sketch
working-directory: M5StickCPlus2/EXamples/OneButton-main/OneButton
run: |
arduino-cli compile --fqbn m5stack:esp32:m5stack_stickc_plus2 -e \
--build-property build.partitions=huge_app \
--build-property upload.maximum_size=3145728 \
--libraries M5StickCPlus2 \
./OneButton.ino
- name: List all files
if: always()
continue-on-error: true
working-directory: M5StickCPlus2/EXamples/OneButton-main/OneButton
run: |
set -x
pwd
ls -all
tree
- name: Create OneButton firmware
working-directory: M5StickCPlus2/EXamples/OneButton-main/OneButton
run: |
set -x
esptool.py --chip esp32s3 merge_bin --output OneButton-${{ steps.version.outputs.version }}.M5StickCPlus2.bin \
0x1000 build/m5stack.esp32.m5stack_stickc_plus2/OneButton.ino.bootloader.bin \
0x8000 build/m5stack.esp32.m5stack_stickc_plus2/OneButton.ino.partitions.bin \
0x10000 build/m5stack.esp32.m5stack_stickc_plus2/OneButton.ino.bin
- name: Upload OneButton firmware
uses: actions/upload-artifact@v6
with:
path: M5StickCPlus2/EXamples/OneButton-main/OneButton/OneButton-${{ steps.version.outputs.version }}.M5StickCPlus2.bin
name: OneButton.M5StickCPlus2
compression-level: 0
if-no-files-found: error
compile_user_demo_m5stickc_plus2:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
- name: Update submodules
run: |
git submodule update --init --recursive --force --remote
- id: version
name: Get Version
run: |
set -x
if [[ "${{ github.ref_type }}" == "tag" ]]; then
version=${{ github.ref_name }}
else
version="${GITHUB_SHA::7}"
fi
echo "version=${version}" > $GITHUB_OUTPUT
- uses: actions/setup-python@v6
with:
python-version: "3.9"
- name: Install esptool
run: pip install -U esptool
- name: Install PlatformIO core
run: pip install -U platformio
- name: List all files
if: always()
continue-on-error: true
working-directory: M5StickCPlus2-UserDemo
run: |
set -x
pwd
ls -all
tree
- name: Compile using PlatformIO
working-directory: M5StickCPlus2-UserDemo
run: |
set -x
cat platformio.ini
# Update the M5GFX version
# sed -i 's/m5stack\/M5GFX @ .*/m5stack\/M5GFX @ 0.1.14/g' platformio.ini
pio pkg install -l m5stack/M5GFX
pio run
- name: List all files
if: always()
continue-on-error: true
working-directory: M5StickCPlus2-UserDemo
run: |
set -x
pwd
ls -all
tree
- name: Move firmware binary
continue-on-error: true
working-directory: M5StickCPlus2-UserDemo
run: |
set -x
cp .pio/build/m5stick-c/firmware.bin UserDemo-${{ steps.version.outputs.version }}.M5StickCPlus2.bin
- name: List all files
if: always()
continue-on-error: true
working-directory: M5StickCPlus2-UserDemo
run: |
set -x
pwd
ls -all
tree
- name: Upload UserDemo.M5StickCPlus2 firmware
uses: actions/upload-artifact@v6
with:
path: M5StickCPlus2-UserDemo/UserDemo-${{ steps.version.outputs.version }}.M5StickCPlus2.bin
name: UserDemo.M5StickCPlus2
compression-level: 0
if-no-files-found: error
compile_user_demo_m5cardputer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: recursive
- id: version
name: Get Version
run: |
set -x
if [[ "${{ github.ref_type }}" == "tag" ]]; then
version=${{ github.ref_name }}
else
version="${GITHUB_SHA::7}"
fi
echo "version=${version}" > $GITHUB_OUTPUT
- name: Install esptool
run: |
set -x
pip install -U esptool
- name: Compile using esp-idf build
uses: espressif/esp-idf-ci-action@v1
with:
esp_idf_version: v4.4.6
target: esp32s3
path: M5Cardputer-UserDemo
- name: List all files
if: always()
continue-on-error: true
run: |
set -x
pwd
ls -all
tree
- name: Create UserDemo.M5Cardputer firmware
working-directory: M5Cardputer-UserDemo/build
run: |
set -x
esptool.py --chip esp32s3 merge_bin --output ../../UserDemo-${{ steps.version.outputs.version }}.M5Cardputer.bin @flash_args
# esptool.py --chip esp32s3 merge_bin --output ../../UserDemo.M5Cardputer.bin \
# 0x0 bootloader/bootloader.bin \
# 0x8000 partition_table/partition-table.bin \
# 0x10000 cardputer.bin
- name: List all files
if: always()
continue-on-error: true
run: |
set -x
pwd
ls -all
tree
- name: Upload UserDemo.M5Cardputer firmware
uses: actions/upload-artifact@v6
with:
path: UserDemo-${{ steps.version.outputs.version }}.M5Cardputer.bin
name: UserDemo.M5Cardputer
compression-level: 0
if-no-files-found: error
compile_m5card_remote_m5cardputer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Update submodules
run: |
git submodule update --init --recursive --force --remote
- id: version
name: Get Version
run: |
set -x
if [[ "${{ github.ref_type }}" == "tag" ]]; then
version=${{ github.ref_name }}
else
version="${GITHUB_SHA::7}"
fi
echo "version=${version}" > $GITHUB_OUTPUT
- name: Setup Arduino CLI
uses: arduino/setup-arduino-cli@v1
- name: Install platform
run: |
set -x
arduino-cli core install m5stack:esp32 --additional-urls "file:///${PWD}/package_m5stack_index.json"
arduino-cli core search m5stack
arduino-cli board listall
arduino-cli lib install M5Cardputer IRremote --log-level warn --verbose
- name: Install esptool
run: |
set -x
pip install -U esptool
- name: Compile M5CardRemote Sketch
working-directory: M5CardRemote/M5CardRemote
run: |
arduino-cli compile --fqbn m5stack:esp32:m5stack_cardputer -e \
--build-property build.partitions=huge_app \
--build-property upload.maximum_size=3145728 \
./M5CardRemote.ino
- name: List all files
if: always()
continue-on-error: true
working-directory: M5CardRemote/M5CardRemote
run: |
set -x
pwd
ls -all
tree
- name: Create M5CardRemote firmware
working-directory: M5CardRemote/M5CardRemote
run: |
set -x
esptool.py --chip esp32s3 merge_bin --output M5CardRemote-${{ steps.version.outputs.version }}.M5Cardputer.bin \
0x0000 build/m5stack.esp32.m5stack_cardputer/M5CardRemote.ino.bootloader.bin \
0x8000 build/m5stack.esp32.m5stack_cardputer/M5CardRemote.ino.partitions.bin \
0x10000 build/m5stack.esp32.m5stack_cardputer/M5CardRemote.ino.bin
- name: Upload M5CardRemote firmware
uses: actions/upload-artifact@v6
with:
path: M5CardRemote/M5CardRemote/M5CardRemote-${{ steps.version.outputs.version }}.M5Cardputer.bin
name: M5CardRemote.M5Cardputer
compression-level: 0
if-no-files-found: error
compile_resistor_m5cardputer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Update submodules
run: |
git submodule update --init --recursive --force --remote
- id: version
name: Get Version
run: |
set -x
if [[ "${{ github.ref_type }}" == "tag" ]]; then
version=${{ github.ref_name }}
else
version="${GITHUB_SHA::7}"
fi
echo "version=${version}" > $GITHUB_OUTPUT
- name: Setup Arduino CLI
uses: arduino/setup-arduino-cli@v1
- name: Install platform
run: |
set -x
arduino-cli core install m5stack:esp32 --additional-urls "file:///${PWD}/package_m5stack_index.json"
arduino-cli core search m5stack
arduino-cli board listall
arduino-cli lib install M5Cardputer --log-level warn --verbose
- name: Install esptool
run: |
set -x
pip install -U esptool
- name: Compile Resistor Sketch
working-directory: Cardputer/Resistor
run: |
arduino-cli compile --fqbn m5stack:esp32:m5stack_cardputer -e \
--build-property build.partitions=huge_app \
--build-property upload.maximum_size=3145728 \
./Resistor.ino
- name: List all files
if: always()
continue-on-error: true
working-directory: Cardputer/Resistor
run: |
set -x
pwd
ls -all
tree
- name: Create Resistor firmware
working-directory: Cardputer/Resistor
run: |
set -x
esptool.py --chip esp32s3 merge_bin --output Resistor-${{ steps.version.outputs.version }}.M5Cardputer.bin \
0x0000 build/m5stack.esp32.m5stack_cardputer/Resistor.ino.bootloader.bin \
0x8000 build/m5stack.esp32.m5stack_cardputer/Resistor.ino.partitions.bin \
0x10000 build/m5stack.esp32.m5stack_cardputer/Resistor.ino.bin
- name: Upload Resistor firmware
uses: actions/upload-artifact@v6
with:
path: Cardputer/Resistor/Resistor-${{ steps.version.outputs.version }}.M5Cardputer.bin
name: Resistor.M5Cardputer
compression-level: 0
if-no-files-found: error
compile_m5launcher_m5cardputer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Update submodules
run: |
git submodule update --init --recursive --force --remote
- id: version
name: Get Version
run: |
set -x
if [[ "${{ github.ref_type }}" == "tag" ]]; then
version=${{ github.ref_name }}
else
version="${GITHUB_SHA::7}"
fi
echo "version=${version}" > $GITHUB_OUTPUT
- name: Install PlatformIO core
run: pip install -U platformio
- name: List all files
if: always()
continue-on-error: true
working-directory: M5Stick-Launcher
run: |
set -x
pwd
ls -all
tree
- name: Compile using PlatformIO
working-directory: M5Stick-Launcher
run: |
set -x
pio run --environment m5stack-cardputer
- name: List all files
if: always()
continue-on-error: true
working-directory: M5Stick-Launcher
run: |
set -x
pwd
ls -all
tree
- name: Move firmware binary
continue-on-error: true
working-directory: M5Stick-Launcher
run: |
set -x
cp .pio/build/m5stack-cardputer/firmware.bin M5Stick-Launcher-${{ steps.version.outputs.version }}.M5Cardputer.bin
- name: List all files
if: always()
continue-on-error: true
working-directory: M5Stick-Launcher
run: |
set -x
pwd
ls -all
tree
- name: Upload M5Launcher firmware
uses: actions/upload-artifact@v6
with:
path: M5Stick-Launcher/M5Stick-Launcher-${{ steps.version.outputs.version }}.M5Cardputer.bin
name: M5Launcher.M5Cardputer
compression-level: 0
if-no-files-found: error
compile_gb_m5cardputer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Update submodules
run: |
git submodule update --init --recursive --force --remote
- id: version
name: Get Version
run: |
set -x
if [[ "${{ github.ref_type }}" == "tag" ]]; then
version=${{ github.ref_name }}
else
version="${GITHUB_SHA::7}"
fi
echo "version=${version}" > $GITHUB_OUTPUT
- name: Setup Arduino CLI
uses: arduino/setup-arduino-cli@v1
- name: Install platform
run: |
set -x
arduino-cli core install m5stack:esp32 --additional-urls "https://m5stack.oss-cn-shenzhen.aliyuncs.com/resource/arduino/package_m5stack_index.json"
arduino-cli core search m5stack
arduino-cli board listall
arduino-cli lib install M5Cardputer --log-level warn --verbose
- name: Install esptool
run: |
set -x
pip install -U esptool
- name: Compile GameBoy Cardputer Sketch
working-directory: gb_cardputer
run: |
arduino-cli compile --fqbn m5stack:esp32:m5stack_cardputer -e \
--build-property build.partitions=huge_app \
--build-property upload.maximum_size=3145728 \
./gb_cardputer.ino
- name: List all files
if: always()
continue-on-error: true
working-directory: gb_cardputer
run: |
set -x
pwd
ls -all
tree
- name: Create GameBoy Cardputer firmware
working-directory: gb_cardputer
run: |
set -x
esptool.py --chip esp32s3 merge_bin --output GameBoy-${{ steps.version.outputs.version }}.M5Cardputer.bin \
0x0000 build/m5stack.esp32.m5stack_cardputer/gb_cardputer.ino.bootloader.bin \
0x8000 build/m5stack.esp32.m5stack_cardputer/gb_cardputer.ino.partitions.bin \
0x10000 build/m5stack.esp32.m5stack_cardputer/gb_cardputer.ino.bin
- name: Upload GameBoy Cardputer firmware
uses: actions/upload-artifact@v6
with:
path: gb_cardputer/GameBoy-${{ steps.version.outputs.version }}.M5Cardputer.bin
name: GameBoy.M5Cardputer
compression-level: 0
if-no-files-found: error
compile_evil_clock_m5stickc_plus2:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Update submodules
run: |
git submodule update --init --recursive --force --remote
- id: version
name: Get Version
run: |
set -x
if [[ "${{ github.ref_type }}" == "tag" ]]; then
version=${{ github.ref_name }}
else
version="${GITHUB_SHA::7}"
fi
echo "version=${version}" > $GITHUB_OUTPUT
- name: Setup Arduino CLI
uses: arduino/setup-arduino-cli@v1
- name: Install platform
run: |
set -x
arduino-cli core install m5stack:esp32 --additional-urls "file:///${PWD}/package_m5stack_index.json"
arduino-cli core search m5stack
arduino-cli board listall
arduino-cli lib install M5StickCPlus2 IRremoteESP8266 TFT_eSPI ESP32Time --log-level warn --verbose
- name: Install esptool
run: |
set -x
pip install -U esptool
- name: Compile Evil Clock Sketch
working-directory: evilClock/evilClock
run: |
arduino-cli compile --fqbn m5stack:esp32:m5stack_stickc_plus2 -e \
--build-property build.partitions=huge_app \
--build-property upload.maximum_size=3145728 \
./evilClock.ino
- name: List all files
if: always()
continue-on-error: true
working-directory: evilClock/evilClock
run: |
set -x
pwd
ls -all
tree
- name: Create Evil Clock firmware
working-directory: evilClock/evilClock
run: |
set -x
esptool.py --chip esp32s3 merge_bin --output EvilClock-${{ steps.version.outputs.version }}.M5StickCPlus2.bin \
0x1000 build/m5stack.esp32.m5stack_stickc_plus2/evilClock.ino.bootloader.bin \
0x8000 build/m5stack.esp32.m5stack_stickc_plus2/evilClock.ino.partitions.bin \
0x10000 build/m5stack.esp32.m5stack_stickc_plus2/evilClock.ino.bin
- name: Upload Evil Clock firmware
uses: actions/upload-artifact@v6
with:
path: evilClock/evilClock/EvilClock-${{ steps.version.outputs.version }}.M5StickCPlus2.bin
name: EvilClock.M5StickCPlus2
compression-level: 0
if-no-files-found: error
compile_evil_cardputer:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
with:
submodules: true
- name: Update submodules
run: |
git submodule update --init --recursive --force --remote
- id: version
name: Get Version
run: |
set -x
if [[ "${{ github.ref_type }}" == "tag" ]]; then
version=${{ github.ref_name }}
else
version="${GITHUB_SHA::7}"
fi
echo "version=${version}" > $GITHUB_OUTPUT
- name: Setup Arduino CLI
uses: arduino/setup-arduino-cli@v1
- name: Install platform
run: |
set -x
arduino-cli core install m5stack:esp32 --additional-urls "file:///${PWD}/package_m5stack_index.json"
arduino-cli core search m5stack
arduino-cli board listall
arduino-cli lib install M5Cardputer M5Unified IRremoteESP8266 ArduinoJson TinyGpsPlus \
"Adafruit NeoPixel" M5Stack_Avatar --log-level warn --verbose
- name: Install esptool
run: |
set -x
pip install -U esptool
- name: Compile Evil Cardputer Sketch
working-directory: Evil-M5Core2
run: |
# Creating a new directory
mkdir Evil-Cardputer
mv *Cardputer*.ino Evil-Cardputer/Evil-Cardputer.ino
cd Evil-Cardputer
# -zmuldefs
#
# --build-property compiler.c.elf.libs.esp32=" -zmuldefs " \
# --build-property compiler.cpp.extra_flags="-zmuldefs" \
# --build-property compiler.c.elf.libs.esp32s3=-zmuldefs \
# --build-property compiler.c.elf.extra_flags=-zmuldefs \
arduino-cli compile --fqbn m5stack:esp32:m5stack_cardputer -e \
--build-property build.partitions=huge_app \
--build-property upload.maximum_size=3145728 \
--build-property compiler.c.elf.extra_flags=-zmuldefs \
./Evil-Cardputer.ino
- name: List all files
if: always()
continue-on-error: true
working-directory: Evil-M5Core2
run: |
set -x
pwd
ls -all
tree
- name: Create Evil Cardputer firmware
working-directory: Evil-M5Core2/Evil-Cardputer
run: |
set -x
esptool.py --chip esp32s3 merge_bin --output Evil-Cardputer-${{ steps.version.outputs.version }}.bin \
0x1000 build/m5stack.esp32.m5stack_cardputer/Evil-Cardputer.ino.bootloader.bin \
0x8000 build/m5stack.esp32.m5stack_cardputer/Evil-Cardputer.ino.partitions.bin \
0x10000 build/m5stack.esp32.m5stack_cardputer/Evil-Cardputer.ino.bin
- name: Upload Evil Cardputer firmware
uses: actions/upload-artifact@v6
with:
path: Evil-M5Core2/Evil-Cardputer/Evil-Cardputer-${{ steps.version.outputs.version }}.bin
name: Evil-Cardputer
compression-level: 0
if-no-files-found: error
create_release:
runs-on: ubuntu-latest
environment: github_release
# needs:
# - compile_one_button_m5stickc_plus2
# - compile_user_demo_m5stickc_plus2
# - compile_user_demo_m5cardputer
# - compile_m5card_remote_m5cardputer
# - compile_resistor_m5cardputer
# if: github.event_name == 'push' || github.event_name == 'workflow_dispatch'
steps:
- id: version
name: Get Version
run: |
set -x
if [[ "${{ github.ref_type }}" == "tag" ]]; then
version=${{ github.ref_name }}
else
version="${GITHUB_SHA::7}"
fi
echo "version=${version}" > $GITHUB_OUTPUT
- uses: actions/download-artifact@v7
with:
merge-multiple: true
- name: List all files
if: always()
continue-on-error: true
run: |
set -x
pwd
ls -all
tree
- name: Create Release ${{ steps.version.outputs.version }}
uses: softprops/action-gh-release@v2
with:
name: Release ${{ steps.version.outputs.version }}
tag_name: ${{ steps.version.outputs.version }}
generate_release_notes: true
files: |
*.bin