Hybrid compile: take custom boards settings in account (#22542) #4191
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Build_development | |
on: | |
workflow_dispatch: # Start a workflow | |
push: | |
branches: development | |
paths-ignore: | |
- '.github/**' # Ignore changes towards the .github directory | |
- '**.md' # Do no build if *.md files changes | |
# Ensures that only one deploy task per branch/environment will run at a time. | |
concurrency: | |
group: environment-${{ github.ref }} | |
cancel-in-progress: true | |
jobs: | |
be_solidify: | |
runs-on: ubuntu-latest | |
if: github.repository == 'arendst/Tasmota' && github.ref_name == 'development' | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
#- name: Install clang compiler | |
#run: | | |
#sudo apt-get install -f clang | |
- name: Make Berry and Tasmota Berry code | |
run: | | |
cd lib/libesp32/berry | |
make | |
cd ../berry_tasmota | |
../berry/berry -s -g solidify_all.be | |
- name: Matter Berry Code | |
run: | | |
cd lib/libesp32/berry_matter | |
../berry/berry -s -g solidify_all.be | |
- name: Berry Animate Code | |
run: | | |
cd lib/libesp32/berry_animate | |
../berry/berry -s -g solidify_all.be | |
- name: LVGL Berry Code | |
run: | | |
cd lib/libesp32_lvgl/lv_binding_berry | |
../../libesp32/berry/berry -s -g solidify_all.be | |
- name: HASPmota Berry Code | |
run: | | |
cd lib/libesp32_lvgl/lv_haspmota | |
../../libesp32/berry/berry -s -g solidify_all.be | |
- uses: jason2866/[email protected] | |
with: | |
name: '["berry_tasmota", "berry_matter", "berry_animate", "berry_lvgl", "berry_haspmota", "berry_header"]' | |
path: '["./lib/libesp32/berry_tasmota/src/solidify", "./lib/libesp32/berry_matter/src/solidify", "./lib/libesp32/berry_animate/src/solidify", "./lib/libesp32_lvgl/lv_binding_berry/src/solidify", "./lib/libesp32_lvgl/lv_haspmota/src/solidify", "./lib/libesp32/berry/generate"]' | |
push_solidified: | |
needs: be_solidify | |
runs-on: ubuntu-latest | |
if: github.repository == 'arendst/Tasmota' && github.ref_name == 'development' | |
continue-on-error: true | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- uses: jason2866/[email protected] | |
with: | |
name: | | |
berry_tasmota | |
berry_matter | |
berry_animate | |
berry_lvgl | |
berry_haspmota | |
berry_header | |
path: | | |
./lib/libesp32/berry_tasmota/src/solidify | |
./lib/libesp32/berry_matter/src/solidify | |
./lib/libesp32/berry_animate/src/solidify | |
./lib/libesp32_lvgl/lv_binding_berry/src/solidify | |
./lib/libesp32_lvgl/lv_haspmota/src/solidify | |
./lib/libesp32/berry/generate | |
- uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
commit_message: Solidified Code updated | |
safeboot-images: | |
needs: push_solidified | |
runs-on: ubuntu-latest | |
if: github.repository == 'arendst/Tasmota' | |
continue-on-error: true | |
strategy: | |
matrix: | |
variant: | |
- tasmota32-safeboot | |
- tasmota32solo1-safeboot | |
- tasmota32c2-safeboot | |
- tasmota32c3-safeboot | |
- tasmota32c3ser-safeboot | |
- tasmota32s2-safeboot | |
- tasmota32s2cdc-safeboot | |
- tasmota32s3-safeboot | |
- tasmota32s3ser-safeboot | |
- tasmota32c6-safeboot | |
- tasmota32c6ser-safeboot | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: development | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
pip install wheel | |
pip install -U platformio | |
cp ./platformio_override_sample.ini ./platformio_override.ini | |
- name: Add SHA to footer | |
run: | | |
COMMIT_SHA_LONG=$(git rev-parse --short HEAD || echo "") | |
SHA=${COMMIT_SHA_LONG::7} | |
sed -i -e "s/TASMOTA_SHA_SHORT/TASMOTA_SHA_SHORT $SHA-/g" ./tasmota/include/tasmota_version.h | |
- name: Run PlatformIO | |
run: platformio run -e ${{ matrix.variant }} | |
#- name: Use esp32-solo1 safeboot for esp32 too | |
#run: | | |
#cp ./build_output/firmware/tasmota32solo1-safeboot.bin ./build_output/firmware/tasmota32-safeboot.bin | |
- name: Upload safeboot firmware artifacts | |
uses: jason2866/[email protected] | |
with: | |
name: firmware_safeboot | |
path: ./build_output | |
base-images: | |
needs: push_solidified | |
runs-on: ubuntu-latest | |
if: github.repository == 'arendst/Tasmota' | |
continue-on-error: true | |
strategy: | |
matrix: | |
variant: | |
- tasmota | |
- tasmota-4M | |
- tasmota-minimal | |
- tasmota-display | |
- tasmota-ir | |
- tasmota-knx | |
- tasmota-lite | |
- tasmota-sensors | |
- tasmota-zbbridge | |
- tasmota-zigbee | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: development | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
pip install wheel | |
pip install -U platformio | |
- name: Add SHA to footer | |
run: | | |
COMMIT_SHA_LONG=$(git rev-parse --short HEAD || echo "") | |
SHA=${COMMIT_SHA_LONG::7} | |
sed -i -e "s/TASMOTA_SHA_SHORT/TASMOTA_SHA_SHORT $SHA-/g" ./tasmota/include/tasmota_version.h | |
- name: Run PlatformIO | |
run: platformio run -e ${{ matrix.variant }} | |
- name: Upload firmware artifacts | |
uses: jason2866/[email protected] | |
with: | |
name: firmware | |
path: ./build_output | |
base32-images: | |
needs: safeboot-images | |
runs-on: ubuntu-latest | |
if: github.repository == 'arendst/Tasmota' | |
continue-on-error: true | |
strategy: | |
matrix: | |
variant: | |
- tasmota32 | |
- tasmota32-zbbrdgpro | |
- tasmota32-webcam | |
- tasmota32-bluetooth | |
- tasmota32-nspanel | |
- tasmota32-display | |
- tasmota32-ir | |
- tasmota32-lvgl | |
- tasmota32c2 | |
- tasmota32c3 | |
- tasmota32c6 | |
- tasmota32s2 | |
- tasmota32s2cdc | |
- tasmota32s3 | |
- tasmota32solo1 | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: development | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
pip install wheel | |
pip install -U platformio | |
cp ./platformio_override_sample.ini ./platformio_override.ini | |
- name: Download safeboot firmwares | |
uses: jason2866/[email protected] | |
with: | |
name: firmware_safeboot | |
path: ./firmware | |
- name: Add SHA to footer | |
run: | | |
COMMIT_SHA_LONG=$(git rev-parse --short HEAD || echo "") | |
SHA=${COMMIT_SHA_LONG::7} | |
sed -i -e "s/TASMOTA_SHA_SHORT/TASMOTA_SHA_SHORT $SHA-/g" ./tasmota/include/tasmota_version.h | |
- name: Run PlatformIO | |
run: platformio run -e ${{ matrix.variant }} | |
- name: Upload firmware artifacts | |
uses: jason2866/[email protected] | |
with: | |
name: firmware | |
path: ./build_output | |
language-images: | |
needs: safeboot-images | |
runs-on: ubuntu-latest | |
if: github.repository == 'arendst/Tasmota' | |
continue-on-error: true | |
strategy: | |
matrix: | |
variant: [ tasmota, tasmota32 ] | |
language: [ AD, AF, BG, BR, CN, CZ, DE, ES, FR, FY, GR, HE, HU, IT, KO, NL, PL, PT, RO, RU, SE, SK, TR, TW, UK, VN ] | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
ref: development | |
- name: Set up Python | |
uses: actions/setup-python@v5 | |
with: | |
python-version: '3.x' | |
- name: Install dependencies | |
run: | | |
pip install wheel | |
pip install -U platformio | |
cp ./platformio_override_sample.ini ./platformio_override.ini | |
- name: Download safeboot firmwares | |
uses: jason2866/[email protected] | |
with: | |
name: firmware_safeboot | |
path: ./firmware | |
- name: Add SHA to footer | |
run: | | |
COMMIT_SHA_LONG=$(git rev-parse --short HEAD || echo "") | |
SHA=${COMMIT_SHA_LONG::7} | |
sed -i -e "s/TASMOTA_SHA_SHORT/TASMOTA_SHA_SHORT $SHA-/g" ./tasmota/include/tasmota_version.h | |
- name: Run PlatformIO | |
run: platformio run -e ${{ matrix.variant }}-${{ matrix.language }} | |
- name: Upload language firmware artifacts | |
uses: jason2866/[email protected] | |
with: | |
name: firmware | |
path: ./build_output | |
Start_final_copy: | |
needs: [base-images, base32-images, language-images] | |
runs-on: ubuntu-latest | |
steps: | |
- name: Dispatch workflow in arendst/Tasmota-firmware | |
run: | | |
curl -X POST https://api.github.com/repos/arendst/Tasmota-firmware/actions/workflows/fetch_deploy.yml/dispatches \ | |
-H 'Accept: application/vnd.github.everest-preview+json' \ | |
-u ${{ secrets.API_TOKEN_GITHUB }} \ | |
--data '{"ref": "gh_actions"}' |