Skip to content

Commit 8c96555

Browse files
committed
set up CI with github actions
1 parent 3ece88c commit 8c96555

File tree

3 files changed

+193
-123
lines changed

3 files changed

+193
-123
lines changed

.circleci/config.yml

Lines changed: 0 additions & 122 deletions
This file was deleted.

.github/workflows/ci.yml

Lines changed: 192 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,192 @@
1+
name: CI
2+
3+
on:
4+
push:
5+
branches: [ main ]
6+
pull_request:
7+
branches: [ main ]
8+
9+
jobs:
10+
unit:
11+
name: unit-ruby-${{ matrix.ruby-version }}
12+
runs-on: ubuntu-latest
13+
strategy:
14+
fail-fast: false
15+
matrix:
16+
ruby-version: ["3.2"]
17+
env:
18+
LOG_LEVEL: DEBUG
19+
steps:
20+
- uses: actions/checkout@v4
21+
22+
- name: Set up Ruby ${{ matrix.ruby-version }}
23+
uses: ruby/setup-ruby@v1
24+
with:
25+
ruby-version: ${{ matrix.ruby-version }}
26+
bundler-cache: true
27+
28+
- name: Install system dependencies
29+
run: sudo apt-get update && sudo apt-get install -y cmake # For installing snappy
30+
31+
- name: Run rspec
32+
run: bundle exec rspec
33+
34+
- name: Run rubocop
35+
run: bundle exec rubocop
36+
37+
functional-with-wurstmeister:
38+
name: functional-wurstmeister-kafka-${{ matrix.kafka-version }}
39+
runs-on: ubuntu-latest
40+
strategy:
41+
fail-fast: false
42+
matrix:
43+
kafka-version:
44+
- "2.11-0.11.0.3"
45+
- "2.11-1.0.2"
46+
- "2.11-1.1.1"
47+
- "2.11-2.0.1"
48+
- "2.12-2.1.1"
49+
- "2.12-2.2.1"
50+
- "2.12-2.3.1"
51+
- "2.12-2.4.0"
52+
- "2.12-2.5.0"
53+
- "2.13-2.6.0"
54+
env:
55+
LOG_LEVEL: DEBUG
56+
services:
57+
zookeeper:
58+
image: wurstmeister/zookeeper
59+
ports: ['2181:2181']
60+
kafka1:
61+
image: wurstmeister/kafka:${{ matrix.kafka-version }}
62+
ports: ['9092:9092']
63+
env:
64+
KAFKA_BROKER_ID: 1
65+
KAFKA_ADVERTISED_HOST_NAME: localhost
66+
KAFKA_ADVERTISED_PORT: 9092
67+
KAFKA_PORT: 9092 # Internal port Kafka listens on
68+
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
69+
KAFKA_DELETE_TOPIC_ENABLE: "true"
70+
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
71+
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
72+
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
73+
kafka2:
74+
image: wurstmeister/kafka:${{ matrix.kafka-version }}
75+
ports: ['9093:9093']
76+
env:
77+
KAFKA_BROKER_ID: 2
78+
KAFKA_ADVERTISED_HOST_NAME: localhost
79+
KAFKA_ADVERTISED_PORT: 9093
80+
KAFKA_PORT: 9093
81+
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
82+
KAFKA_DELETE_TOPIC_ENABLE: "true"
83+
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
84+
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
85+
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
86+
kafka3:
87+
image: wurstmeister/kafka:${{ matrix.kafka-version }}
88+
ports: ['9094:9094']
89+
env:
90+
KAFKA_BROKER_ID: 3
91+
KAFKA_ADVERTISED_HOST_NAME: localhost
92+
KAFKA_ADVERTISED_PORT: 9094
93+
KAFKA_PORT: 9094
94+
KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
95+
KAFKA_DELETE_TOPIC_ENABLE: "true"
96+
KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
97+
KAFKA_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
98+
KAFKA_TRANSACTION_STATE_LOG_MIN_ISR: 1
99+
steps:
100+
- uses: actions/checkout@v4
101+
102+
- name: Install system dependencies
103+
run: sudo apt-get update && sudo apt-get install -y cmake
104+
105+
- name: Set up Ruby 2.5
106+
uses: ruby/setup-ruby@v1
107+
with:
108+
ruby-version: "2.5"
109+
bundler-cache: true
110+
111+
- name: Wait for Kafka services
112+
run: |
113+
echo "Waiting for Kafka services to be ready..."
114+
sleep 30 # Adjust if needed; consider a more robust health check script
115+
116+
- name: Run functional tests (wurstmeister)
117+
run: bundle exec rspec --profile --tag functional spec/functional
118+
119+
functional-with-bitnami:
120+
name: functional-bitnami-kafka-${{ matrix.kafka-version }}
121+
runs-on: ubuntu-latest
122+
strategy:
123+
fail-fast: false
124+
matrix:
125+
kafka-version: ["2.7.0"]
126+
env:
127+
LOG_LEVEL: DEBUG
128+
services:
129+
zookeeper:
130+
image: bitnami/zookeeper:latest
131+
ports: ['2181:2181']
132+
env:
133+
ALLOW_ANONYMOUS_LOGIN: "yes"
134+
ZOO_ENABLE_AUTH: "no"
135+
kafka1:
136+
image: bitnami/kafka:${{ matrix.kafka-version }}
137+
ports: ['9092:9092']
138+
env:
139+
KAFKA_CFG_BROKER_ID: 1
140+
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
141+
KAFKA_CFG_LISTENERS: PLAINTEXT://0.0.0.0:9092
142+
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
143+
KAFKA_CFG_DELETE_TOPIC_ENABLE: "true"
144+
ALLOW_PLAINTEXT_LISTENER: "yes"
145+
KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
146+
KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
147+
KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR: 1
148+
kafka2:
149+
image: bitnami/kafka:${{ matrix.kafka-version }}
150+
ports: ['9093:9093']
151+
env:
152+
KAFKA_CFG_BROKER_ID: 2
153+
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9093
154+
KAFKA_CFG_LISTENERS: PLAINTEXT://0.0.0.0:9093
155+
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
156+
KAFKA_CFG_DELETE_TOPIC_ENABLE: "true"
157+
ALLOW_PLAINTEXT_LISTENER: "yes"
158+
KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
159+
KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
160+
KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR: 1
161+
kafka3:
162+
image: bitnami/kafka:${{ matrix.kafka-version }}
163+
ports: ['9094:9094']
164+
env:
165+
KAFKA_CFG_BROKER_ID: 3
166+
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9094
167+
KAFKA_CFG_LISTENERS: PLAINTEXT://0.0.0.0:9094
168+
KAFKA_CFG_ZOOKEEPER_CONNECT: zookeeper:2181
169+
KAFKA_CFG_DELETE_TOPIC_ENABLE: "true"
170+
ALLOW_PLAINTEXT_LISTENER: "yes"
171+
KAFKA_CFG_OFFSETS_TOPIC_REPLICATION_FACTOR: 1
172+
KAFKA_CFG_TRANSACTION_STATE_LOG_REPLICATION_FACTOR: 1
173+
KAFKA_CFG_TRANSACTION_STATE_LOG_MIN_ISR: 1
174+
steps:
175+
- uses: actions/checkout@v4
176+
177+
- name: Install system dependencies
178+
run: sudo apt-get update && sudo apt-get install -y cmake
179+
180+
- name: Set up Ruby 2.5
181+
uses: ruby/setup-ruby@v1
182+
with:
183+
ruby-version: "2.5"
184+
bundler-cache: true
185+
186+
- name: Wait for Kafka services
187+
run: |
188+
echo "Waiting for Kafka services to be ready..."
189+
sleep 45
190+
191+
- name: Run functional tests (bitnami)
192+
run: bundle exec rspec --profile --tag functional spec/functional

spec/spec_helper.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
# frozen_string_literal: true
22

33
$LOAD_PATH.unshift File.expand_path("../../lib", __FILE__)
4+
require "logger"
45
require "active_support"
56
# A missing require for try has been added to rails master here:
67
# https://github.com/rails/rails/commit/530f7805ed5790af1d472a041bc74089dc183f47
@@ -10,7 +11,6 @@
1011
require "kafka"
1112
require "kafka/tagged_logger"
1213
require "dotenv"
13-
require "logger"
1414
require "rspec-benchmark"
1515
require "colored"
1616
require "securerandom"

0 commit comments

Comments
 (0)