Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
803 changes: 803 additions & 0 deletions .github/workflows/README.md

Large diffs are not rendered by default.

165 changes: 37 additions & 128 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -1,138 +1,47 @@
name: Build
# See details in .github/workflows/README.md (workflow docs)
run-name: "CI build for ${{ github.ref_name }}"

on: [push, pull_request]

jobs:
build:
strategy:
fail-fast: false
matrix:
environments:
- "rfbridge"
- "rfbridge-direct"
- "esp32dev-all-test"
- "esp32dev-rf"
- "esp32dev-pilight-cc1101"
- "esp32dev-somfy-cc1101"
- "esp32dev-pilight-somfy-cc1101"
- "esp32dev-weatherstation"
- "esp32dev-gf-sun-inverter"
- "esp32dev-ir"
- "esp32dev-ble"
- "esp32dev-ble-mqtt-undecoded"
- "esp32dev-ble-aws"
- "esp32feather-ble"
- "esp32-lolin32lite-ble"
- "esp32-olimex-gtw-ble-eth"
- "esp32-olimex-gtw-ble-poe"
- "esp32-olimex-gtw-ble-poe-iso"
- "esp32-wt32-eth01-ble-eth"
- "esp32-olimex-gtw-ble-wifi"
- "esp32-m5stick-ble"
- "esp32-m5stack-ble"
- "esp32-m5tough-ble"
- "esp32-m5stick-c-ble"
- "esp32-m5stick-cp-ble"
- "esp32s3-atomS3U"
- "esp32-m5atom-matrix"
- "esp32-m5atom-lite"
- "esp32dev-rtl_433"
- "esp32dev-rtl_433-fsk"
- "esp32doitv1-aithinker-r01-sx1278"
- "heltec-rtl_433"
- "heltec-rtl_433-fsk"
- "heltec-ble"
- "lilygo-rtl_433"
- "lilygo-rtl_433-fsk"
- "lilygo-ble"
- "esp32dev-multi_receiver"
- "esp32dev-multi_receiver-pilight"
- "tinypico-ble"
- "ttgo-lora32-v1"
- "ttgo-lora32-v21"
- "ttgo-t-beam"
- "heltec-wifi-lora-32"
- "shelly-plus1"
- "nodemcuv2-all-test"
- "nodemcuv2-fastled-test"
- "nodemcuv2-2g"
- "nodemcuv2-ir"
- "nodemcuv2-serial"
- "avatto-bakeey-ir"
- "nodemcuv2-rf"
- "nodemcuv2-rf-cc1101"
- "nodemcuv2-somfy-cc1101"
- "manual-wifi-test"
- "rf-wifi-gateway"
- "nodemcuv2-rf2"
- "nodemcuv2-rf2-cc1101"
- "nodemcuv2-pilight"
- "nodemcuv2-weatherstation"
- "sonoff-basic"
- "sonoff-basic-rfr3"
- "esp32dev-ble-datatest"
- "esp32s3-dev-c1-ble"
- "esp32c3-dev-m1-ble"
- "airm2m_core_esp32c3"
- "esp32c3_lolin_mini"
- "esp32c3-m5stamp"
- "thingpulse-espgateway"
- "theengs-bridge"
- "esp32dev-ble-idf"
- "theengs-bridge-v11"
- "theengs-plug"
- "esp32dev-ble-broker"
- "esp32s3-m5stack-stamps3"
- "esp32c3u-m5stamp"
- "lilygo-t3-s3-rtl_433"
- "lilygo-t3-s3-rtl_433-fsk"
determine-build-scope:
runs-on: ubuntu-latest
name: Build with PlatformIO
outputs:
environment-set: ${{ steps.decide.outputs.environment-set }}
steps:
- uses: actions/checkout@v4
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.13'
- name: Install uv
uses: astral-sh/setup-uv@v6
with:
version: "latest"
enable-cache: false
- name: Install dependencies
run: |
uv pip install --system -U https://github.com/pioarduino/platformio-core/archive/refs/tags/v6.1.18.zip
- name: Extract ESP32 platform version from platformio.ini
- name: Decide environment set
id: decide
run: |
ESP32_VERSION=$(grep 'esp32_platform\s*=' platformio.ini | cut -d'@' -f2 | tr -d '[:space:]')
echo "ESP32_PLATFORM_VERSION=${ESP32_VERSION}" >> $GITHUB_ENV
- name: Run PlatformIO
env:
PYTHONIOENCODING: utf-8
PYTHONUTF8: '1'
run: platformio run -e ${{ matrix.environments }}
- name: Upload Assets
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.environments }}
path: |
.pio/build/*/firmware.bin
.pio/build/*/partitions.bin
retention-days: 7
# Full build for: development, master, edge, stable, release/*, hotfix/*, and all PRs
if [[ "${{ github.event_name }}" == "pull_request" ]] || \
[[ "${{ github.ref }}" == "refs/heads/development" ]] || \
[[ "${{ github.ref }}" == "refs/heads/master" ]] || \
[[ "${{ github.ref }}" == "refs/heads/edge" ]] || \
[[ "${{ github.ref }}" == "refs/heads/stable" ]] || \
[[ "${{ github.ref }}" == refs/heads/release/* ]] || \
[[ "${{ github.ref }}" == refs/heads/hotfix/* ]]; then
echo "environment-set=all" >> $GITHUB_OUTPUT
else
echo "environment-set=ci" >> $GITHUB_OUTPUT
fi


build:
needs: determine-build-scope
name: Build firmware
uses: ./.github/workflows/task-build.yml
with:
enable-dev-ota: true
artifact-retention-days: 7
environment-set: ${{ needs.determine-build-scope.outputs.environment-set }}

documentation:
runs-on: ubuntu-latest
name: Create the documentation
steps:
- uses: actions/checkout@v4
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "14.x"
- name: Download Common Config
run: |
curl -o docs/.vuepress/public/commonConfig.js https://www.theengs.io/commonConfig.js
- name: Install build dependencies
run: npm install
- name: Build documentation
run: npm run docs:build
needs: build
name: Build documentation
uses: ./.github/workflows/task-docs.yml
with:
mode: "dev"
run-pagespeed: false
just-check: true

Loading
Loading