T-Embed Battery charging Fix #47
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 and Push OR check-PR | |
on: | |
pull_request: | |
branches: | |
- main | |
push: | |
branches: | |
- main | |
- dev | |
tags: | |
- "*" | |
workflow_dispatch: | |
jobs: | |
compile_sketch: | |
name: Build ${{ matrix.board.name }} | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
board: | |
- { | |
vendor: "M5Stack", | |
name: "Cardputer", | |
description: "", | |
link: "https://shop.m5stack.com/products/m5stack-cardputer-kit-w-m5stamps3?ref=Pirata", | |
family: "ESP32-S3", | |
env: "m5stack-cardputer", | |
partitions: { | |
bootloader_addr: "0x0000", | |
}, | |
} | |
- { | |
vendor: "M5Stack", | |
name: "StickCPlus2", | |
description: "", | |
link: "https://shop.m5stack.com/products/m5stickc-plus2-esp32-mini-iot-development-kit?ref=Pirata", | |
family: "ESP32", | |
env: "m5stack-cplus2", | |
partitions: { | |
bootloader_addr: "0x1000", | |
}, | |
} | |
- { | |
vendor: "M5Stack", | |
name: "StickCPlus", | |
description: "", | |
link: "https://shop.m5stack.com/products/m5stickc-plus-esp32-pico-mini-iot-development-kit?ref=Pirata", | |
family: "ESP32", | |
env: "m5stack-cplus1_1", | |
partitions: { | |
bootloader_addr: "0x1000", | |
}, | |
} | |
- { | |
vendor: "M5Stack", | |
name: "StickC", | |
description: "", | |
link: "https://shop.m5stack.com/collections/m5-controllers?ref=Pirata", | |
family: "ESP32", | |
env: "m5stack-c", | |
partitions: { | |
bootloader_addr: "0x1000", | |
}, | |
} | |
- { | |
vendor: "M5Stack", | |
name: "Core2", | |
description: "", | |
link: "https://shop.m5stack.com/products/m5stack-core2-esp32-iot-development-kit?ref=Pirata", | |
family: "ESP32", | |
env: "m5stack-core2", | |
partitions: { | |
bootloader_addr: "0x1000", | |
}, | |
} | |
- { | |
vendor: "M5Stack", | |
name: "Core16mb", | |
description: "", | |
link: "https://shop.m5stack.com/products/esp32-basic-core-lot-development-kit-v2-7?ref=Pirata", | |
family: "ESP32", | |
env: "m5stack-core", | |
partitions: { | |
bootloader_addr: "0x1000", | |
}, | |
} | |
- { | |
vendor: "M5Stack", | |
name: "CoreS3", | |
description: "", | |
link: "https://shop.m5stack.com/products/m5stack-cores3-esp32s3-lotdevelopment-kit?ref=Pirata", | |
family: "ESP32-S3", | |
env: "m5stack-cores3", | |
partitions: { | |
bootloader_addr: "0x0", | |
}, | |
} | |
- { | |
vendor: "Espressif", | |
name: "ESP32-S3-4mb", | |
description: "", | |
link: "", | |
family: "ESP32-S3", | |
env: "headless-esp32s3-4mb", | |
partitions: { | |
bootloader_addr: "0x0", | |
}, | |
} | |
- { | |
vendor: "Espressif", | |
name: "ESP32-S3-8mb", | |
description: "", | |
link: "", | |
family: "ESP32-S3", | |
env: "headless-esp32s3-8mb", | |
partitions: { | |
bootloader_addr: "0x0", | |
}, | |
} | |
- { | |
vendor: "Espressif", | |
name: "ESP32-S3-16mb", | |
description: "", | |
link: "", | |
family: "ESP32-S3", | |
env: "headless-esp32s3-16mb", | |
partitions: { | |
bootloader_addr: "0x0", | |
}, | |
} | |
- { | |
vendor: "Espressif", | |
name: "ESP32-4mb", | |
description: "", | |
link: "", | |
family: "ESP32", | |
env: "headless-esp32-4mb", | |
partitions: { | |
bootloader_addr: "0x1000", | |
}, | |
} | |
- { | |
vendor: "Espressif", | |
name: "ESP32-8mb", | |
description: "", | |
link: "", | |
family: "ESP32", | |
env: "headless-esp32-8mb", | |
partitions: { | |
bootloader_addr: "0x1000", | |
}, | |
} | |
- { | |
vendor: "CYD", | |
name: "CYD-2432S028", | |
description: "", | |
link: "", | |
family: "ESP32", | |
env: "CYD-2432S028", | |
partitions: { | |
bootloader_addr: "0x1000", | |
}, | |
} | |
- { | |
vendor: "CYD", | |
name: "CYD-2USB", | |
description: "", | |
link: "", | |
family: "ESP32", | |
env: "CYD-2-USB", | |
partitions: { | |
bootloader_addr: "0x1000", | |
}, | |
} | |
- { | |
vendor: "Marauder", | |
name: "V4-OG", | |
description: "", | |
link: "", | |
family: "ESP32", | |
env: "Marauder-v4-OG", | |
partitions: { | |
bootloader_addr: "0x1000", | |
}, | |
} | |
- { | |
vendor: "Marauder", | |
name: "Mini", | |
description: "", | |
link: "", | |
family: "ESP32", | |
env: "Marauder-Mini", | |
partitions: { | |
bootloader_addr: "0x1000", | |
}, | |
} | |
- { | |
vendor: "Lilygo", | |
name: "T-Display_S3_Touch", | |
description: "", | |
link: "", | |
family: "ESP32-S3", | |
env: "lilygo-t-display-S3", | |
partitions: { | |
bootloader_addr: "0x0", | |
}, | |
} | |
- { | |
vendor: "Lilygo", | |
name: "T-Embed", | |
description: "", | |
link: "", | |
family: "ESP32-S3", | |
env: "lilygo-t-embed", | |
partitions: { | |
bootloader_addr: "0x0", | |
}, | |
} | |
- { | |
vendor: "Lilygo", | |
name: "T-Embed_CC1101", | |
description: "", | |
link: "", | |
family: "ESP32-S3", | |
env: "lilygo-t-embed-cc1101", | |
partitions: { | |
bootloader_addr: "0x0", | |
}, | |
} | |
- { | |
vendor: "Lilygo", | |
name: "T-Deck", | |
description: "", | |
link: "", | |
family: "ESP32-S3", | |
env: "lilygo-t-deck", | |
partitions: { | |
bootloader_addr: "0x0", | |
}, | |
} | |
steps: | |
- uses: actions/checkout@v4 | |
- id: build | |
name: setup Python | |
uses: actions/setup-python@v2 | |
with: | |
python-version: "3.x" | |
- name: Install dependencies | |
run: | | |
pip install requests esptool | |
- name: Install PlatformIO Core | |
run: | | |
pip install platformio | |
if [[ "${{ github.ref_type }}" == "tag" ]]; then | |
version=${{ github.ref_name }} | |
else | |
version="${GITHUB_SHA::7}" | |
fi | |
sed -i "s/-DLAUNCHER=/-DLAUNCHER='\"$version\"' ; /g" ./platformio.ini | |
- name: Run Compile | |
run: | | |
platformio run -e ${{ matrix.board.env }} | |
- name: Merge files | |
run: | | |
esptool.py --chip esp32s3 merge_bin -o Launcher-${{ matrix.board.env }}.bin \ | |
${{ matrix.board.partitions.bootloader_addr }} .pio/build/${{ matrix.board.env }}/bootloader.bin \ | |
0x8000 .pio/build/${{ matrix.board.env }}/partitions.bin \ | |
0x10000 .pio/build/${{ matrix.board.env }}/firmware.bin | |
js_content="{\"name\":\"${{ matrix.board.name }}\",\"builds\":[{\"chipFamily\":\"${{ matrix.board.family }}\",\"improv\":false,\"parts\":[{\"path\":\"bins/Launcher-${{ matrix.board.env }}.bin\",\"offset\":0}]}]}" | |
echo "$js_content" > "./Manifest-${{ matrix.board.name }}.json" | |
html="<li><label><input type='radio' name='type' value='${{ matrix.board.name }}' />${{ matrix.board.vendor }} - <a href='${{ matrix.board.link }}'>${{ matrix.board.name }}</a> ${{ matrix.board.description }}</label></li>" | |
echo "$html" > ./board.html | |
- name: Upload ${{ matrix.board.name }} | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Launcher-${{ matrix.board.env }} | |
path: Launcher-*.bin | |
retention-days: 5 | |
if-no-files-found: error | |
- name: Upload Manifest | |
uses: actions/upload-artifact@v4 | |
with: | |
name: Manifest-${{ matrix.board.name }} | |
path: Manifest-*.json | |
retention-days: 5 | |
if-no-files-found: error | |
- name: Upload Html | |
uses: actions/upload-artifact@v4 | |
with: | |
name: html-${{ matrix.board.name }} | |
path: board.html | |
retention-days: 5 | |
if-no-files-found: error | |
post_compile_steps: | |
name: Post-compile steps | |
runs-on: ubuntu-latest | |
needs: compile_sketch | |
if: github.ref_type == 'tag' | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
# Configura para garantir que todas as branches sejam buscadas | |
fetch-depth: 0 | |
- name: Download all artifacts | |
uses: actions/download-artifact@v4 | |
with: | |
path: ~/LauncherArtifacts | |
- name: Clone Launcher repository and switch to WebPage branch | |
run: | | |
git fetch origin | |
git checkout WebPage || git checkout -b WebPage origin/WebPage | |
- name: Generate HTML and manifests from Boards | |
run: | | |
html="<ul class='radios'>" | |
# Itera sobre cada arquivo HTML na pasta de artefatos e adiciona seu conteúdo à variável HTML | |
for file in ~/LauncherArtifacts/**/*.html; do | |
if [ -f "$file" ]; then | |
content=$(cat "$file") | |
html+="$content" | |
fi | |
done | |
html+="</ul>" | |
echo $html > ~/file.html | |
cat ~/file.html | |
rm ./index.html | |
cp ./support_files/flasher ./index.html | |
python ./support_files/merge_html.py ./index.html ~/file.html | |
- name: Move artifacts to the correct folders | |
run: | | |
set -x | |
pwd | |
ls -all | |
tree | |
mv -f ~/LauncherArtifacts/*/*.bin ./Release/bins | |
mv -f ~/LauncherArtifacts/*/*.json ./Release | |
- name: Commit and push changes | |
run: | | |
git config user.name "GitHub Actions" | |
git config user.email "[email protected]" | |
git add . | |
git commit -m "Update artifacts from build" | |
git push origin WebPage | |
create_release: | |
runs-on: ubuntu-latest | |
environment: github_release | |
needs: [compile_sketch] | |
if: github.ref_type == 'tag' | |
steps: | |
- id: launcher_version | |
name: Get Version | |
run: | | |
set -x | |
version=${{ github.ref_name }} | |
echo "version=${version}" > $GITHUB_OUTPUT | |
- uses: actions/download-artifact@v4 | |
with: | |
merge-multiple: true | |
- name: List all files | |
if: always() | |
run: | | |
set -x | |
pwd | |
ls -all | |
tree | |
- name: Create Release ${{ steps.launcher_version.outputs.version }} | |
uses: softprops/action-gh-release@v1 | |
with: | |
name: Launcher Release ${{ steps.launcher_version.outputs.version }} | |
tag_name: ${{ steps.launcher_version.outputs.version }} | |
generate_release_notes: true | |
files: | | |
Launcher-*.bin |