Skip to content

Commit f57904d

Browse files
authored
test: run kafka as github CI service instead of container (#1634)
1 parent a059813 commit f57904d

File tree

2 files changed

+55
-21
lines changed

2 files changed

+55
-21
lines changed

.github/workflows/router-ci.yaml

Lines changed: 25 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@ name: Router CI
22
on:
33
pull_request:
44
paths:
5-
- "composition-go/**/*"
6-
- "demo/**/*"
7-
- "router/**/*"
8-
- "router-tests/**/*"
9-
- "connect/**/*"
10-
- ".github/workflows/router-ci.yaml"
5+
- 'composition-go/**/*'
6+
- 'demo/**/*'
7+
- 'router/**/*'
8+
- 'router-tests/**/*'
9+
- 'connect/**/*'
10+
- '.github/workflows/router-ci.yaml'
1111

1212
concurrency:
1313
group: ${{github.workflow}}-${{github.head_ref}}
@@ -150,6 +150,22 @@ jobs:
150150
password: ${{secrets.DOCKER_PASSWORD}}
151151
ports:
152152
- 6379:6379
153+
kafka:
154+
image: bitnami/kafka:3.7.0
155+
env:
156+
KAFKA_ENABLE_KRAFT: yes
157+
KAFKA_CFG_PROCESS_ROLES: controller,broker
158+
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: CONTROLLER
159+
KAFKA_CFG_LISTENERS: PLAINTEXT://:9092,CONTROLLER://:9093
160+
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT
161+
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: 1@localhost:9093
162+
KAFKA_CFG_TRANSACTION_PARTITION_VERIFICATION_ENABLE: false
163+
KAFKA_CFG_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
164+
KAFKA_CFG_NODE_ID: 1
165+
ALLOW_PLAINTEXT_LISTENER: yes
166+
KAFKA_KRAFT_CLUSTER_ID: XkpGZQ27R3eTl3OdTm2LYA # 16 byte base64-encoded UUID
167+
ports:
168+
- '9092:9092'
153169
steps:
154170
- uses: actions/checkout@v4
155171
- uses: ./.github/actions/go
@@ -205,14 +221,14 @@ jobs:
205221
dockerfile: router/Dockerfile
206222
token: ${{secrets.GITHUB_TOKEN}}
207223
image_name: router
208-
image_description: "Cosmo Router"
224+
image_description: 'Cosmo Router'
209225
image_platforms: 'linux/amd64'
210226
load_Image: 'true'
211227
push: 'false'
212228

213229
- uses: ./.github/actions/image-scan
214230
with:
215-
name: "Router"
231+
name: 'Router'
216232
github_token: ${{secrets.GITHUB_TOKEN}}
217233
image_ref: 'ghcr.io/wundergraph/cosmo/router:sha-${{ github.sha }}'
218234

@@ -233,4 +249,4 @@ jobs:
233249
dockerfile: router/Dockerfile
234250
token: ${{secrets.GITHUB_TOKEN}}
235251
image_name: router
236-
image_description: "Cosmo Router"
252+
image_description: 'Cosmo Router'

router-tests/testenv/testenv.go

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -364,22 +364,40 @@ func createTestEnv(t testing.TB, cfg *Config) (*Environment, error) {
364364
}
365365

366366
if cfg.EnableKafka {
367-
kafkaStarted.Add(1)
368-
go func() {
369-
defer kafkaStarted.Done()
370-
371-
var kafkaSetupErr error
372-
kafkaSetup, kafkaSetupErr = setupKafkaServer(t)
373-
if kafkaSetupErr != nil || kafkaSetup == nil {
374-
t.Fatalf("could not setup kafka: %s", kafkaSetupErr.Error())
375-
return
367+
// Depending on whether or not we are in CI e.g. Github Actions, we
368+
// either start a kafka container or use the one provided by the CI
369+
// This is faster in GHA due to pitiful DIND speed, and helps prevent timeout
370+
// related errors (for now)
371+
if os.Getenv("CI") == "true" {
372+
cfg.KafkaSeeds = []string{"localhost:9092"}
373+
374+
client, err := kgo.NewClient(
375+
kgo.SeedBrokers(cfg.KafkaSeeds...),
376+
)
377+
if err != nil {
378+
return nil, err
376379
}
377380

378-
kafkaClient = kafkaSetup.Client
381+
kafkaClient = client
379382
kafkaAdminClient = kadm.NewClient(kafkaClient)
383+
} else {
384+
kafkaStarted.Add(1)
385+
go func() {
386+
defer kafkaStarted.Done()
387+
388+
var kafkaSetupErr error
389+
kafkaSetup, kafkaSetupErr = setupKafkaServer(t)
390+
if kafkaSetupErr != nil || kafkaSetup == nil {
391+
t.Fatalf("could not setup kafka: %s", kafkaSetupErr.Error())
392+
return
393+
}
380394

381-
cfg.KafkaSeeds = kafkaSetup.Brokers
382-
}()
395+
kafkaClient = kafkaSetup.Client
396+
kafkaAdminClient = kadm.NewClient(kafkaClient)
397+
398+
cfg.KafkaSeeds = kafkaSetup.Brokers
399+
}()
400+
}
383401
}
384402

385403
if cfg.EnableNats {

0 commit comments

Comments
 (0)