Skip to content

Adding user command integration tests to github CI workflow. #605

Adding user command integration tests to github CI workflow.

Adding user command integration tests to github CI workflow. #605

name: integration-test
on:
push:
branches:
- master
pull_request:
jobs:
LocalKeystore:
name: Integration Test - Local Keystore
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly-c4a984fbf2c48b793c8cd53af84f56009dd1070c
- name: Checkout eigensdk-go
uses: actions/checkout@v4
with:
repository: layr-labs/eigensdk-go
token: ${{ github.token }}
ref: 549e0185cee644d0a6fc9c9863f1cf76d9ef971f
- name: Run anvil chain
run: |
nohup make start-anvil-with-contracts-deployed > nohup.out 2>&1 &
- name: Install EigenLayer CLI
uses: actions/checkout@v4
with:
path: eigenlayer-cli
- name: Install less
run: |
sudo apt update
sudo apt-get install less
- name: Install EigenLayer CLI
run: |
cd eigenlayer-cli
make build
./bin/eigenlayer --version
- name: Import Operator Keys and send funds
run: |
cd eigenlayer-cli
echo "" | ./bin/eigenlayer keys import --key-type ecdsa --insecure opr0 ea25637d76e7ddae9dab9bfac7467d76a1e3bf2d67941b267edc60f2b80d9413 | cat
cast send 0xcaB1b44dd1f1C265405878Ac1179cd94D0dBA634 --value 10ether --private-key 0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6
- name: Register Operator
run: |
cd eigenlayer-cli
echo "" | ./bin/eigenlayer operator register tests/keystore/operator-ci.yaml
- name: Check operator status
run: |
cd eigenlayer-cli
./bin/eigenlayer operator status tests/keystore/operator-ci.yaml
- name: Update operator details
run: |
cd eigenlayer-cli
echo "" | ./bin/eigenlayer operator update tests/keystore/operator-ci.yaml
- name: Update operator metadata uri
run: |
cd eigenlayer-cli
echo "" | ./bin/eigenlayer operator update-metadata-uri tests/keystore/operator-ci.yaml
- name: Set Claimer address
run: |
cd eigenlayer-cli
echo "" | ./bin/eigenlayer rewards set-claimer \
--network anvil \
--eth-rpc-url http://localhost:8545 \
--earner-address 0xcaB1b44dd1f1C265405878Ac1179cd94D0dBA634 \
--claimer-address 0x2222AAC0C980Cc029624b7ff55B88Bc6F63C538f \
--path-to-key-store /home/runner/.eigenlayer/operator_keys/opr0.ecdsa.key.json \
--verbose \
--broadcast
Web3Signer:
name: Integration Test - Web3 Signer
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly-c4a984fbf2c48b793c8cd53af84f56009dd1070c
- name: Checkout eigensdk-go
uses: actions/checkout@v4
with:
repository: layr-labs/eigensdk-go
token: ${{ github.token }}
ref: 549e0185cee644d0a6fc9c9863f1cf76d9ef971f
- name: Run anvil chain
run: |
nohup make start-anvil-with-contracts-deployed > nohup.out 2>&1 &
- name: Install EigenLayer CLI
uses: actions/checkout@v4
with:
path: eigenlayer-cli
- name: Install less
run: |
sudo apt update
sudo apt-get install less
- name: Install EigenLayer CLI
run: |
cd eigenlayer-cli
make build
./bin/eigenlayer --version
- name: Run Web3 Signer
run: |
cd eigenlayer-cli/tests/web3signer
docker compose up -d
- name: Send funds
run: |
cd eigenlayer-cli
sleep 5
cast send 0x7dbc809c1ec153d45ffb0c75fb4fded68e34699e --value 10ether --private-key 0x2a871d0798f97d79848a013d4936a73bf4cc922c825d33c1cf7073dff6d409c6
- name: Register Operator
run: |
cd eigenlayer-cli
sleep 5
./bin/eigenlayer operator register tests/web3signer/operator-ci.yaml
- name: Check operator status
run: |
cd eigenlayer-cli
./bin/eigenlayer operator status tests/web3signer/operator-ci.yaml
- name: Update operator details
run: |
cd eigenlayer-cli
./bin/eigenlayer operator update tests/web3signer/operator-ci.yaml
- name: Update operator metadata uri
run: |
cd eigenlayer-cli
./bin/eigenlayer operator update-metadata-uri tests/web3signer/operator-ci.yaml
- name: Set Claimer address
run: |
cd eigenlayer-cli
./bin/eigenlayer rewards set-claimer \
--network anvil \
--eth-rpc-url http://localhost:8545 \
--earner-address 0x7dbc809c1ec153d45ffb0c75fb4fded68e34699e \
--claimer-address 0x2222AAC0C980Cc029624b7ff55B88Bc6F63C538f \
--web3signer-url http://127.0.0.1:9001 \
--verbose \
--broadcast
UserIntegrationTests:
name: Integration Test - User Commands
runs-on: ubuntu-latest
steps:
- uses: actions/setup-go@v4
with:
go-version: '1.21'
- name: Install Foundry
uses: foundry-rs/foundry-toolchain@v1
with:
version: nightly-c4a984fbf2c48b793c8cd53af84f56009dd1070c
- name: Checkout eigensdk-go
uses: actions/checkout@v4
with:
repository: layr-labs/eigensdk-go
token: ${{ github.token }}
ref: 549e0185cee644d0a6fc9c9863f1cf76d9ef971f
- name: Run anvil chain
run: |
nohup make start-anvil-with-contracts-deployed > nohup.out 2>&1 &
- name: Install EigenLayer CLI
uses: actions/checkout@v4
with:
path: eigenlayer-cli
- name: Install dependencies
run: |
sudo apt update
sudo apt install -y less bats
- name: Install EigenLayer CLI
run: |
cd eigenlayer-cli
make build
./bin/eigenlayer --version
- name: Prepare Integration Test Environment
run: |
echo "Preparing environment for integration tests."
cd eigenlayer-cli/tests/user
chmod +x user-integration-tests-runner.sh
- name: Run User Command Integration Tests
run: |
cd eigenlayer-cli/tests/user
./user-integration-tests-runner.sh
- name: Cleanup Output Files
run: |
rm -rf eigenlayer-cli/tests/user
- name: Validate Test Success
if: failure()
run: |
echo "Integration tests failed!"
exit 1