Stable Check-Build Meshtastic Heltec Mesh Node t114 OLED_RU #99
This file contains hidden or 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: Stable Check-Build Meshtastic Heltec Mesh Node t114 OLED_RU | |
| on: | |
| workflow_dispatch: # Manual trigger for testing | |
| repository_dispatch: # Optional external trigger | |
| types: [meshtastic-release] | |
| schedule: | |
| - cron: "0 2 * * *" # Run daily to check for new releases | |
| permissions: | |
| contents: write | |
| actions: read | |
| id-token: write | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout this repo | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.12" | |
| - name: Install PlatformIO | |
| run: | | |
| pip install -U pip | |
| pip install platformio | |
| - name: Fetch latest Meshtastic release | |
| id: get_release | |
| run: | | |
| LATEST_TAG=$(curl -s https://api.github.com/repos/meshtastic/firmware/releases/latest | jq -r .tag_name) | |
| echo "Latest Meshtastic release: $LATEST_TAG" | |
| echo "tag=$LATEST_TAG" >> $GITHUB_OUTPUT | |
| echo "ru_tag=${LATEST_TAG}-ru" >> $GITHUB_OUTPUT | |
| - name: Check if already built | |
| id: check_release | |
| run: | | |
| if gh release view "${{ steps.get_release.outputs.ru_tag }}" >/dev/null 2>&1; then | |
| echo "Release already exists. Skipping build." | |
| echo "skip_build=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "skip_build=false" >> $GITHUB_OUTPUT | |
| fi | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Stop job if already built | |
| if: steps.check_release.outputs.skip_build == 'true' | |
| run: exit 0 | |
| - name: Clone Meshtastic firmware at latest release | |
| if: steps.check_release.outputs.skip_build == 'false' | |
| run: | | |
| git clone --depth=1 --branch ${{ steps.get_release.outputs.tag }} https://github.com/meshtastic/firmware.git | |
| cd firmware | |
| git submodule update --init --recursive | |
| - name: Patch platformio.ini for OLED_RU | |
| if: steps.check_release.outputs.skip_build == 'false' | |
| run: | | |
| sed -i '/-DHELTEC_T114/a\ -DOLED_RU' firmware/variants/heltec_mesh_node_t114/platformio.ini | |
| cat firmware/variants/heltec_mesh_node_t114/platformio.ini | |
| - name: Build Heltec Mesh Node t114 firmware | |
| if: steps.check_release.outputs.skip_build == 'false' | |
| run: | | |
| cd firmware | |
| pio run -e heltec-mesh-node-t114 | |
| - name: Rename binaries with versioned names | |
| if: steps.check_release.outputs.skip_build == 'false' | |
| run: | | |
| cd firmware/.pio/build/heltec-mesh-node-t114 | |
| mv firmware.uf2 heltec-mesh-node-t114-ru-firmware-${{ steps.get_release.outputs.tag }}.uf2 | |
| - name: Generate checksums | |
| if: steps.check_release.outputs.skip_build == 'false' | |
| id: checksum | |
| run: | | |
| cd firmware/.pio/build/heltec-mesh-node-t114 | |
| for f in heltec-mesh-node-t114-ru-*.uf2; do | |
| sha256sum "$f" >> SHA256SUMS.txt | |
| done | |
| echo "Checksums generated:" | |
| cat SHA256SUMS.txt | |
| - name: Upload firmware binaries (Actions artifacts) | |
| if: steps.check_release.outputs.skip_build == 'false' | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: heltec-mesh-node-t114-${{ steps.get_release.outputs.ru_tag }} | |
| path: | | |
| firmware/.pio/build/heltec-mesh-node-t114/heltec-mesh-node-t114-ru-*.uf2 | |
| firmware/.pio/build/heltec-mesh-node-t114/SHA256SUMS.txt | |
| - name: Publish GitHub Release | |
| if: steps.check_release.outputs.skip_build == 'false' | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ steps.get_release.outputs.ru_tag }} | |
| name: Meshtastic Heltec Mesh Node t114 RU ${{ steps.get_release.outputs.tag }} | |
| body: | | |
| ✅ Stable build for **Heltec Mesh Node t114 OLED** with **RU support** | |
| 🔗 Based on upstream release [${{ steps.get_release.outputs.tag }}](https://github.com/meshtastic/firmware/releases/tag/${{ steps.get_release.outputs.tag }}) | |
| **Checksums (SHA256):** | |
| ``` | |
| $(cat firmware/.pio/build/heltec-mesh-node-t114/SHA256SUMS.txt) | |
| ``` | |
| Firmware attached below 👇 | |
| files: | | |
| firmware/.pio/build/heltec-mesh-node-t114/heltec-mesh-node-t114-ru-*.uf2 | |
| firmware/.pio/build/heltec-mesh-node-t114/SHA256SUMS.txt | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |