Browse Source
ci: add Kafka and PostgreSQL gateway tests to GitHub Actions
ci: add Kafka and PostgreSQL gateway tests to GitHub Actions
- Added comprehensive Kafka Gateway test workflow: * Unit tests for protocol handlers * Client compatibility tests (kafka-go, Sarama) * Protocol version tests (Metadata, Produce, ApiVersions) - Added PostgreSQL Gateway test workflow: * Basic connectivity tests * Client integration tests * Docker-based test environment Both workflows include proper caching, logging, and cleanup procedures.pull/7231/head
2 changed files with 175 additions and 0 deletions
@ -0,0 +1,102 @@ |
|||||
|
name: "Kafka Gateway Tests" |
||||
|
|
||||
|
on: |
||||
|
push: |
||||
|
branches: [ master ] |
||||
|
pull_request: |
||||
|
branches: [ master ] |
||||
|
|
||||
|
concurrency: |
||||
|
group: ${{ github.head_ref }}/kafka-tests |
||||
|
cancel-in-progress: true |
||||
|
|
||||
|
permissions: |
||||
|
contents: read |
||||
|
|
||||
|
jobs: |
||||
|
kafka-unit-tests: |
||||
|
name: Kafka Unit Tests |
||||
|
runs-on: ubuntu-latest |
||||
|
timeout-minutes: 10 |
||||
|
steps: |
||||
|
- name: Set up Go 1.x |
||||
|
uses: actions/setup-go@v5 |
||||
|
with: |
||||
|
go-version: ^1.21 |
||||
|
id: go |
||||
|
|
||||
|
- name: Check out code |
||||
|
uses: actions/checkout@v4 |
||||
|
|
||||
|
- name: Get dependencies |
||||
|
run: | |
||||
|
cd test/kafka |
||||
|
go mod download |
||||
|
|
||||
|
- name: Run Kafka Gateway Unit Tests |
||||
|
run: | |
||||
|
cd test/kafka |
||||
|
go test -v -timeout 30s ./... |
||||
|
|
||||
|
kafka-client-compatibility: |
||||
|
name: Kafka Client Compatibility |
||||
|
runs-on: ubuntu-latest |
||||
|
timeout-minutes: 15 |
||||
|
steps: |
||||
|
- name: Set up Go 1.x |
||||
|
uses: actions/setup-go@v5 |
||||
|
with: |
||||
|
go-version: ^1.21 |
||||
|
id: go |
||||
|
|
||||
|
- name: Check out code |
||||
|
uses: actions/checkout@v4 |
||||
|
|
||||
|
- name: Get dependencies |
||||
|
run: | |
||||
|
cd test/kafka |
||||
|
go mod download |
||||
|
|
||||
|
- name: Test kafka-go Client Compatibility |
||||
|
run: | |
||||
|
cd test/kafka |
||||
|
go test -v -run TestKafkaGo_ProduceOnly -timeout 10s |
||||
|
|
||||
|
- name: Test Sarama Client Compatibility |
||||
|
run: | |
||||
|
cd test/kafka |
||||
|
go test -v -run TestSarama -timeout 10s |
||||
|
|
||||
|
kafka-protocol-tests: |
||||
|
name: Kafka Protocol Tests |
||||
|
runs-on: ubuntu-latest |
||||
|
timeout-minutes: 10 |
||||
|
steps: |
||||
|
- name: Set up Go 1.x |
||||
|
uses: actions/setup-go@v5 |
||||
|
with: |
||||
|
go-version: ^1.21 |
||||
|
id: go |
||||
|
|
||||
|
- name: Check out code |
||||
|
uses: actions/checkout@v4 |
||||
|
|
||||
|
- name: Get dependencies |
||||
|
run: | |
||||
|
cd test/kafka |
||||
|
go mod download |
||||
|
|
||||
|
- name: Test Metadata API Versions |
||||
|
run: | |
||||
|
cd test/kafka |
||||
|
go test -v -run TestMetadata -timeout 10s |
||||
|
|
||||
|
- name: Test Produce API Versions |
||||
|
run: | |
||||
|
cd test/kafka |
||||
|
go test -v -run TestProduce -timeout 10s |
||||
|
|
||||
|
- name: Test ApiVersions Compatibility |
||||
|
run: | |
||||
|
cd test/kafka |
||||
|
go test -v -run TestApiVersions -timeout 10s |
||||
@ -0,0 +1,73 @@ |
|||||
|
name: "PostgreSQL Gateway Tests" |
||||
|
|
||||
|
on: |
||||
|
push: |
||||
|
branches: [ master ] |
||||
|
pull_request: |
||||
|
branches: [ master ] |
||||
|
|
||||
|
concurrency: |
||||
|
group: ${{ github.head_ref }}/postgres-tests |
||||
|
cancel-in-progress: true |
||||
|
|
||||
|
permissions: |
||||
|
contents: read |
||||
|
|
||||
|
jobs: |
||||
|
postgres-basic-tests: |
||||
|
name: PostgreSQL Basic Tests |
||||
|
runs-on: ubuntu-latest |
||||
|
timeout-minutes: 15 |
||||
|
defaults: |
||||
|
run: |
||||
|
working-directory: test/postgres |
||||
|
steps: |
||||
|
- name: Set up Go 1.x |
||||
|
uses: actions/setup-go@v5 |
||||
|
with: |
||||
|
go-version: ^1.21 |
||||
|
id: go |
||||
|
|
||||
|
- name: Check out code |
||||
|
uses: actions/checkout@v4 |
||||
|
|
||||
|
- name: Set up Docker Buildx |
||||
|
uses: docker/setup-buildx-action@v3 |
||||
|
|
||||
|
- name: Cache Docker layers |
||||
|
uses: actions/cache@v4 |
||||
|
with: |
||||
|
path: /tmp/.buildx-cache |
||||
|
key: ${{ runner.os }}-buildx-postgres-${{ github.sha }} |
||||
|
restore-keys: | |
||||
|
${{ runner.os }}-buildx-postgres- |
||||
|
|
||||
|
- name: Start PostgreSQL Gateway Services |
||||
|
run: | |
||||
|
make start-seaweedfs |
||||
|
sleep 10 |
||||
|
|
||||
|
- name: Run Basic Connectivity Test |
||||
|
run: | |
||||
|
make test-basic |
||||
|
|
||||
|
- name: Run PostgreSQL Client Tests |
||||
|
run: | |
||||
|
make test-client |
||||
|
|
||||
|
- name: Save logs |
||||
|
if: always() |
||||
|
run: | |
||||
|
docker compose logs > postgres-output.log || true |
||||
|
|
||||
|
- name: Archive logs |
||||
|
if: always() |
||||
|
uses: actions/upload-artifact@v4 |
||||
|
with: |
||||
|
name: postgres-logs |
||||
|
path: test/postgres/postgres-output.log |
||||
|
|
||||
|
- name: Cleanup |
||||
|
if: always() |
||||
|
run: | |
||||
|
make clean || true |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue