Publish Firmware #7
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: Publish Firmware | |
on: | |
release: | |
types: [published] | |
workflow_run: | |
workflows: | |
- "Semantic Release" | |
types: | |
- completed | |
permissions: | |
contents: write | |
jobs: | |
set-release-version: | |
name: Extract Release Version | |
runs-on: ubuntu-latest | |
# Only run if workflow_run was successful or if it's a direct release trigger | |
if: github.event_name == 'release' || github.event.workflow_run.conclusion == 'success' | |
outputs: | |
release_version: ${{ steps.set-version.outputs.release_version }} | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Extract release-version | |
id: set-version | |
run: | | |
if [ "${{ github.event.release.tag_name }}" != "" ]; then | |
# Direct release trigger | |
echo "Release version from event: ${{ github.event.release.tag_name }}" | |
echo "release_version=${{ github.event.release.tag_name }}" | tee -a $GITHUB_OUTPUT | |
else | |
# Workflow run trigger - get the latest release tag | |
echo "Fetching latest release tag..." | |
LATEST_TAG=$(git describe --tags --abbrev=0) | |
echo "release_version=${LATEST_TAG}" | tee -a $GITHUB_OUTPUT | |
fi | |
build-firmware: | |
name: Build Firmware | |
needs: set-release-version | |
uses: esphome/workflows/.github/workflows/build.yml@2025.4.0 | |
with: | |
files: | | |
buderus-km271.yaml | |
buderus-km271_en.yaml | |
buderus-km271_en_noimprov.yaml | |
buderus-km271-hc2-rw.yaml | |
buderus-km271-writable-espidf.yaml | |
buderus-km271-writable-8MB.yaml | |
components/km271_wifi/km271-for-friends.yaml | |
components/km271_wifi/km271_hc1_only.yaml | |
esphome-version: 2025.7.2 | |
combined-name: buderus-km271 | |
release-version: ${{ needs.set-release-version.outputs.release_version }} | |
upload-to-release: | |
name: Upload to Release | |
needs: | |
- build-firmware | |
- set-release-version | |
uses: esphome/workflows/.github/workflows/upload-to-gh-release.yml@2025.4.0 | |
with: | |
version: ${{ needs.set-release-version.outputs.release_version }} |