name: Publish Release on: push: tags: - 'v*' jobs: release: runs-on: ubuntu-latest permissions: contents: write steps: - name: Checkout code uses: actions/checkout@v4 - name: Extract tag name id: tag run: echo "version=${GITHUB_REF#refs/tags/}" >> "$GITHUB_OUTPUT" - name: Generate release notes id: notes run: | # Get previous tag PREV_TAG=$(git describe --tags --abbrev=0 HEAD^ 2>/dev/null || echo "") if [ -n "$PREV_TAG" ]; then NOTES=$(git log --pretty=format:"- %s" "$PREV_TAG"..HEAD) else NOTES=$(git log --pretty=format:"- %s") fi # Write to file for the release body echo "$NOTES" > /tmp/release-notes.txt - name: Create release uses: softprops/action-gh-release@v2 with: tag_name: ${{ steps.tag.outputs.version }} name: ${{ steps.tag.outputs.version }} body_path: /tmp/release-notes.txt draft: false prerelease: false env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}