Filaman/.github/workflows/release.yml

55 lines
1.8 KiB
YAML
Raw Normal View History

name: Release
on:
push:
tags:
- 'v*'
jobs:
get-version-and-changelog:
runs-on: ubuntu-latest
outputs:
version: ${{ steps.get_version.outputs.VERSION }}
changelog: ${{ steps.changelog.outputs.CHANGES }}
steps:
- uses: actions/checkout@v4
- name: Get version from tag
id: get_version
run: echo "VERSION=${GITHUB_REF#refs/tags/v}" >> $GITHUB_OUTPUT
- name: Verify version match
run: |
PIO_VERSION=$(grep '^version = ' platformio.ini | cut -d'"' -f2)
TAG_VERSION=${{ steps.get_version.outputs.VERSION }}
if [ "$PIO_VERSION" != "$TAG_VERSION" ]; then
echo "Error: Version mismatch between tag ($TAG_VERSION) and platformio.ini ($PIO_VERSION)"
exit 1
fi
- name: Read CHANGELOG.md
id: changelog
run: |
CHANGELOG=$(awk "/## \\[${{ steps.get_version.outputs.VERSION }}\\]/{p=1;print;next} /## \\[/{p=0} p" CHANGELOG.md)
echo "CHANGES<<EOF" >> $GITHUB_OUTPUT
echo "$CHANGELOG" >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
github-release:
needs: get-version-and-changelog
if: github.server_url == 'https://github.com'
uses: ./.github/workflows/providers/github-release.yml
with:
version: ${{ needs.get-version-and-changelog.outputs.version }}
changelog: ${{ needs.get-version-and-changelog.outputs.changelog }}
secrets: inherit
gitea-release:
needs: get-version-and-changelog
if: github.server_url != 'https://github.com'
uses: ./.github/workflows/providers/gitea-release.yml
with:
version: ${{ needs.get-version-and-changelog.outputs.version }}
changelog: ${{ needs.get-version-and-changelog.outputs.changelog }}
secrets: inherit