Skip to content

Commit f342a27

Browse files
committed
Added release workflow on vX.Y.Z tag
1 parent 2ed5f5a commit f342a27

File tree

2 files changed

+55
-0
lines changed

2 files changed

+55
-0
lines changed

.github/workflows/release.yml

Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
---
2+
name: Release
3+
"on":
4+
push:
5+
tags:
6+
- 'v[0-9]+.[0-9]+.[0-9]+.*'
7+
8+
defaults:
9+
run:
10+
shell: bash
11+
12+
jobs:
13+
release:
14+
name: Package and release
15+
runs-on: ubuntu-latest
16+
steps:
17+
- name: Checkout
18+
uses: actions/checkout@v5
19+
- name: Package
20+
run: scripts/release.sh
21+
- name: Release
22+
uses: softprops/action-gh-release@v2
23+
with:
24+
files: powersensor-${{github.ref_name}}.zip
25+
generate_release_notes: true
26+
fail_on_unmatched_files: true

scripts/release.sh

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
#!/bin/bash
2+
3+
set -euo pipefail
4+
5+
cur_dir="${PWD}"
6+
this_dir=$(dirname "$0")
7+
root_dir="${this_dir}/.."
8+
9+
cd "${root_dir}" || exit 1
10+
11+
ref="$(git describe --always)"
12+
manifest_ver=$(jq -r .version custom_components/powersensor/manifest.json)
13+
if [ "${ref}" != "v${manifest_ver}" ]
14+
then
15+
echo "Error: Current git description ${ref} does not match claimed version v${manifest_ver}!"
16+
exit 1
17+
fi
18+
19+
zipfile="${cur_dir}/powersensor-${ref}.zip"
20+
zip "${zipfile}" -r \
21+
hacs.json \
22+
README.md \
23+
custom_components/powersensor/* \
24+
--exclude "**/__pycache__/*" \
25+
26+
relfile="$(realpath -s --relative-to="${cur_dir}" "${zipfile}")"
27+
28+
echo "Packaged as: ${relfile}"
29+
exit 0

0 commit comments

Comments
 (0)