Skip to content

feat: Introduce test release workflow and update main release configu… #1

feat: Introduce test release workflow and update main release configu…

feat: Introduce test release workflow and update main release configu… #1

Workflow file for this run

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).