Skip to content

set up CI with github actions #1

set up CI with github actions

set up CI with github actions #1

Workflow file for this run

name: CI
on:
push:
branches: [ main ]
pull_request:
branches: [ main ]
jobs:
unit:
name: unit-ruby-${{ matrix.ruby-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
ruby-version: ["3.4"]
env:
LOG_LEVEL: DEBUG
steps:
- uses: actions/checkout@v4
- name: Set up Ruby ${{ matrix.ruby-version }}
uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ matrix.ruby-version }}
bundler-cache: true
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y cmake # For installing snappy
- name: Run rspec
run: bundle exec rspec
- name: Run rubocop
run: bundle exec rubocop
functional-with-wurstmeister:
name: functional-wurstmeister-kafka-${{ matrix.kafka-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
kafka-version:
- "2.11-0.11.0.3"
- "2.11-1.0.2"
- "2.11-1.1.1"
- "2.11-2.0.1"
- "2.12-2.1.1"
- "2.12-2.2.1"
- "2.12-2.3.1"
- "2.12-2.4.0"
- "2.12-2.5.0"
- "2.13-2.6.0"
env:
LOG_LEVEL: DEBUG
services:
zookeeper:
image: wurstmeister/zookeeper
ports: ['2181:2181']
kafka1:
image: wurstmeister/kafka:${{ matrix.kafka-version }}
ports: ['9092:9092']
environment:

Check failure on line 63 in .github/workflows/ci.yml

View workflow run for this annotation

GitHub Actions / CI

Invalid workflow file

The workflow is not valid. .github/workflows/ci.yml (Line: 63, Col: 9): Unexpected value 'environment' .github/workflows/ci.yml (Line: 76, Col: 9): Unexpected value 'environment'
KAFKA_BROKER_ID: 1
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ADVERTISED_PORT: 9092
KAFKA_PORT: 9092 # Internal port Kafka listens on
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_DELETE_TOPIC_ENABLE: "true"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
kafka2:
image: wurstmeister/kafka:${{ matrix.kafka-version }}
ports: ['9093:9093']
environment:
KAFKA_BROKER_ID: 2
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ADVERTISED_PORT: 9093
KAFKA_PORT: 9093
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_DELETE_TOPIC_ENABLE: "true"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
kafka3:
image: wurstmeister/kafka:${{ matrix.kafka-version }}
ports: ['9094:9094']
environment:
KAFKA_BROKER_ID: 3
KAFKA_ADVERTISED_HOST_NAME: localhost
KAFKA_ADVERTISED_PORT: 9094
KAFKA_PORT: 9094
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_DELETE_TOPIC_ENABLE: "true"
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
steps:
- uses: actions/checkout@v4
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y cmake
- name: Set up Ruby 2.5
uses: ruby/setup-ruby@v1
with:
ruby-version: "2.5"
bundler-cache: true
- name: Wait for Kafka services
run: |
echo "Waiting for Kafka services to be ready..."
sleep 30 # Adjust if needed; consider a more robust health check script
- name: Run functional tests (wurstmeister)
run: bundle exec rspec --profile --tag functional spec/functional
functional-with-bitnami:
name: functional-bitnami-kafka-${{ matrix.kafka-version }}
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
kafka-version: ["2.7.0"]
env:
LOG_LEVEL: DEBUG
services:
zookeeper:
image: bitnami/zookeeper:latest
ports: ['2181:2181']
environment:
ALLOW_ANONYMOUS_LOGIN: "yes"
ZOO_ENABLE_AUTH: "no"
kafka1:
image: bitnami/kafka:${{ matrix.kafka-version }}
ports: ['9092:9092']
environment:
KAFKA_CFG_BROKER_ID: 1
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
KAFKA_CFG_LISTENERS: PLAINTEXT://0.0.0.0:9092
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CFG_DELETE_TOPIC_ENABLE: "true"
ALLOW_PLAINTEXT_LISTENER: "yes"
KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR: 1
kafka2:
image: bitnami/kafka:${{ matrix.kafka-version }}
ports: ['9093:9093']
environment:
KAFKA_CFG_BROKER_ID: 2
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9093
KAFKA_CFG_LISTENERS: PLAINTEXT://0.0.0.0:9093
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CFG_DELETE_TOPIC_ENABLE: "true"
ALLOW_PLAINTEXT_LISTENER: "yes"
KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR: 1
kafka3:
image: bitnami/kafka:${{ matrix.kafka-version }}
ports: ['9094:9094']
environment:
KAFKA_CFG_BROKER_ID: 3
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9094
KAFKA_CFG_LISTENERS: PLAINTEXT://0.0.0.0:9094
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
KAFKA_CFG_DELETE_TOPIC_ENABLE: "true"
ALLOW_PLAINTEXT_LISTENER: "yes"
KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR: 1
steps:
- uses: actions/checkout@v4
- name: Install system dependencies
run: sudo apt-get update && sudo apt-get install -y cmake
- name: Set up Ruby 2.5
uses: ruby/setup-ruby@v1
with:
ruby-version: "2.5"
bundler-cache: true
- name: Wait for Kafka services
run: |
echo "Waiting for Kafka services to be ready..."
sleep 45
- name: Run functional tests (bitnami)
run: bundle exec rspec --profile --tag functional spec/functional