feature(integration-tests): Run same gemini command as in SCT #1
Workflow file for this run
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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 |