Release v0.6.8 #9
Workflow file for this run
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: Release | |
| on: | |
| push: | |
| tags: | |
| - 'v*' # Trigger on version tags (v0.6.4, v1.0.0, etc.) | |
| permissions: | |
| contents: write | |
| jobs: | |
| release: | |
| name: Build and Release | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 # Full history needed for changelog | |
| token: ${{ secrets.GITHUB_TOKEN }} | |
| - name: Get version from tag | |
| id: version | |
| run: | | |
| # Extract version from tag (v0.6.4 -> 0.6.4) | |
| VERSION=${GITHUB_REF#refs/tags/v} | |
| echo "version=$VERSION" >> $GITHUB_OUTPUT | |
| echo "Release version: $VERSION" | |
| - name: Setup .NET 9 | |
| uses: actions/setup-dotnet@v3 | |
| with: | |
| dotnet-version: '9.0.x' | |
| - name: Install zip utility | |
| run: sudo apt-get update && sudo apt-get install -y zip | |
| - name: Generate changelog from commits | |
| id: changelog | |
| run: | | |
| # Find previous version tag (not release trigger tags) | |
| PREV_TAG=$(git describe --tags --abbrev=0 --match "v[0-9]*" HEAD^ 2>/dev/null || echo "") | |
| echo "Previous tag: ${PREV_TAG:-none (first release)}" | |
| if [ -z "$PREV_TAG" ]; then | |
| # First release - get all commits (excluding automated commits) | |
| COMMITS=$(git log --pretty=format:"- %s (%h)" --no-merges | grep -v "\[skip ci\]" | grep -v "Update CHANGELOG" | grep -v "Release v" | head -20) | |
| else | |
| # Get commits since last version tag (excluding automated commits) | |
| COMMITS=$(git log ${PREV_TAG}..HEAD --pretty=format:"- %s (%h)" --no-merges | grep -v "\[skip ci\]" | grep -v "Update CHANGELOG" | grep -v "Release v") | |
| fi | |
| # Build changelog for GitHub release | |
| { | |
| echo "changelog<<EOF" | |
| echo "## What's Changed" | |
| echo "" | |
| echo "$COMMITS" | |
| if [ -n "$PREV_TAG" ]; then | |
| echo "" | |
| echo "**Full Changelog**: https://github.com/${{ github.repository }}/compare/${PREV_TAG}...v${{ steps.version.outputs.version }}" | |
| fi | |
| echo "EOF" | |
| } >> $GITHUB_OUTPUT | |
| - name: Build all platforms | |
| run: | | |
| ./build.sh | |
| echo "✓ Built all platforms" | |
| - name: Create GitHub Release | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| tag_name: v${{ steps.version.outputs.version }} | |
| name: "Localization Resource Manager v${{ steps.version.outputs.version }}" | |
| body: | | |
| # LRM v${{ steps.version.outputs.version }} | |
| ${{ steps.changelog.outputs.changelog }} | |
| ## 📦 Downloads | |
| Choose the appropriate version for your platform: | |
| - **Linux (x64):** `lrm-linux-x64.tar.gz` | |
| - **Linux (ARM64):** `lrm-linux-arm64.tar.gz` *(Raspberry Pi, etc.)* | |
| - **Windows (x64):** `lrm-win-x64.zip` | |
| - **Windows (ARM64):** `lrm-win-arm64.zip` | |
| ## 📖 Installation | |
| See the [Installation Guide](https://github.com/${{ github.repository }}#installation) for detailed instructions. | |
| ## 🧪 Verified | |
| ✅ All tests passing | |
| files: | | |
| publish/lrm-linux-x64.tar.gz | |
| publish/lrm-linux-arm64.tar.gz | |
| publish/lrm-win-x64.zip | |
| publish/lrm-win-arm64.zip | |
| draft: false | |
| prerelease: false |