Skip to content

Feat: Add Kafka integration for Parseable server #936 . #563

Feat: Add Kafka integration for Parseable server #936 .

Feat: Add Kafka integration for Parseable server #936 . #563

Workflow file for this run

name: Ensure parseable builds on all release targets
on:
pull_request:
paths-ignore:
- "docs/**"
- "helm/**"
- "assets/**"
- "**.md"
push:
branches:
- main
jobs:
# Default build without Kafka
build-default:
name: Build Default ${{matrix.target}}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
# Linux builds
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
- os: ubuntu-latest
target: aarch64-unknown-linux-gnu
# macOS builds
- os: macos-latest
target: x86_64-apple-darwin
- os: macos-latest
target: aarch64-apple-darwin
# Windows build
- os: windows-latest
target: x86_64-pc-windows-msvc
steps:
- uses: actions/checkout@v4
- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Cache dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ matrix.target }}-default-${{ hashFiles('**/Cargo.lock') }}
- name: Build
uses: actions-rs/cargo@v1
with:
use-cross: ${{ runner.os == 'Linux' }}
command: build
args: --target ${{ matrix.target }} --release
# Kafka build for supported platforms
build-kafka:
name: Build Kafka ${{matrix.target}}
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
include:
# Linux builds
- os: ubuntu-latest
target: x86_64-unknown-linux-gnu
- os: ubuntu-latest
target: aarch64-unknown-linux-gnu
# macOS builds
- os: macos-latest
target: x86_64-apple-darwin
- os: macos-latest
target: aarch64-apple-darwin
steps:
- uses: actions/checkout@v4
# Linux-specific dependencies
- name: Install Linux dependencies
if: runner.os == 'Linux'
run: |
sudo apt-get update
sudo apt-get install -y \
build-essential \
pkg-config \
cmake \
clang \
zlib1g-dev \
libzstd-dev \
liblz4-dev \
libssl-dev \
libsasl2-dev \
python3 \
gcc-aarch64-linux-gnu \
g++-aarch64-linux-gnu
# macOS-specific dependencies
- name: Install macOS dependencies
if: runner.os == 'macOS'
run: |
brew install \
cmake \
llvm \
pkg-config \
zstd \
lz4 \
[email protected] \
cyrus-sasl \
python3
- name: Setup Rust toolchain
uses: dtolnay/rust-toolchain@stable
with:
targets: ${{ matrix.target }}
- name: Cache dependencies
uses: actions/cache@v4
with:
path: |
~/.cargo/registry
~/.cargo/git
target
key: ${{ runner.os }}-cargo-${{ matrix.target }}-kafka-${{ hashFiles('**/Cargo.lock') }}
- name: Build with Kafka
uses: actions-rs/cargo@v1
with:
use-cross: ${{ runner.os == 'Linux' }}
command: build
args: --target ${{ matrix.target }} --features kafka --release
env:
LIBRDKAFKA_SSL_VENDORED: 1