From b730716791f51edf9ba01dc23e7881be7e04a842 Mon Sep 17 00:00:00 2001 From: proddy Date: Sat, 10 Oct 2026 13:33:08 +0200 Subject: [PATCH] update runners --- .github/workflows/dev_release.yml | 74 ++++++++++++++++++++++------ .github/workflows/stable_release.yml | 1 - .github/workflows/test_release.yml | 1 - 3 files changed, 60 insertions(+), 16 deletions(-) diff --git a/.github/workflows/dev_release.yml b/.github/workflows/dev_release.yml index 13c501cdf..262830617 100644 --- a/.github/workflows/dev_release.yml +++ b/.github/workflows/dev_release.yml @@ -30,7 +30,7 @@ jobs: uses: actions/checkout@v7 - name: Install pnpm - uses: pnpm/action-setup@v4 + uses: pnpm/action-setup@v6 with: package_json_file: interface/package.json @@ -40,7 +40,7 @@ jobs: node-version: 26 - name: Cache pnpm store - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: ~/.local/share/pnpm/store key: ${{ runner.os }}-pnpm-${{ hashFiles('interface/package.json') }} @@ -56,7 +56,7 @@ jobs: pnpm build-webUI - name: Upload WWWData.h - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: wwwdata path: src/ESP32React/WWWData.h @@ -88,7 +88,7 @@ jobs: run: platformio run -e build_modbus - name: Upload modbus header - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: modbus-header path: src/core/modbus_entity_parameters.hpp @@ -117,7 +117,7 @@ jobs: run: uv pip install --system pioarduino==6.2.0 - name: Restore generated modbus header - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: modbus-header path: src/core @@ -126,7 +126,7 @@ jobs: run: platformio run -e build_standalone - name: Upload generated docs - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: generated-docs path: | @@ -160,7 +160,7 @@ jobs: enable-cache: false - name: Cache PlatformIO packages - uses: actions/cache@v4 + uses: actions/cache@v6 with: path: | ~/.platformio/.cache @@ -172,16 +172,16 @@ jobs: ${{ runner.os }}-pio- - name: Install pioarduino - run: uv pip install --system pioarduino==6.2.0 intelhex + run: uv pip install --system pioarduino==6.2.0 - name: Restore WWWData.h - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: wwwdata path: src/ESP32React - name: Restore generated modbus header - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: modbus-header path: src/core @@ -199,7 +199,7 @@ jobs: run: platformio run -e ${{ matrix.env }} - name: Upload firmware - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v7 with: name: firmware-${{ matrix.env }} path: build/firmware @@ -229,19 +229,19 @@ jobs: echo "REF=$prev" >> $GITHUB_OUTPUT - name: Restore generated modbus header - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: modbus-header path: src/core - name: Restore generated docs - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: name: generated-docs path: . - name: Restore firmware binaries - uses: actions/download-artifact@v4 + uses: actions/download-artifact@v8 with: pattern: firmware-* merge-multiple: true @@ -250,6 +250,52 @@ jobs: - name: List firmware files run: ls -la build/firmware + # the recovery build needs PlatformIO, and pnpm + Node.js to build its own WebUI (recovery/WWWData.h) + - name: Install python 3.13 + uses: actions/setup-python@v7 + with: + python-version: '3.13' + + - name: Install uv + uses: astral-sh/setup-uv@v7 + with: + version: "latest" + enable-cache: false + + # falls back to the firmware jobs' caches, which hold the same toolchains + - name: Cache PlatformIO packages + uses: actions/cache@v6 + with: + path: | + ~/.platformio/.cache + ~/.platformio/packages + ~/.platformio/platforms + key: ${{ runner.os }}-pio-recovery-${{ hashFiles('platformio.ini') }} + restore-keys: | + ${{ runner.os }}-pio-recovery- + ${{ runner.os }}-pio- + + - name: Install pioarduino + run: uv pip install --system pioarduino==6.2.0 + + - name: Install pnpm + uses: pnpm/action-setup@v6 + with: + package_json_file: interface/package.json + + - name: Install Node.js 26 + uses: actions/setup-node@v7 + with: + node-version: 26 + + - name: Cache pnpm store + uses: actions/cache@v6 + with: + path: ~/.local/share/pnpm/store + key: ${{ runner.os }}-pnpm-${{ hashFiles('interface/package.json') }} + restore-keys: | + ${{ runner.os }}-pnpm- + - name: Build the recovery firmware for the 16MB boards run: | platformio run -e recovery_s_16M -e recovery_s_16M_P -e recovery_s3_16M_P diff --git a/.github/workflows/stable_release.yml b/.github/workflows/stable_release.yml index 7d2c174ce..eef57a122 100644 --- a/.github/workflows/stable_release.yml +++ b/.github/workflows/stable_release.yml @@ -42,7 +42,6 @@ jobs: run: | python -m pip install --upgrade pip pip install -U "pioarduino==6.2.0" - python -m pip install intelhex - name: Build webUI run: | diff --git a/.github/workflows/test_release.yml b/.github/workflows/test_release.yml index efc1b31d5..f531fbc2a 100644 --- a/.github/workflows/test_release.yml +++ b/.github/workflows/test_release.yml @@ -43,7 +43,6 @@ jobs: run: | python -m pip install --upgrade pip pip install -U "pioarduino==6.2.0" - python -m pip install intelhex - name: Build webUI run: |