Skip to content

Merge pull request #27 from mathieucarbou/dependabot/github_actions/a… #303

Merge pull request #27 from mathieucarbou/dependabot/github_actions/a…

Merge pull request #27 from mathieucarbou/dependabot/github_actions/a… #303

Workflow file for this run

# yaml-language-server: $schema=https://json.schemastore.org/github-workflow.json
name: Build
on:
workflow_dispatch:
push:
tags: ["v*"]
branches: ["main"]
paths-ignore: ["docs/**", "**/*.md"]
pull_request:
paths-ignore: ["docs/**", "**/*.md"]
concurrency:
group: ${{ github.workflow }}-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true
jobs:
build:
name: Build safeboot-${{ matrix.board }}.bin
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
board:
[
"denky_d4",
"esp32-c3-devkitc-02",
"esp32-c6-devkitc-1",
"esp32-gateway",
"esp32-poe-iso",
"esp32-poe",
"esp32-s2-saola-1",
"esp32-s3-devkitc-1",
# "esp32-solo1",
"esp32dev",
"esp32s3box",
"lilygo-t-eth-lite-s3",
"lolin_s2_mini",
"tinypico",
"waveshare_esp32s3_eth",
"wemos_d1_uno32",
"wipy3",
"wt32-eth01",
]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Get Tags
run: git fetch --force --tags origin
- name: Cache PlatformIO
uses: actions/cache@v4
with:
key: ${{ runner.os }}-pio
path: |
~/.cache/pip
~/.platformio
- name: Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install npm
uses: actions/setup-node@v5
with:
node-version: '20.x'
- name: Install html-minifier-terser
run: npm install -g html-minifier-terser
- name: Build
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
pip install --upgrade intelhex
pip install --upgrade rich_click
REF_NAME="${{ github.ref_name }}" pio run -e ${{ matrix.board }}
cp .pio/build/${{ matrix.board }}/firmware.bin ./safeboot-${{ matrix.board }}.bin
- name: Upload
uses: actions/upload-artifact@v5
with:
name: ${{ matrix.board }}
if-no-files-found: error
path: |
*.bin
test:
name: Test safeboot-${{ matrix.board }}.bin
runs-on: ubuntu-latest
needs: [build]
strategy:
fail-fast: false
matrix:
board:
[
"denky_d4",
"esp32-c3-devkitc-02",
"esp32-c6-devkitc-1",
"esp32-gateway",
"esp32-poe-iso",
"esp32-poe",
"esp32-s2-saola-1",
"esp32-s3-devkitc-1",
# "esp32-solo1",
"esp32dev",
"esp32s3box",
"lolin_s2_mini",
"tinypico",
"wemos_d1_uno32",
"wipy3",
"wt32-eth01",
]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Get Tags
run: git fetch --force --tags origin
- name: Cache PlatformIO
uses: actions/cache@v4
with:
key: ${{ runner.os }}-pio
path: |
~/.cache/pip
~/.platformio
- name: Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Download
uses: actions/download-artifact@v6
with:
path: artifacts/
- name: Test
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
pip install --upgrade intelhex
pip install --upgrade rich_click
SAFEBOOT_IMAGE=../artifacts/${{ matrix.board }}/safeboot-${{ matrix.board }}.bin BOARD=${{ matrix.board }} pio run -d test -e ci
release:
name: Release
if: ${{ github.repository_owner == 'mathieucarbou' && github.event_name != 'pull_request' && startsWith(github.ref, 'refs/tags/v') }}
runs-on: ubuntu-latest
needs: [test]
permissions:
contents: write
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Download
uses: actions/download-artifact@v6
with:
path: artifacts/
- name: Move
run: |
ls -R artifacts
find artifacts -name '*.bin' -exec mv {} artifacts/ \;
- name: Release
uses: softprops/action-gh-release@v2
with:
files: |
artifacts/*.bin
tools/factory.py
tools/safeboot.py
latest-MycilaESPConnect:
name: safeboot-${{ matrix.board }}.bin (with latest MycilaESPConnect)
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
board:
[
"denky_d4",
"esp32-c3-devkitc-02",
"esp32-c6-devkitc-1",
"esp32-gateway",
"esp32-poe-iso",
"esp32-poe",
"esp32-s2-saola-1",
"esp32-s3-devkitc-1",
# "esp32-solo1",
"esp32dev",
"esp32s3box",
"lilygo-t-eth-lite-s3",
"lolin_s2_mini",
"tinypico",
"waveshare_esp32s3_eth",
"wemos_d1_uno32",
"wipy3",
"wt32-eth01",
]
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Get Tags
run: git fetch --force --tags origin
- name: Cache PlatformIO
uses: actions/cache@v4
with:
key: ${{ runner.os }}-pio
path: |
~/.cache/pip
~/.platformio
- name: Python
uses: actions/setup-python@v6
with:
python-version: "3.13"
- name: Install npm
uses: actions/setup-node@v5
with:
node-version: '20.x'
- name: Install html-minifier-terser
run: npm install -g html-minifier-terser
- name: Switch MycilaESPConnect to main branch at https://github.com/mathieucarbou/MycilaESPConnect
run: |
sed -i 's|mathieucarbou/MycilaESPConnect @ .*|https://github.com/mathieucarbou/MycilaESPConnect|' platformio.ini
- name: Build
run: |
python -m pip install --upgrade pip
pip install --upgrade platformio
pip install --upgrade intelhex
pip install --upgrade rich_click
REF_NAME="${{ github.ref_name }}" pio run -e ${{ matrix.board }}