feat: Introduce test release workflow and update main release configu… #1
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: Test Release | |
| on: | |
| push: | |
| tags: | |
| - 'test-v*' | |
| env: | |
| CARGO_TERM_COLOR: always | |
| RUST_BACKTRACE: 1 | |
| jobs: | |
| test-release: | |
| name: Test Release (No Build) | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Create dummy artifacts | |
| run: | | |
| mkdir -p release | |
| # Create dummy binaries | |
| echo "fake linux binary" > release/temps-linux-amd64 | |
| echo "fake darwin amd64 binary" > release/temps-darwin-amd64 | |
| echo "fake darwin arm64 binary" > release/temps-darwin-arm64 | |
| # Generate checksums | |
| sha256sum release/temps-linux-amd64 > release/temps-linux-amd64.sha256 | |
| sha256sum release/temps-darwin-amd64 > release/temps-darwin-amd64.sha256 | |
| sha256sum release/temps-darwin-arm64 > release/temps-darwin-arm64.sha256 | |
| # Combined checksums | |
| cat release/temps-linux-amd64.sha256 > release/checksums.txt | |
| cat release/temps-darwin-amd64.sha256 >> release/checksums.txt | |
| cat release/temps-darwin-arm64.sha256 >> release/checksums.txt | |
| - name: Copy install script | |
| run: | | |
| cp scripts/install.sh release/install.sh | |
| chmod +x release/install.sh | |
| - name: Generate Homebrew formula | |
| run: | | |
| VERSION="${GITHUB_REF#refs/tags/test-v}" | |
| SHA256_LINUX_AMD64=$(awk '{print $1}' release/temps-linux-amd64.sha256) | |
| SHA256_DARWIN_AMD64=$(awk '{print $1}' release/temps-darwin-amd64.sha256) | |
| SHA256_DARWIN_ARM64=$(awk '{print $1}' release/temps-darwin-arm64.sha256) | |
| sed -e "s/{{VERSION}}/$VERSION/g" \ | |
| -e "s/{{SHA256_LINUX_AMD64}}/$SHA256_LINUX_AMD64/g" \ | |
| -e "s/{{SHA256_DARWIN_AMD64}}/$SHA256_DARWIN_AMD64/g" \ | |
| -e "s/{{SHA256_DARWIN_ARM64}}/$SHA256_DARWIN_ARM64/g" \ | |
| scripts/homebrew-formula.rb.template > release/temps.rb | |
| echo "Generated formula:" | |
| cat release/temps.rb | |
| - name: List release files | |
| run: | | |
| echo "Release files:" | |
| ls -lh release/ | |
| - name: Check if release exists and delete | |
| id: check_release | |
| continue-on-error: true | |
| env: | |
| GH_TOKEN: ${{ github.token }} | |
| run: | | |
| if gh release view ${{ github.ref_name }} >/dev/null 2>&1; then | |
| echo "release_exists=true" >> $GITHUB_OUTPUT | |
| echo "Release ${{ github.ref_name }} exists, will delete..." | |
| gh release delete ${{ github.ref_name }} --yes --cleanup-tag | |
| sleep 3 | |
| else | |
| echo "release_exists=false" >> $GITHUB_OUTPUT | |
| echo "No existing release found" | |
| fi | |
| - name: Create Release | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| tag_name: ${{ github.ref_name }} | |
| name: ${{ github.ref_name }} | |
| draft: false | |
| prerelease: true | |
| generate_release_notes: false | |
| fail_on_unmatched_files: true | |
| files: | | |
| release/temps-linux-amd64 | |
| release/temps-linux-amd64.sha256 | |
| release/temps-darwin-amd64 | |
| release/temps-darwin-amd64.sha256 | |
| release/temps-darwin-arm64 | |
| release/temps-darwin-arm64.sha256 | |
| release/checksums.txt | |
| release/install.sh | |
| release/temps.rb | |
| body: | | |
| ## Test Release | |
| This is a test release with dummy binaries for testing the release workflow. | |
| **Do not use these binaries - they are not functional!** | |
| To create a real release, push a tag like `v0.1.0` (without `test-` prefix). |