release: cut v2.6.1 #13
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: Native Release | |
| on: | |
| push: | |
| tags: | |
| - "v*" | |
| workflow_dispatch: | |
| permissions: | |
| contents: write | |
| jobs: | |
| package-native: | |
| name: Package Native (${{ matrix.label }}) | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - os: ubuntu-latest | |
| label: linux-x86_64 | |
| rust_target: x86_64-unknown-linux-gnu | |
| bun_target: bun-linux-x64 | |
| archive: prism-linux-x86_64.tar.gz | |
| tui_binary: prism-tui | |
| - os: macos-14 | |
| label: macos-aarch64 | |
| rust_target: aarch64-apple-darwin | |
| bun_target: bun-darwin-arm64 | |
| archive: prism-macos-aarch64.tar.gz | |
| tui_binary: prism-tui | |
| - os: macos-13 | |
| label: macos-x86_64 | |
| rust_target: x86_64-apple-darwin | |
| bun_target: bun-darwin-x64 | |
| archive: prism-macos-x86_64.tar.gz | |
| tui_binary: prism-tui | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install system deps (Linux — rdkafka needs libcurl) | |
| if: runner.os == 'Linux' | |
| run: sudo apt-get update && sudo apt-get install -y cmake libcurl4-openssl-dev | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| target: ${{ matrix.rust_target }} | |
| - uses: Swatinem/rust-cache@v2 | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: "22" | |
| - uses: oven-sh/setup-bun@v2 | |
| - name: Install dashboard deps | |
| run: cd dashboard && npm ci | |
| - name: Build dashboard bundle | |
| run: cd dashboard && npm run build | |
| - name: Install frontend deps | |
| run: cd frontend && bun install --frozen-lockfile | |
| - name: Build Rust binaries | |
| run: cargo build --release --bin prism --bin prism-node --target ${{ matrix.rust_target }} | |
| - name: Build TS TUI binary | |
| run: | | |
| cd frontend | |
| bun build src/index.tsx --compile \ | |
| --target=${{ matrix.bun_target }} \ | |
| --outfile ../dist/${{ matrix.tui_binary }} | |
| - name: Assemble package | |
| shell: bash | |
| run: | | |
| mkdir -p package | |
| cp target/${{ matrix.rust_target }}/release/prism package/ | |
| cp target/${{ matrix.rust_target }}/release/prism-node package/ | |
| cp dist/${{ matrix.tui_binary }} package/prism-tui | |
| tar -C package -czf ${{ matrix.archive }} . | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.archive }} | |
| path: ${{ matrix.archive }} | |
| - uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ matrix.tui_binary }} | |
| path: dist/${{ matrix.tui_binary }} | |
| - name: Publish release assets | |
| if: startsWith(github.ref, 'refs/tags/') | |
| uses: softprops/action-gh-release@v2 | |
| with: | |
| files: | | |
| ${{ matrix.archive }} | |
| dist/${{ matrix.tui_binary }} |