1616 RUST_BACKTRACE : 1
1717
1818jobs :
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
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
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