Skip to content

feature(integration-tests): Run same gemini command as in SCT #1

feature(integration-tests): Run same gemini command as in SCT

feature(integration-tests): Run same gemini command as in SCT #1

name: Gemini Integrations Tests
on:
push:
branches: [master]
pull_request:
branches: [master]
jobs:
build:
runs-on: ubuntu-latest
steps:
- name:
uses: actions/checkout@v4
- name: Setup Go
uses: actions/setup-go@v5
with:
go-version: "1.23"
- name: Build
run: make build
- uses: actions/upload-artifact@v4
with:
name: bin
path: "./bin/gemini"
if-no-files-found: error
retention-days: 1
test:
needs: [build]
runs-on: ubuntu-latest
strategy:
matrix:
gemini-features: ["basic", "normal", "all"]
gemini-concurrency: [16]
oracle-scylla-version: ["5.2.19"]
test-scylla-version: ["5.2.19"]
fail-fast: false
steps:
- uses: actions/checkout@v4
- uses: actions/download-artifact@v4
- name: Start ScyllaDB
id: scylla
run: |
SCYLLA_TEST_VERSION=${{ matrix.test-scylla-version }} \
SCYLLA_ORACLE_VERSION=${{ matrix.oracle-scylla-version }} \
docker compose -f scripts/docker-compose-scylla.yml up -d || exit 1
until docker logs gemini-oracle 2>&1 | grep "Starting listening for CQL clients" > /dev/null; do sleep 1; done
until docker logs gemini-test 2>&1 | grep "Starting listening for CQL clients" > /dev/null; do sleep 1; done
ORACLE_IP=$(docker inspect --format='{{ .NetworkSettings.Networks.gemini.IPAddress }}' gemini-oracle)
TEST_IP=$(docker inspect --format='{{ .NetworkSettings.Networks.gemini.IPAddress }}' gemini-test)
echo "ORACLE_IP=$ORACLE_IP" >> $GITHUB_ENV
echo "TEST_IP=$TEST_IP" >> $GITHUB_ENV
- name: Test
shell: bash
run: |
seed=$(date +%s)
mkdir -p results
chmod +x ./bin/gemini
./bin/gemini \
--fail-fast \
--dataset-size=small \
--seed=$seed \
--test-cluster=$TEST_IP \
--oracle-cluster=$ORACLE_IP \
--outfile ./results/gemini_result.log \
--duration 10m \
--warmup 1m \
-m mixed \
--non-interactive \
--cql-features ${{ matrix.gemini-features }} \
--request-timeout 180s \
--connect-timeout 120s \
--async-objects-stabilization-attempts 5 \
--async-objects-stabilization-backoff 500ms \
--replication-strategy "{'class': 'NetworkTopologyStrategy', 'replication_factor': '1'}" \
--oracle-replication-strategy "{'class': 'NetworkTopologyStrategy', 'replication_factor': '1'}" \
--max-mutation-retries 10 \
--max-mutation-retries-backoff 500ms \
-c ${{ matrix.gemini-concurrency }}
- name: Shutdown ScyllaDB
run: |
SCYLLA_TEST_VERSION=${{ matrix.test-scylla-version }} SCYLLA_ORACLE_VERSION=${{ matrix.oracle-scylla-version }} docker compose -f scripts/docker-compose-scylla.yml down --volumes
- uses: actions/upload-artifact@v4
with:
path: ./results/gemini_result.log
if-no-files-found: error
retention-days: 30