mirror of
https://github.com/antebudimir/feishin.git
synced 2026-01-01 18:33:33 +00:00
add commit notes to beta deploy
This commit is contained in:
parent
20c585aa1c
commit
3f7a402ce8
1 changed files with 107 additions and 7 deletions
114
.github/workflows/publish-beta.yml
vendored
114
.github/workflows/publish-beta.yml
vendored
|
|
@ -200,14 +200,14 @@ jobs:
|
||||||
pnpm run publish:linux-arm64
|
pnpm run publish:linux-arm64
|
||||||
on_retry_command: pnpm cache delete
|
on_retry_command: pnpm cache delete
|
||||||
|
|
||||||
rename-release:
|
edit-release:
|
||||||
needs: [prepare, publish]
|
needs: [prepare, publish]
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout git repo
|
- name: Checkout git repo
|
||||||
uses: actions/checkout@v1
|
uses: actions/checkout@v1
|
||||||
|
|
||||||
- name: Rename release title to Beta
|
- name: Edit release with commits and title
|
||||||
shell: pwsh
|
shell: pwsh
|
||||||
env:
|
env:
|
||||||
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
@ -215,19 +215,119 @@ jobs:
|
||||||
# Get the version from the prepare job
|
# Get the version from the prepare job
|
||||||
$versionWithBeta = "${{ needs.prepare.outputs.version }}"
|
$versionWithBeta = "${{ needs.prepare.outputs.version }}"
|
||||||
$tagVersion = "v" + $versionWithBeta
|
$tagVersion = "v" + $versionWithBeta
|
||||||
Write-Host "Renaming release title for tag: $tagVersion"
|
Write-Host "Editing release for tag: $tagVersion"
|
||||||
|
|
||||||
# Check if release exists
|
# Check if release exists
|
||||||
$releaseExists = gh release view $tagVersion 2>$null
|
$releaseExists = gh release view $tagVersion 2>$null
|
||||||
if ($LASTEXITCODE -eq 0) {
|
if ($LASTEXITCODE -eq 0) {
|
||||||
Write-Host "Found release with tag $tagVersion, renaming title to 'Beta'..."
|
Write-Host "Found release with tag $tagVersion"
|
||||||
|
|
||||||
# Get current release notes
|
# Get current release notes
|
||||||
$releaseNotes = gh release view $tagVersion --json body --jq '.body'
|
|
||||||
|
|
||||||
# Update the release with new title
|
# Find the latest non-prerelease tag
|
||||||
|
Write-Host "Finding latest non-prerelease tag..."
|
||||||
|
$latestNonPrerelease = gh release list --limit 100 --json tagName,isPrerelease | ConvertFrom-Json | Where-Object { $_.isPrerelease -eq $false } | Select-Object -First 1
|
||||||
|
|
||||||
|
if ($latestNonPrerelease) {
|
||||||
|
$latestTag = $latestNonPrerelease.tagName
|
||||||
|
Write-Host "Latest non-prerelease tag: $latestTag"
|
||||||
|
|
||||||
|
# Get commits between latest non-prerelease and current HEAD
|
||||||
|
Write-Host "Getting commits between $latestTag and HEAD..."
|
||||||
|
|
||||||
|
# Use proper git range syntax and handle PowerShell string interpolation
|
||||||
|
$gitRange = "$latestTag..HEAD"
|
||||||
|
Write-Host "Git range: $gitRange"
|
||||||
|
|
||||||
|
# Get commits using proper git command with datetime
|
||||||
|
$commits = git log --oneline --pretty=format:"%ad|%s|%h" --date=short $gitRange
|
||||||
|
|
||||||
|
# Check if commits exist
|
||||||
|
if ($commits -and $commits.Trim() -ne "") {
|
||||||
|
Write-Host "Found commits:"
|
||||||
|
Write-Host $commits
|
||||||
|
|
||||||
|
# Group commits by date
|
||||||
|
$groupedCommits = @{}
|
||||||
|
foreach ($line in $commits) {
|
||||||
|
if ($line.Trim() -ne "") {
|
||||||
|
$parts = $line.Split('|')
|
||||||
|
$date = $parts[0]
|
||||||
|
$message = $parts[1]
|
||||||
|
$hash = $parts[2]
|
||||||
|
|
||||||
|
if (-not $groupedCommits.ContainsKey($date)) {
|
||||||
|
$groupedCommits[$date] = @()
|
||||||
|
}
|
||||||
|
$groupedCommits[$date] += "- $message ($hash)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Build formatted release notes grouped by date
|
||||||
|
$commitNotes = "## Changes since $latestTag`n`n"
|
||||||
|
$sortedDates = $groupedCommits.Keys | Sort-Object -Descending
|
||||||
|
foreach ($date in $sortedDates) {
|
||||||
|
$commitNotes += "### $date`n"
|
||||||
|
foreach ($commit in $groupedCommits[$date]) {
|
||||||
|
$commitNotes += "$commit`n"
|
||||||
|
}
|
||||||
|
$commitNotes += "`n"
|
||||||
|
}
|
||||||
|
|
||||||
|
$releaseNotes = $commitNotes
|
||||||
|
} else {
|
||||||
|
Write-Host "No commits found between $latestTag and HEAD"
|
||||||
|
Write-Host "Trying alternative approach..."
|
||||||
|
|
||||||
|
# Alternative: get commits since the tag (not range) with datetime
|
||||||
|
$commits = git log --oneline --pretty=format:"%ad|%s|%h" --date=short $latestTag.. --not $latestTag
|
||||||
|
|
||||||
|
if ($commits -and $commits.Trim() -ne "") {
|
||||||
|
Write-Host "Found commits with alternative method:"
|
||||||
|
Write-Host $commits
|
||||||
|
|
||||||
|
# Group commits by date
|
||||||
|
$groupedCommits = @{}
|
||||||
|
foreach ($line in $commits) {
|
||||||
|
if ($line.Trim() -ne "") {
|
||||||
|
$parts = $line.Split('|')
|
||||||
|
$date = $parts[0]
|
||||||
|
$message = $parts[1]
|
||||||
|
$hash = $parts[2]
|
||||||
|
|
||||||
|
if (-not $groupedCommits.ContainsKey($date)) {
|
||||||
|
$groupedCommits[$date] = @()
|
||||||
|
}
|
||||||
|
$groupedCommits[$date] += "- $message ($hash)"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
# Build formatted release notes grouped by date
|
||||||
|
$commitNotes = "## Changes since $latestTag`n`n"
|
||||||
|
$sortedDates = $groupedCommits.Keys | Sort-Object -Descending
|
||||||
|
foreach ($date in $sortedDates) {
|
||||||
|
$commitNotes += "### $date`n"
|
||||||
|
foreach ($commit in $groupedCommits[$date]) {
|
||||||
|
$commitNotes += "$commit`n"
|
||||||
|
}
|
||||||
|
$commitNotes += "`n"
|
||||||
|
}
|
||||||
|
|
||||||
|
$releaseNotes = $commitNotes
|
||||||
|
} else {
|
||||||
|
Write-Host "Still no commits found, using basic release notes"
|
||||||
|
$releaseNotes = "## Beta Release`n`nThis is a beta release."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
Write-Host "No non-prerelease tags found, using basic release notes"
|
||||||
|
$releaseNotes = "## Beta Release`n`nThis is a beta release."
|
||||||
|
}
|
||||||
|
|
||||||
|
# Update the release with new title and notes
|
||||||
|
Write-Host "Updating release with title 'Beta' and new notes..."
|
||||||
gh release edit $tagVersion --title "Beta" --notes "$releaseNotes"
|
gh release edit $tagVersion --title "Beta" --notes "$releaseNotes"
|
||||||
Write-Host "Successfully renamed release title to 'Beta'"
|
Write-Host "Successfully updated release title to 'Beta' and added commit notes"
|
||||||
} else {
|
} else {
|
||||||
Write-Host "No release found with tag $tagVersion"
|
Write-Host "No release found with tag $tagVersion"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue