diff --git a/.github/workflows/release-asset.yml b/.github/workflows/release-asset.yml new file mode 100644 index 00000000..6c5dd871 --- /dev/null +++ b/.github/workflows/release-asset.yml @@ -0,0 +1,46 @@ +name: Release ZIP Asset + +on: + release: + types: [published] + workflow_dispatch: + +permissions: + contents: write + +concurrency: + group: release-asset-${{ github.event.release.tag_name || github.ref }} + cancel-in-progress: true + +jobs: + upload-zip-asset: + runs-on: ubuntu-latest + steps: + - name: Checkout + uses: actions/checkout@v5 + + - name: Resolve archive ref + id: archive_ref + run: | + if [ -n "${{ github.event.release.tag_name }}" ]; then + echo "ref=${{ github.event.release.tag_name }}" >> "$GITHUB_OUTPUT" + else + echo "ref=$GITHUB_SHA" >> "$GITHUB_OUTPUT" + fi + + - name: Build release archive + run: | + git archive --format=zip \ + --output=pollenlevels.zip \ + "${{ steps.archive_ref.outputs.ref }}" \ + custom_components/pollenlevels + + - name: Verify ZIP structure + run: | + unzip -l pollenlevels.zip | grep -q "custom_components/pollenlevels/manifest.json" + + - name: Upload pollenlevels.zip + uses: softprops/action-gh-release@v2 + with: + files: pollenlevels.zip + tag_name: ${{ github.event.release.tag_name || github.ref_name }} diff --git a/hacs.json b/hacs.json index 99f40769..0e110372 100644 --- a/hacs.json +++ b/hacs.json @@ -2,6 +2,8 @@ "name": "Pollen Levels", "homeassistant": "2025.3.0", "content_in_root": false, + "zip_release": true, + "filename": "pollenlevels.zip", "render_readme": true, "hacs": "2.0.0" }