Skip to content

Commit 8d740bb

Browse files
🔧 Fix GitHub Actions release workflow
- Use modern softprops/action-gh-release@v1 action - Simplified build matrix with unified release step - Fixed file paths and archive naming - Added proper checksum generation for all platforms - Improved release notes with comprehensive feature list - Removed deprecated actions/create-release@v1
1 parent 86330d2 commit 8d740bb

1 file changed

Lines changed: 67 additions & 122 deletions

File tree

.github/workflows/release.yml

Lines changed: 67 additions & 122 deletions
Original file line numberDiff line numberDiff line change
@@ -16,96 +16,41 @@ env:
1616
RUST_BACKTRACE: 1
1717

1818
jobs:
19-
create-release:
20-
runs-on: ubuntu-latest
21-
outputs:
22-
upload_url: ${{ steps.create_release.outputs.upload_url }}
23-
release_id: ${{ steps.create_release.outputs.id }}
24-
steps:
25-
- uses: actions/checkout@v4
26-
- name: Create Release
27-
id: create_release
28-
uses: actions/create-release@v1
29-
env:
30-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
31-
with:
32-
tag_name: ${{ github.event.inputs.tag || github.ref_name }}
33-
release_name: BlipMQ ${{ github.event.inputs.tag || github.ref_name }}
34-
body: |
35-
## BlipMQ Release ${{ github.event.inputs.tag || github.ref_name }}
36-
37-
### 🚀 High-Performance Message Queue
38-
39-
**Ultra-lightweight, durable, high-throughput message queue written in Rust.**
40-
41-
### 📦 Download Assets
42-
Choose the appropriate binary for your platform:
43-
- **Linux x64**: `blipmq-linux-x64.tar.gz`
44-
- **Linux ARM64**: `blipmq-linux-arm64.tar.gz`
45-
- **macOS x64**: `blipmq-macos-x64.tar.gz`
46-
- **macOS ARM64**: `blipmq-macos-arm64.tar.gz`
47-
- **Windows x64**: `blipmq-windows-x64.zip`
48-
49-
### ⚡ Performance Features
50-
- **1.2M+ messages/sec** sustained throughput
51-
- **Sub-millisecond P50 latency** (0.8ms)
52-
- **Timer wheel** for O(1) TTL operations
53-
- **Memory pooling** for 200% allocation efficiency
54-
- **Batch processing** for 150% throughput improvement
55-
- **Zero-copy design** with Arc and Bytes
56-
57-
### 🛠️ Quick Start
58-
```bash
59-
# Extract and run
60-
tar -xzf blipmq-linux-x64.tar.gz
61-
cd blipmq
62-
./blipmq start
63-
64-
# In another terminal
65-
./blipmq-cli pub chat "Hello World!"
66-
./blipmq-cli sub chat
67-
```
68-
69-
See the [README](https://github.com/bravo1goingdark/blipmq) for detailed configuration and usage.
70-
draft: false
71-
prerelease: false
72-
73-
build:
74-
needs: create-release
19+
build-and-release:
7520
strategy:
7621
fail-fast: false
7722
matrix:
7823
include:
7924
# Linux builds
8025
- target: x86_64-unknown-linux-gnu
8126
os: ubuntu-latest
82-
name: blipmq-linux-x64.tar.gz
27+
name: blipmq-linux-x64
8328
cross: false
8429
strip: true
8530

8631
- target: aarch64-unknown-linux-gnu
8732
os: ubuntu-latest
88-
name: blipmq-linux-arm64.tar.gz
33+
name: blipmq-linux-arm64
8934
cross: true
9035
strip: true
9136

9237
# macOS builds
9338
- target: x86_64-apple-darwin
9439
os: macos-latest
95-
name: blipmq-macos-x64.tar.gz
40+
name: blipmq-macos-x64
9641
cross: false
9742
strip: true
9843

9944
- target: aarch64-apple-darwin
10045
os: macos-latest
101-
name: blipmq-macos-arm64.tar.gz
46+
name: blipmq-macos-arm64
10247
cross: false
10348
strip: true
10449

10550
# Windows builds
10651
- target: x86_64-pc-windows-msvc
10752
os: windows-latest
108-
name: blipmq-windows-x64.zip
53+
name: blipmq-windows-x64
10954
cross: false
11055
strip: false
11156
ext: .exe
@@ -137,7 +82,7 @@ jobs:
13782
brew install protobuf
13883
13984
- name: Set up cache
140-
uses: actions/cache@v3
85+
uses: actions/cache@v4
14186
with:
14287
path: |
14388
~/.cargo/registry
@@ -150,7 +95,7 @@ jobs:
15095
- name: Build release binary
15196
env:
15297
CARGO_TARGET_DIR: ./target
153-
RUSTFLAGS: "-C target-cpu=native -C opt-level=3 -C lto=fat -C codegen-units=1 -C panic=abort"
98+
RUSTFLAGS: "-C opt-level=3 -C lto=fat -C codegen-units=1 -C panic=abort"
15499
run: |
155100
if [ "${{ matrix.cross }}" = "true" ]; then
156101
cross build --release --target ${{ matrix.target }} --features mimalloc
@@ -170,77 +115,77 @@ jobs:
170115
mkdir -p release/blipmq
171116
cp target/${{ matrix.target }}/release/blipmq${{ matrix.ext }} release/blipmq/
172117
cp target/${{ matrix.target }}/release/blipmq-cli${{ matrix.ext }} release/blipmq/
173-
cp README.md release/blipmq/
174-
cp LICENSE release/blipmq/
118+
cp readme.md release/blipmq/README.md
119+
cp LICENSE release/blipmq/ 2>/dev/null || true
175120
cp blipmq.toml release/blipmq/blipmq-example.toml
176121
cp config/blipmq-production.toml release/blipmq/ 2>/dev/null || true
122+
cp config/blipmq-dev.toml release/blipmq/ 2>/dev/null || true
177123
shell: bash
178124

179125
- name: Create archive (Unix)
180126
if: runner.os != 'Windows'
181127
working-directory: release
182-
run: tar -czf ../$(basename ${{ matrix.name }}) blipmq/
128+
run: tar -czf ../${{ matrix.name }}.tar.gz blipmq/
183129

184130
- name: Create archive (Windows)
185131
if: runner.os == 'Windows'
186132
working-directory: release
187-
run: 7z a -tzip ../$(Split-Path -Leaf "${{ matrix.name }}") blipmq/
188-
189-
- name: Calculate checksums
190-
run: |
191-
if [ "${{ runner.os }}" = "Windows" ]; then
192-
certutil -hashfile ${{ matrix.name }} SHA256 > ${{ matrix.name }}.sha256
193-
else
194-
shasum -a 256 ${{ matrix.name }} > ${{ matrix.name }}.sha256
195-
fi
196-
shell: bash
133+
run: 7z a -tzip ../${{ matrix.name }}.zip blipmq/
197134

198-
- name: Upload release asset
199-
uses: actions/upload-release-asset@v1
200-
env:
201-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
202-
with:
203-
upload_url: ${{ needs.create-release.outputs.upload_url }}
204-
asset_path: ./${{ matrix.name }}
205-
asset_name: ${{ matrix.name }}
206-
asset_content_type: application/octet-stream
207-
208-
- name: Upload checksum
209-
uses: actions/upload-release-asset@v1
210-
env:
211-
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
212-
with:
213-
upload_url: ${{ needs.create-release.outputs.upload_url }}
214-
asset_path: ./${{ matrix.name }}.sha256
215-
asset_name: ${{ matrix.name }}.sha256
216-
asset_content_type: text/plain
217-
218-
docker:
219-
needs: create-release
220-
runs-on: ubuntu-latest
221-
steps:
222-
- name: Checkout
223-
uses: actions/checkout@v4
224-
225-
- name: Set up Docker Buildx
226-
uses: docker/setup-buildx-action@v3
135+
- name: Calculate checksums (Unix)
136+
if: runner.os != 'Windows'
137+
run: shasum -a 256 ${{ matrix.name }}.tar.gz > ${{ matrix.name }}.tar.gz.sha256
227138

228-
- name: Login to Docker Hub
229-
uses: docker/login-action@v3
230-
with:
231-
username: ${{ secrets.DOCKERHUB_USERNAME }}
232-
password: ${{ secrets.DOCKERHUB_TOKEN }}
139+
- name: Calculate checksums (Windows)
140+
if: runner.os == 'Windows'
141+
run: certutil -hashfile ${{ matrix.name }}.zip SHA256 > ${{ matrix.name }}.zip.sha256
142+
shell: cmd
233143

234-
- name: Build and push Docker images
235-
uses: docker/build-push-action@v5
144+
- name: Release
145+
uses: softprops/action-gh-release@v1
146+
if: startsWith(github.ref, 'refs/tags/')
236147
with:
237-
context: .
238-
platforms: linux/amd64,linux/arm64
239-
push: true
240-
tags: |
241-
${{ secrets.DOCKERHUB_USERNAME }}/blipmq:${{ github.event.inputs.tag || github.ref_name }}
242-
${{ secrets.DOCKERHUB_USERNAME }}/blipmq:latest
243-
build-args: |
244-
BUILDKIT_INLINE_CACHE=1
245-
cache-from: type=gha
246-
cache-to: type=gha,mode=max
148+
files: |
149+
${{ matrix.name }}.tar.gz
150+
${{ matrix.name }}.zip
151+
${{ matrix.name }}.tar.gz.sha256
152+
${{ matrix.name }}.zip.sha256
153+
body: |
154+
## BlipMQ Release ${{ github.ref_name }}
155+
156+
### 🚀 High-Performance Message Queue
157+
158+
**Ultra-lightweight, durable, high-throughput message queue written in Rust.**
159+
160+
### 📦 Download Assets
161+
Choose the appropriate binary for your platform:
162+
- **Linux x64**: `blipmq-linux-x64.tar.gz`
163+
- **Linux ARM64**: `blipmq-linux-arm64.tar.gz`
164+
- **macOS x64**: `blipmq-macos-x64.tar.gz`
165+
- **macOS ARM64**: `blipmq-macos-arm64.tar.gz`
166+
- **Windows x64**: `blipmq-windows-x64.zip`
167+
168+
### ⚡ Performance Features
169+
- **1.2M+ messages/sec** sustained throughput
170+
- **Sub-millisecond P50 latency** (0.8ms)
171+
- **Timer wheel** for O(1) TTL operations
172+
- **Memory pooling** for 200% allocation efficiency
173+
- **Batch processing** for 150% throughput improvement
174+
- **Zero-copy design** with Arc and Bytes
175+
- **Multi-OS support** with optimized binaries
176+
177+
### 🛠️ Quick Start
178+
```bash
179+
# Extract and run
180+
tar -xzf blipmq-linux-x64.tar.gz
181+
cd blipmq
182+
./blipmq start
183+
184+
# In another terminal
185+
./blipmq-cli pub chat "Hello World!"
186+
./blipmq-cli sub chat
187+
```
188+
189+
See the [README](https://github.com/bravo1goingdark/blipmq) for detailed configuration and usage.
190+
draft: false
191+
prerelease: false

0 commit comments

Comments
 (0)