Skip to content

docs: update title to eigencloud (#277) #1180

docs: update title to eigencloud (#277)

docs: update title to eigencloud (#277) #1180

Workflow file for this run

name: Devkit E2E Test
on:
push:
branches: [main]
pull_request:
branches: ["**"]
permissions:
contents: read
env:
FOUNDRY_PROFILE: ci
L1_FORK_URL: ${{ secrets.L1_FORK_URL }}
L2_FORK_URL: ${{ secrets.L2_FORK_URL }}
jobs:
e2e:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
with:
submodules: recursive
- name: Set up Go
uses: actions/setup-go@d35c59abb061a4a6fb18e82ac0862c26744d6ab5 # v5.5.0
with:
go-version: "1.24"
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@82dee4ba654bd2146511f85f0d013af94670c4de # v1.4.0
with:
version: stable
- name: Install devkit CLI
run: make install
- name: Add ~/bin to PATH
run: echo "$HOME/bin" >> $GITHUB_PATH
- name: Run devkit avs create
run: devkit avs create my-awesome-avs
- name: Verify AVS project created
run: |
if [ ! -f "./my-awesome-avs/config/config.yaml" ]; then
echo "❌ AVS project config/config.yaml not found!"
exit 1
fi
echo "✅ AVS project created successfully at ${GITHUB_WORKSPACE}/my-awesome-avs/"
- name: Run devkit avs build
env:
DOCKER_BUILDKIT: 1
run: |
cd ./my-awesome-avs/
devkit avs build
- name: Run devkit avs test
run: |
cd ./my-awesome-avs/
devkit avs test
- name: Start devnet
run: |
cd ./my-awesome-avs/
devkit avs devnet start &
# wait until executor and aggregator are available
until nc -z localhost 9090 && nc -z localhost 8081; do
sleep 1
done
- name: Check devnet RPC is live
run: |
for i in {1..10}; do
bn=$(cast block-number --rpc-url http://localhost:8545 || echo "error")
if [ "$bn" != "error" ]; then
echo "Current block number: $bn"
exit 0
fi
echo "Waiting for devnet... retrying in 2s"
sleep 2
done
echo "❌ Devnet failed to start"
exit 1
- name: Call AVS and assert result is produced
shell: bash
run: |
set -euo pipefail
cd ./my-awesome-avs/
# Stream stderr to log and capture to file
devkit avs call -- signature="(uint256,string)" args='(5,"hello")' \
1>/dev/null 2> >(tee call_stderr.log >&2) || true
# Optional: normalize by stripping ANSI control codes
sed -E 's/\x1B\[[0-9;]*[A-Za-z]//g' call_stderr.log > call_stderr.clean
LOG="call_stderr.clean"
# Fail fast on explicit timeout
if grep -q "Timeout: TaskVerified() not seen" "$LOG"; then
echo "❌ Timeout waiting for TaskVerified()"
tail -n 200 "$LOG" || true
exit 1
fi
# Ensure success marker is present
if ! grep -q "TaskVerified event received:" "$LOG"; then
echo "❌ No 'TaskVerified event received' marker found"
tail -n 200 "$LOG" || true
exit 1
fi
# Extract result bytes: " - result: 0x..."
RESULT_BYTES="$(grep -m1 -E '^[[:space:]-]*TaskResult:' "$LOG" | sed 's/.*TaskResult:\s*//')"
# Validate non-empty hex payload
if [[ -z "${RESULT_BYTES}" ]] || ! [[ "${RESULT_BYTES}" =~ ^0x[0-9a-fA-F]*$ ]]; then
echo "❌ Invalid or empty result bytes: '${RESULT_BYTES:-<empty>}'"
tail -n 200 "$LOG" || true
exit 1
fi
echo "✅ Result received: ${RESULT_BYTES}"
- name: Verify stake table roots
run: |
cd ./my-awesome-avs/
devkit avs transport verify
- name: Set release metadata URI
run: |
cd ./my-awesome-avs/
# Set URI for operator set 0
devkit avs release uri \
--metadata-uri "https://github.com/example/metadata-0.json" \
--operator-set-id 0
echo "✅ Set metadata URI for operator set 0"
# Set URI for operator set 1
devkit avs release uri \
--metadata-uri "https://github.com/example/metadata-1.json" \
--operator-set-id 1
echo "✅ Set metadata URI for operator set 1"
- name: Stop devnet
run: |
cd ./my-awesome-avs/
devkit avs devnet stop