Skip to content

changed workflow boards template path #242

changed workflow boards template path

changed workflow boards template path #242

Workflow file for this run

---
name: Build and Push Releases
on:
push:
branches:
- main
tags:
- "*"
workflow_dispatch:
jobs:
compile_sketch:
name: Build ${{ matrix.board.name }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
board:
- {
name: "M5Cardputer",
env: "m5stack-cardputer",
partitions: {
bootloader_addr: "0x0000",
},
}
- {
name: "M5StickCPlus2",
env: "m5stack-cplus2",
partitions: {
bootloader_addr: "0x1000",
},
}
- {
name: "M5StickCPlus",
env: "m5stack-cplus1_1",
partitions: {
bootloader_addr: "0x1000",
},
}
- {
name: "M5StickCPlus_Launcher",
env: "LAUNCHER_m5stack-cplus1_1",
partitions: {
bootloader_addr: "0x1000",
},
}
- {
name: "Core2",
env: "m5stack-core2",
partitions: {
bootloader_addr: "0x1000",
},
}
- {
name: "Core16mb",
env: "m5stack-core16mb",
partitions: {
bootloader_addr: "0x1000",
},
}
- {
name: "Core4mb",
env: "m5stack-core4mb",
partitions: {
bootloader_addr: "0x1000",
},
}
- {
name: "CoreS3",
env: "m5stack-cores3",
partitions: {
bootloader_addr: "0x0",
},
}
- {
name: "ESP32-S3",
env: "esp32-s3-devkitc-1",
partitions: {
bootloader_addr: "0x0",
},
}
- {
name: "CYD-2432S028",
env: "CYD-2432S028",
partitions: {
bootloader_addr: "0x1000",
},
}
- {
name: "CYD-2USB",
env: "CYD-2USB",
partitions: {
bootloader_addr: "0x1000",
},
}
- {
name: "CYD-2432W328C",
env: "CYD-2432W328C",
partitions: { bootloader_addr: "0x1000" },
}
- {
name: "CYD-2432S028_Launcher",
env: "LAUNCHER_CYD-2432S028",
partitions: {
bootloader_addr: "0x1000",
},
}
- {
name: "CYD-2USB_Launcher",
env: "LAUNCHER_CYD-2USB",
partitions: {
bootloader_addr: "0x1000",
},
}
- {
name: "CYD-2432W328C_Launcher",
env: "LAUNCHER_CYD-2432W328C",
partitions: { bootloader_addr: "0x1000" },
}
- {
name: "Lilygo_T-Embed_CC1101",
env: "lilygo-t-embed-cc1101",
partitions: {
bootloader_addr: "0x0",
},
}
- {
name: "Lilygo_T-Embed",
env: "lilygo-t-embed",
partitions: {
bootloader_addr: "0x0",
},
}
- {
name: "Lilygo_T-Deck",
env: "lilygo-t-deck",
partitions: {
bootloader_addr: "0x0",
},
}
- {
name: "Lilygo_T-Deck-Pro",
env: "lilygo-t-deck-pro",
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/-DBRUCE_VERSION=/-DBRUCE_VERSION='\"$version\"' ; /g" ./platformio.ini
sed -i "s/-DGIT_COMMIT_HASH='\"Homebrew\"'/\!echo '-DGIT_COMMIT_HASH=\\\\\\\\\"'\$\(git describe --always --dirty)'\\\\\\\\\"'/g" ./platformio.ini
cat ./platformio.ini
- name: Run Compile
run: |
platformio run -e ${{ matrix.board.env }}
- name: Merge files
run: |
esptool.py --chip esp32s3 merge_bin -o Bruce-${{ 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
cat ~/board.html
echo $HOME
pwd
- name: Upload ${{ matrix.board.name }}
uses: actions/upload-artifact@v4
with:
name: Bruce-${{ matrix.board.env }}
path: Bruce-*.bin
retention-days: 5
if-no-files-found: error
post_compile_steps:
name: Post-compile steps
runs-on: ubuntu-latest
needs: compile_sketch
if: (github.event_name == 'push' || github.event_name == 'workflow_dispatch') || 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: ~/BruceArtifacts
- name: Clone Bruce 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 /home/runner/work/Bruce/Bruce/*.html; do
if [ -f "$file" ]; then
content=$(cat "$file")
html+="$content"
echo $file
fi
done
html+="</ul>"
echo "$html" > ~/file.html
cat ~/file.html
rm ./flasher.html
cp ./scripts/flasher_base.html ./flasher.html
python ./scripts/update_html.py ./flasher.html ~/file.html
- name: Move artifacts to the correct folders
run: |
set -x
pwd
ls -all
tree
if [ "${{ github.ref_type }}" != "tag" ]; then
mv -f ~/BruceArtifacts/*/*.bin ./BetaRelease
elif [ "${{ github.ref_type }}" == "tag" ]; then
mv -f ~/BruceArtifacts/*/*.bin ./LastRelease
fi
- name: Commit and push changes
run: |
git config user.name "GitHub Actions"
git config user.email "actions@github.com"
git add BetaRelease LastRelease
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: bruce_version
name: Get Version
run: |
set -x
if [[ "${{ github.ref_type }}" == "tag" ]]; then
version=${{ github.ref_name }}
else
version="${GITHUB_SHA::7}"
fi
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.bruce_version.outputs.version }}
uses: softprops/action-gh-release@v1
with:
name: Bruce Release ${{ steps.bruce_version.outputs.version }}
tag_name: ${{ steps.bruce_version.outputs.version }}
generate_release_notes: true
files: |
Bruce-*.bin