Pre-Release WinUtil #176
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: Pre-Release WinUtil | |
| permissions: | |
| contents: write | |
| actions: read | |
| on: | |
| workflow_dispatch: # Manual trigger added | |
| jobs: | |
| build-runspace: | |
| runs-on: windows-latest | |
| env: | |
| CERTIFICATE_BASE64: ${{ secrets.CERTIFICATE_BASE64 }} | |
| steps: | |
| - name: Checkout Repository | |
| uses: actions/checkout@v6 | |
| - name: Generate Dev Docs and Update JSON Links | |
| shell: pwsh | |
| run: | | |
| Set-Location tools | |
| ./devdocs-generator.ps1 | |
| - name: Commit Updated JSON Links | |
| shell: pwsh | |
| run: | | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| git add config/tweaks.json config/feature.json | |
| $changes = git diff --cached --quiet; if ($LASTEXITCODE -ne 0) { | |
| git commit -m "Update documentation links in JSON configs" | |
| git push | |
| } else { | |
| Write-Host "No JSON link changes to commit" | |
| } | |
| - name: Compile project | |
| shell: pwsh | |
| run: | | |
| Set-ExecutionPolicy Bypass -Scope Process -Force; ./Compile.ps1 | |
| continue-on-error: false # Directly fail the job on error, removing the need for a separate check | |
| - name: Set Version to Todays Date | |
| id: extract_version | |
| run: | | |
| $version = (Get-Date -Format "yy.MM.dd") | |
| echo "VERSION=$version" >> $env:GITHUB_ENV | |
| shell: pwsh | |
| - name: Create Tag | |
| id: create_tag | |
| run: | | |
| $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" | |
| } | |
| shell: pwsh | |
| - name: Generate Release Notes | |
| id: generate_notes | |
| uses: release-drafter/release-drafter@v6 | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
| with: | |
| config-name: release-drafter.yml | |
| version: ${{ env.VERSION }} | |
| - name: Create and Upload Release | |
| id: create_release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ env.VERSION }} | |
| name: Pre-Release ${{ env.VERSION }} | |
| body: | | |
| ${{ steps.generate_notes.outputs.body }} | |
|  | |
| append_body: false | |
| files: ./winutil.ps1 | |
| prerelease: true | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |