Bump version to beta #8
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 to Chocolatey | |
| on: | |
| workflow_dispatch: # Manual trigger only | |
| push: | |
| tags: | |
| - "v[0-9]*" # Trigger on version tags like v1.0.0 | |
| permissions: | |
| contents: read | |
| id-token: write | |
| attestations: write | |
| jobs: | |
| release-chocolatey: | |
| runs-on: windows-2025 | |
| environment: chocolatey_release | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v6 | |
| - name: Install Rust toolchain | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: x86_64-pc-windows-msvc | |
| - name: Get version from Cargo.toml | |
| id: get_version | |
| run: | | |
| cargo build --release | |
| $RELEASE_VERSION = target\release\celq.exe --from-toml "this.package.version" | Select-Object -First 1 | |
| $RELEASE_VERSION = $RELEASE_VERSION.Trim('"') | |
| echo "VERSION=$RELEASE_VERSION" >> $env:GITHUB_OUTPUT | |
| echo "Release version: $RELEASE_VERSION" | |
| shell: pwsh | |
| - name: Check if version is pre-release | |
| id: check_prerelease | |
| run: | | |
| $VERSION = "${{ steps.get_version.outputs.VERSION }}" | |
| if ($VERSION -match "(alpha|beta|rc)") { | |
| echo "IS_PRERELEASE=true" >> $env:GITHUB_OUTPUT | |
| echo "Detected pre-release version: $VERSION" | |
| } else { | |
| echo "IS_PRERELEASE=false" >> $env:GITHUB_OUTPUT | |
| echo "Detected stable version: $VERSION" | |
| } | |
| shell: pwsh | |
| - name: Prepare Chocolatey package structure | |
| if: steps.check_prerelease.outputs.IS_PRERELEASE == 'false' | |
| run: | | |
| mkdir tools | |
| copy target\release\celq.exe tools\ | |
| copy LICENSE-MIT tools\LICENSE.txt | |
| shell: cmd | |
| - name: Calculate SHA256 and template VERIFICATION.txt | |
| if: steps.check_prerelease.outputs.IS_PRERELEASE == 'false' | |
| run: | | |
| $hash = (CertUtil -hashfile tools\celq.exe SHA256 | Select-Object -Index 1).Trim() | |
| $content = Get-Content choco\VERIFICATION.txt -Raw | |
| $content = $content -replace "CELQ_SHA256_EXE", $hash | |
| $content | Set-Content VERIFICATION.txt -Encoding UTF8 -NoNewline | |
| echo "SHA256: $hash" | |
| shell: pwsh | |
| - name: Import GPG key | |
| if: steps.check_prerelease.outputs.IS_PRERELEASE == 'false' | |
| uses: crazy-max/ghaction-import-gpg@v6 | |
| with: | |
| gpg_private_key: ${{ secrets.CHOCO_GPG_PRIVATE_KEY }} | |
| passphrase: ${{ secrets.CHOCO_GPG_PASSPHRASE }} | |
| - name: Clearsign VERIFICATION.txt | |
| if: steps.check_prerelease.outputs.IS_PRERELEASE == 'false' | |
| run: | | |
| gpg --clearsign --armor --output VERIFICATION.txt.asc VERIFICATION.txt | |
| Move-Item VERIFICATION.txt.asc tools\VERIFICATION.txt | |
| shell: pwsh | |
| - name: Template nuspec file | |
| if: steps.check_prerelease.outputs.IS_PRERELEASE == 'false' | |
| run: | | |
| $content = Get-Content choco\celq.nuspec -Raw | |
| $content = $content -replace "CELQ_VERSION_PLACEHOLDER", "${{ steps.get_version.outputs.VERSION }}" | |
| $content | Set-Content celq.nuspec -Encoding UTF8 | |
| shell: pwsh | |
| - name: Create Chocolatey package | |
| if: steps.check_prerelease.outputs.IS_PRERELEASE == 'false' | |
| run: choco pack celq.nuspec | |
| - name: Publish to Chocolatey | |
| if: steps.check_prerelease.outputs.IS_PRERELEASE == 'false' | |
| run: choco push celq.${{ steps.get_version.outputs.VERSION }}.nupkg -s https://push.chocolatey.org/ --api-key=${{ secrets.CHOCO_API_KEY }} | |
| shell: cmd | |
| - name: Generate attestation for celq.exe | |
| if: steps.check_prerelease.outputs.IS_PRERELEASE == 'false' | |
| uses: actions/attest-build-provenance@v3 | |
| with: | |
| subject-path: 'tools/celq.exe' | |
| - name: Generate attestation for Chocolatey package | |
| if: steps.check_prerelease.outputs.IS_PRERELEASE == 'false' | |
| uses: actions/attest-build-provenance@v3 | |
| with: | |
| subject-path: 'celq.${{ steps.get_version.outputs.VERSION }}.nupkg' |