Pre-Release WinUtil #191
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 | |
| pull-requests: write | |
| on: | |
| workflow_dispatch: # Manual trigger added | |
| jobs: | |
| build-runspace: | |
| runs-on: windows-latest | |
| outputs: | |
| version: ${{ steps.extract_version.outputs.version }} | |
| 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: 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: Create Pull Request for Updated JSON Links | |
| id: cpr | |
| uses: peter-evans/create-pull-request@v8 | |
| with: | |
| token: ${{ secrets.AUTO_MERGE }} | |
| commit-message: 'chore: Update documentation links in JSON configs' | |
| title: 'chore: Update Generated Dev Docs' | |
| body: 'Automated update of documentation links in JSON configs from pre-release build' | |
| branch: docs-update | |
| delete-branch: true | |
| add-paths: | | |
| config/tweaks.json | |
| config/feature.json | |
| labels: | | |
| automated | |
| documentation | |
| - name: Check outputs | |
| shell: bash | |
| run: | | |
| echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" | |
| echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" | |
| - 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_OUTPUT | |
| 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: Upload compiled script | |
| uses: actions/upload-artifact@v7 | |
| with: | |
| name: winutil-ps1 | |
| path: ./winutil.ps1 | |
| release: | |
| needs: build-runspace | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Download compiled script | |
| uses: actions/download-artifact@v8 | |
| with: | |
| name: winutil-ps1 | |
| - name: Set version from build job | |
| run: echo "VERSION=${{ needs.build-runspace.outputs.version }}" >> $GITHUB_ENV | |
| - name: Generate Release Notes | |
| id: generate_notes | |
| uses: release-drafter/release-drafter@v7 | |
| 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@v3 | |
| 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 }} |