Skip to content

update to devnet 20251212 #5

update to devnet 20251212

update to devnet 20251212 #5

name: Local Network Tests
on:
push:
branches:
- main
- dev
pull_request:
branches:
- main
- dev
workflow_dispatch:
jobs:
local-network-tests:
name: Local Network Tests
runs-on: ubuntu-latest
env:
AZTEC_ENV: local-network
VERSION: 3.0.0-devnet.20251212
steps:
- name: Checkout repository
uses: actions/checkout@v5
- name: Set up Node.js
uses: actions/setup-node@v4
with:
node-version: "22"
cache: "yarn"
- name: Set up Docker
uses: docker/setup-buildx-action@v3
- name: Install Aztec CLI
run: |
curl -s https://install.aztec.network/${{ env.VERSION }} > tmp.sh
bash tmp.sh <<< yes "yes"
- name: Update path
run: echo "/home/runner/.aztec/bin" >> $GITHUB_PATH
- name: Start local network
run: |
aztec start --local-network &
- name: Wait for local network to be ready
run: |
echo "Waiting for local network to start..."
for i in {1..30}; do
if curl -s http://localhost:8080/status >/dev/null 2>&1; then
echo "✅ Local network is ready!"
break
fi
echo "Waiting... ($i/30)"
sleep 5
done
- name: Install project dependencies
run: yarn
- name: Compile contracts
run: script -e -c "${AZTEC_NARGO:-aztec-nargo} compile && aztec-postprocess-contract"
- name: Generate contract artifacts
run: script -e -c "aztec codegen target --outdir src/artifacts"
- name: Change ownership for nargo files
run: sudo chown -R $(whoami) ~/nargo && sudo chown -R $(whoami) ~/nargo/github.com
- name: Run JavaScript tests
run: |
script -e -c "rm -rf store/pxe"
script -e -c "NODE_NO_WARNINGS=1 node --experimental-vm-modules $(yarn bin jest) --no-cache --runInBand --config jest.integration.config.json"
- name: Run Aztec tests
run: script -e -c "aztec test"
- name: Deploy account and capture credentials
run: |
script -e -c "yarn clear-store"
TEMP_OUTPUT=$(mktemp)
if script -e -c "yarn deploy-account" > "$TEMP_OUTPUT" 2>&1; then
echo "✅ Deploy account script completed successfully"
else
echo "❌ Deploy account script failed"
cat "$TEMP_OUTPUT"
rm "$TEMP_OUTPUT"
exit 1
fi
cat "$TEMP_OUTPUT"
SECRET_KEY=$(grep -o "Secret key generated: 0x[a-fA-F0-9]*" "$TEMP_OUTPUT" | head -1 | sed 's/Secret key generated: //' || echo "")
SIGNING_KEY=$(grep -o "Signing key generated: 0x[a-fA-F0-9]*" "$TEMP_OUTPUT" | head -1 | sed 's/Signing key generated: //' || echo "")
SALT_VALUE=$(grep -o "Salt generated: 0x[a-fA-F0-9]*" "$TEMP_OUTPUT" | head -1 | sed 's/Salt generated: //' || echo "")
rm "$TEMP_OUTPUT"
if [ -n "$SECRET_KEY" ] && [ -n "$SIGNING_KEY" ] && [ -n "$SALT_VALUE" ]; then
echo "SECRET=\"$SECRET_KEY\"" >> .env
echo "SIGNING_KEY=\"$SIGNING_KEY\"" >> .env
echo "SALT=\"$SALT_VALUE\"" >> .env
echo "📋 Saved credentials to .env file"
else
echo "❌ Failed to extract SECRET, SIGNING_KEY, and/or SALT from deploy output"
exit 1
fi
- name: Deploy contract and capture address
run: |
TEMP_OUTPUT=$(mktemp)
if script -e -c "yarn deploy" > "$TEMP_OUTPUT" 2>&1; then
echo "✅ Deploy script completed successfully"
else
cat "$TEMP_OUTPUT"
rm "$TEMP_OUTPUT"
exit 1
fi
cat "$TEMP_OUTPUT"
# Extract contract address
POD_RACING_CONTRACT_ADDRESS=$(grep -o "Contract address: 0x[a-fA-F0-9]*" "$TEMP_OUTPUT" | head -1 | sed 's/Contract address: //' || echo "")
# Extract salt
CONTRACT_SALT=$(grep -o "Salt: 0x[a-fA-F0-9]*" "$TEMP_OUTPUT" | head -1 | sed 's/Salt: //' || echo "")
# Extract deployer
CONTRACT_DEPLOYER=$(grep -o "Deployer: 0x[a-fA-F0-9]*" "$TEMP_OUTPUT" | head -1 | sed 's/Deployer: //' || echo "")
# Extract public keys
PK_NULLIFIER=$(grep -o "Master Nullifier: 0x[a-fA-F0-9]*" "$TEMP_OUTPUT" | head -1 | sed 's/Master Nullifier: //' || echo "")
PK_INCOMING=$(grep -o "Master Incoming Viewing: 0x[a-fA-F0-9]*" "$TEMP_OUTPUT" | head -1 | sed 's/Master Incoming Viewing: //' || echo "")
PK_OUTGOING=$(grep -o "Master Outgoing Viewing: 0x[a-fA-F0-9]*" "$TEMP_OUTPUT" | head -1 | sed 's/Master Outgoing Viewing: //' || echo "")
PK_TAGGING=$(grep -o "Master Tagging: 0x[a-fA-F0-9]*" "$TEMP_OUTPUT" | head -1 | sed 's/Master Tagging: //' || echo "")
# Extract constructor args (JSON array), strip ANSI codes, and trim whitespace
CONSTRUCTOR_ARGS=$(grep "Constructor args:" "$TEMP_OUTPUT" | sed 's/.*Constructor args: //' | sed 's/\x1b\[[0-9;]*m//g' | tr -d '\n\r' | sed 's/[[:space:]]*$//' || echo "")
rm "$TEMP_OUTPUT"
# Save all data to .env
if [ -n "$POD_RACING_CONTRACT_ADDRESS" ]; then
echo "POD_RACING_CONTRACT_ADDRESS=\"$POD_RACING_CONTRACT_ADDRESS\"" >> .env
echo "📋 Saved contract address to .env file"
fi
if [ -n "$CONTRACT_SALT" ]; then
echo "CONTRACT_SALT=\"$CONTRACT_SALT\"" >> .env
echo "📋 Saved contract salt to .env file"
fi
if [ -n "$CONTRACT_DEPLOYER" ]; then
echo "CONTRACT_DEPLOYER=\"$CONTRACT_DEPLOYER\"" >> .env
echo "📋 Saved contract deployer to .env file"
fi
if [ -n "$PK_NULLIFIER" ]; then
echo "CONTRACT_PK_NULLIFIER=\"$PK_NULLIFIER\"" >> .env
fi
if [ -n "$PK_INCOMING" ]; then
echo "CONTRACT_PK_INCOMING=\"$PK_INCOMING\"" >> .env
fi
if [ -n "$PK_OUTGOING" ]; then
echo "CONTRACT_PK_OUTGOING=\"$PK_OUTGOING\"" >> .env
fi
if [ -n "$PK_TAGGING" ]; then
echo "CONTRACT_PK_TAGGING=\"$PK_TAGGING\"" >> .env
fi
if [ -n "$CONSTRUCTOR_ARGS" ]; then
echo "CONTRACT_CONSTRUCTOR_ARGS=\"$CONSTRUCTOR_ARGS\"" >> .env
echo "📋 Saved constructor args to .env file"
fi
- name: Run local network scripts
run: |
script -e -c "yarn fees"
script -e -c "yarn multiple-wallet"
script -e -c "yarn profile"
script -e -c "yarn interaction-existing-contract"