Skip to content

Commit

Permalink
feat: Add smoke test
Browse files Browse the repository at this point in the history
  • Loading branch information
samcm committed Jan 9, 2024
1 parent 640c04d commit 7285460
Showing 1 changed file with 105 additions and 0 deletions.
105 changes: 105 additions & 0 deletions .github/workflows/smoke-test.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,105 @@
name: Go Test

on:
pull_request:

jobs:
setup-ethereum-network-and-run-xatu:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
- name: Build xatu image
run: |
docker build -t ethpandaops/xatu:latest .
echo "Xatu image is built."
- name: Install Kurtosis
run: |
echo "deb [trusted=yes] https://apt.fury.io/kurtosis-tech/ /" | sudo tee /etc/apt/sources.list.d/kurtosis.list
sudo apt update
sudo apt install kurtosis-cli
- name: Create Kurtosis config file
run: |
cat <<EOF > network-params.yaml
participants:
- el_client_type: geth
cl_client_type: teku
- el_client_type: nethermind
cl_client_type: prysm
- el_client_type: erigon
cl_client_type: lighthouse
- el_client_type: besu
cl_client_type: lighthouse
- el_client_type: reth
cl_client_type: lodestar
- el_client_type: ethereumjs
cl_client_type: nimbus
additional_services: []
network_parans:
genesis_delay: 60
<<EOF
- name: Start Ethereum network with Kurtosis
run: |
kurtosis run --enclave xatu github.com/kurtosis-tech/ethereum-package "$(cat network_params.yaml)"
- name: Run Xatu stack
run: |
docker compose up;
echo "Xatu stack is running."
- name: Discover beacon nodes
run: |
export BEACON_SERVICES=$(kurtosis enclave inspect xatu | grep cl- | grep http | awk '{ print $2 }' | grep -v validator)
echo "Beacon nodes discovered: $BEACON_SERVICES"
- name: Create Xatu Sentry for every participant
run: |
for service in $BEACON_SERVICES; do
port=$(kurtosis port print xatu $service http)
cat <<EOF > $(service).yaml
name: $service
ethereum:
beaconNodeAddress: $port
overrideNetworkName: "xatu-devnet"
forkChoice:
enabled: true
onReOrgEvent:
enabled: true
at:
enabled: true
slotTimes:
- 4s
attestationData:
enabled: true
at:
enabled: true
slotTimes:
- 4s
beaconCommittees:
enabled: true
output:
- name: xatu
type: xatu
config:
address: xatu-server:8080
tls: false
<<EOF
docker run -d -v $(pwd)/$(service).yaml:/opt/config.yaml --network=xatu_xatu-net ethpandaops/xatu:latest sentry --config /opt/config.yaml
done
- name: Check Clickhouse for attestation data
run: |
while true; do
if docker --network xatu_xatu-net exec clickhouse-01 clickhouse-client --query "SELECT COUNT(*) FROM default.beacon_api_eth_v1_events_attestation WHERE event_date_time > now() - INTERVAL 1 HOUR"; then
echo "Attestations table has data."
break
else
echo "Attestations table is empty. Checking again in 2 seconds..."
sleep 2
fi
done
echo "Attestation data is present. Exiting successfully."

0 comments on commit 7285460

Please sign in to comment.