mirror of
https://github.com/luxfi/node.git
synced 2026-07-27 03:39:39 +00:00
113 lines
3.1 KiB
YAML
113 lines
3.1 KiB
YAML
name: Test Database Replay
|
|
|
|
on:
|
|
push:
|
|
branches: [ main ]
|
|
pull_request:
|
|
branches: [ main ]
|
|
workflow_dispatch:
|
|
|
|
env:
|
|
GOWORK: off
|
|
CGO_ENABLED: "0"
|
|
GOPRIVATE: github.com/luxfi/*
|
|
GONOSUMDB: github.com/luxfi/*
|
|
|
|
jobs:
|
|
test-zapdb-replay:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
with:
|
|
submodules: recursive
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version-file: go.mod
|
|
check-latest: true
|
|
|
|
- name: Configure Git for private modules
|
|
run: git config --global url."https://${{ github.token }}@github.com/".insteadOf "https://github.com/"
|
|
|
|
- name: Build luxd with database support
|
|
run: |
|
|
echo "Building luxd (CGO_ENABLED=0)..."
|
|
go build -trimpath -o ./build/luxd ./main
|
|
./build/luxd --version
|
|
|
|
- name: Generate test staking keys
|
|
run: |
|
|
# Create test staking keys directory
|
|
mkdir -p test-keys
|
|
echo "Created test-keys directory for staking keys"
|
|
|
|
- name: Test database types
|
|
run: |
|
|
# Test that each database type can be initialized
|
|
for db_type in zapdb badgerdb memdb; do
|
|
echo "Testing $db_type..."
|
|
timeout 10s ./build/luxd \
|
|
--network-id=96369 \
|
|
--db-type=$db_type \
|
|
--data-dir=/tmp/test-$db_type \
|
|
--http-port=9630 \
|
|
--staking-port=9631 \
|
|
--log-level=info \
|
|
--sybil-protection-enabled=false \
|
|
--api-admin-enabled=true || true
|
|
|
|
# Check if database was created
|
|
if [ "$db_type" != "memdb" ]; then
|
|
ls -la /tmp/test-$db_type/db/ || true
|
|
fi
|
|
|
|
# Clean up
|
|
rm -rf /tmp/test-$db_type
|
|
done
|
|
|
|
- name: Test genesis database replay
|
|
run: |
|
|
# This would test the genesis-db flag with a sample database
|
|
# In a real CI environment, you'd have a test database available
|
|
echo "Testing genesis-db flag..."
|
|
|
|
# Create a mock test to verify the flag is accepted
|
|
timeout 5s ./build/luxd \
|
|
--network-id=96369 \
|
|
--db-type=zapdb \
|
|
--genesis-db=/tmp/mock-genesis-db \
|
|
--genesis-db-type=zapdb \
|
|
--data-dir=/tmp/test-replay \
|
|
--http-port=9630 \
|
|
--staking-port=9631 \
|
|
--log-level=info \
|
|
--sybil-protection-enabled=false \
|
|
--api-admin-enabled=true 2>&1 | grep -E "(genesis-db|Genesis)" || true
|
|
|
|
test-database-factory:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout code
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Go
|
|
uses: actions/setup-go@v6
|
|
with:
|
|
go-version-file: go.mod
|
|
check-latest: true
|
|
|
|
- name: Configure Git for private modules
|
|
run: git config --global url."https://${{ github.token }}@github.com/".insteadOf "https://github.com/"
|
|
|
|
- name: Test database factory
|
|
run: |
|
|
# Run unit tests for the database factory
|
|
go test -v ./internal/database/...
|
|
|
|
- name: Test database implementations
|
|
run: |
|
|
# Test each database implementation
|
|
go test -v ./internal/database/...
|