diff --git a/.github/workflows/createchangelog.yml b/.github/workflows/createchangelog.yml index 6251f9a5..8cf058bc 100644 --- a/.github/workflows/createchangelog.yml +++ b/.github/workflows/createchangelog.yml @@ -3,7 +3,12 @@ name: Update changelog.md on Release on: release: types: [published, created, edited, deleted] - workflow_dispatch: # Add this line to enable manual triggering + workflow_dispatch: + inputs: + reason: + description: 'Reason for manual trigger' + required: false + default: 'Manual update' jobs: update-file: @@ -18,7 +23,7 @@ jobs: # Initialize some values changelog_path="docs/changelog.md" gh release list --exclude-drafts --json tagName,name,isLatest,isPrerelease --limit 1000000 > releases.txt - declare -rA number_of_releases=$(cat releases.txt | grep -Po '"tagName"' | wc --lines) + declare -r number_of_releases=$(cat releases.txt | grep -Po '"tagName"' | wc --lines) # Clear the contents of changelog file echo "" > $changelog_path @@ -91,7 +96,7 @@ jobs: name=${name_arr[$i]} isprerelease=${isprerelease_arr[$i]} islatest=${islatest_arr[$i]} - body=$(gh release view "$tag" --json body --jq .body) + body=$(gh release view "$tag" --json body --jq .body) || { echo "Failed to fetch release body for $tag"; exit 1; } # The generation of changelog file contents echo "# $name" >> $changelog_path @@ -109,5 +114,4 @@ jobs: git config --global user.name 'github-actions[bot]' git config --global user.email 'github-actions[bot]@users.noreply.github.com' git add docs/changelog.md - git commit -m "Update changelog.md with all releases" - git push + git diff --quiet && git diff --staged --quiet || (git commit -m "Update changelog.md with all releases" && git push) \ No newline at end of file diff --git a/.github/workflows/pre-release.yaml b/.github/workflows/pre-release.yaml index 34e04d32..2b8835a7 100644 --- a/.github/workflows/pre-release.yaml +++ b/.github/workflows/pre-release.yaml @@ -14,11 +14,11 @@ jobs: - name: Checkout Repository uses: actions/checkout@v4 - - name: Extract Version from winutil.ps1 + - name: Set Version to Todays Date id: extract_version run: | $version = (Get-Date -Format "yy.MM.dd") - echo "version=$version" >> $env:GITHUB_ENV + echo "VERSION=$version" >> $env:GITHUB_ENV shell: pwsh - name: Create Tag @@ -27,7 +27,15 @@ jobs: $tagExists = git tag -l $env:VERSION if ($tagExists -eq "") { git tag $env:VERSION + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to create tag $env:VERSION" + exit 1 + } git push origin $env:VERSION + if ($LASTEXITCODE -ne 0) { + Write-Error "Failed to push tag $env:VERSION" + exit 1 + } } else { Write-Host "Tag $env:VERSION already exists, skipping tag creation" } @@ -45,4 +53,4 @@ jobs: prerelease: true generate_release_notes: true env: - GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} \ No newline at end of file