Skip to content

fix: align Gloas aggregation timing with Lighthouse #1147

fix: align Gloas aggregation timing with Lighthouse

fix: align Gloas aggregation timing with Lighthouse #1147

Workflow file for this run

name: local testnet
on:
push:
branches:
- stable
- 'pr/*'
pull_request:
types: [opened, synchronize, reopened, ready_for_review]
merge_group:
jobs:
build-docker-image:
runs-on: warp-ubuntu-latest-x64-16x
steps:
- uses: actions/checkout@v6
- name: Build Docker Image
# has to be Dockerfile.devnet as spec-minimal is necessary
run: |
docker build -f Dockerfile.devnet -t node/anchor:latest .
docker save node/anchor:latest -o anchor-docker.tar
- name: Upload Docker Image Artifact
uses: actions/upload-artifact@v6
with:
name: anchor-docker
path: anchor-docker.tar
retention-days: 1
run-local-testnet:
runs-on: warp-ubuntu-latest-x64-16x
needs: build-docker-image
steps:
- uses: actions/checkout@v6
with:
# TEMPORARY: pinned to the fork branch behind ssvlabs/ssv-mini#37, which adds the
# pre_register_validators flag (main.star Step 4) + the v2.0.0 payable registration fix.
# Swap back to ssvlabs/ssv-mini at the merged SHA once #37 lands.
repository: shane-moore/ssv-mini
ref: a940244a1627257ecf2c6043fd87b594eb0faa8c
path: ssv-mini
- uses: actions/checkout@v6
with:
path: anchor
- name: Install Kurtosis
run: |
set -euo pipefail
# Resolve the latest tag from the github.com redirect rather than api.github.com.
# The REST API allows 60 unauthenticated requests/hour per IP and the shared runner
# egress IPs exhaust it, which silently yielded an empty version and broke the job.
KURTOSIS_VERSION=$(curl -fsSLI -o /dev/null -w '%{url_effective}' --retry 3 --retry-all-errors \
https://github.com/kurtosis-tech/kurtosis-cli-release-artifacts/releases/latest | sed 's#.*/tag/##')
case "${KURTOSIS_VERSION}" in
''|*/*) echo "::error::Could not resolve latest Kurtosis version (got '${KURTOSIS_VERSION}')"; exit 1 ;;
esac
echo "Installing Kurtosis version: ${KURTOSIS_VERSION}"
curl -fL --retry 3 --retry-all-errors "https://github.com/kurtosis-tech/kurtosis-cli-release-artifacts/releases/download/${KURTOSIS_VERSION}/kurtosis-cli_${KURTOSIS_VERSION}_linux_amd64.tar.gz" -o kurtosis.tar.gz
tar -xzf kurtosis.tar.gz
sudo mv kurtosis /usr/local/bin/
sudo chmod +x /usr/local/bin/kurtosis
kurtosis analytics disable
- name: Download Docker Image Artifact
uses: actions/download-artifact@v7
with:
name: anchor-docker
path: .
- name: Load Docker Image
run: docker load -i anchor-docker.tar
- name: Replace Commit placeholder in params.yaml
run: sed -i "s/<<COMMIT>>/${{ github.sha }}/g" anchor/.github/custom/local-testnet/params.yaml
- name: Start Local Testnet with Assertoor
timeout-minutes: 30
run: |
kurtosis clean -a || true
kurtosis run --verbosity DETAILED --enclave localnet ssv-mini --args-file anchor/.github/custom/local-testnet/params.yaml
- name: Await Assertoor Test Result
id: assertoor_test_result
uses: ethpandaops/assertoor-github-action@v1
with:
kurtosis_enclave_name: localnet
- name: Return Assertoor Test Result
shell: bash
run: |
test_result="${{ steps.assertoor_test_result.outputs.result }}"
test_status=$(
cat <<"EOF"
${{ steps.assertoor_test_result.outputs.test_overview }}
EOF
)
failed_test_status=$(
cat <<"EOF"
${{ steps.assertoor_test_result.outputs.failed_test_details }}
EOF
)
echo "Test Result: $test_result"
echo "$test_status"
if ! [ "$test_result" == "success" ]; then
echo "Failed Test Task Status:"
echo "$failed_test_status"
exit 1
fi
- name: Kurtosis Dump
if: always()
run: kurtosis enclave dump localnet anchor-localnet-test-logs
- name: Upload Logs Artifact
if: always()
uses: actions/upload-artifact@v6
with:
name: anchor-localnet-test-logs
path: anchor-localnet-test-logs/
retention-days: 3