2023-04-14 06:26:46 +00:00
|
|
|
#!/bin/bash
|
|
|
|
|
|
|
|
set -e
|
|
|
|
|
2024-08-05 15:50:53 +00:00
|
|
|
stack_dir=$(readlink -f "$1")
|
|
|
|
[[ -d "$stack_dir" ]]
|
2023-05-26 10:10:16 +00:00
|
|
|
|
2024-08-05 15:50:53 +00:00
|
|
|
laconic_so="laconic-so --verbose --stack $stack_dir"
|
2023-04-14 06:26:46 +00:00
|
|
|
|
2024-08-05 15:50:53 +00:00
|
|
|
CONFIG_DIR=$(readlink -f "${CONFIG_DIR:-$(mktemp -d)}")
|
|
|
|
# By default assume we are running in the project root.
|
|
|
|
export CERC_REPO_BASE_DIR="${CERC_REPO_BASE_DIR:-$(git rev-parse --show-toplevel)/..}"
|
2024-05-29 12:29:55 +00:00
|
|
|
|
2024-08-05 15:50:53 +00:00
|
|
|
# Don't run geth/plugeth in the debugger, it will swallow error backtraces
|
2024-05-29 12:29:55 +00:00
|
|
|
echo CERC_REMOTE_DEBUG=false >> $CONFIG_DIR/stack.env
|
2024-08-05 15:50:53 +00:00
|
|
|
# Passing this lets us run eth_call forwarding tests without running ipld-eth-db
|
|
|
|
echo CERC_RUN_STATEDIFF=${CERC_RUN_STATEDIFF:-true} >> $CONFIG_DIR/stack.env
|
2023-04-14 06:26:46 +00:00
|
|
|
|
|
|
|
set -x
|
|
|
|
|
2023-09-21 06:55:26 +00:00
|
|
|
if [[ -z $SKIP_BUILD ]]; then
|
2024-08-05 15:50:53 +00:00
|
|
|
# Prevent conflicting tty output
|
|
|
|
export BUILDKIT_PROGRESS=plain
|
|
|
|
|
2024-08-07 00:03:20 +00:00
|
|
|
# The server itself will be run separately
|
|
|
|
$laconic_so setup-repositories \
|
|
|
|
--exclude git.vdb.to/cerc-io/ipld-eth-server
|
|
|
|
$laconic_so build-containers \
|
|
|
|
--exclude cerc/ipld-eth-server
|
2023-09-21 06:55:26 +00:00
|
|
|
fi
|
2023-04-14 06:26:46 +00:00
|
|
|
|
2024-08-05 15:50:53 +00:00
|
|
|
if ! $laconic_so deploy \
|
2024-08-07 00:03:20 +00:00
|
|
|
--exclude ipld-eth-server \
|
2024-08-05 15:50:53 +00:00
|
|
|
--env-file $CONFIG_DIR/stack.env \
|
|
|
|
--cluster test up
|
|
|
|
then
|
|
|
|
$laconic_so deploy --cluster test logs
|
|
|
|
exit 1
|
|
|
|
fi
|
2023-04-14 06:26:46 +00:00
|
|
|
|
2023-05-25 13:48:12 +00:00
|
|
|
set +x
|
2023-04-14 06:26:46 +00:00
|
|
|
|
2024-08-05 15:50:53 +00:00
|
|
|
# Get IPv4 endpoint of geth bootnode file server
|
2023-04-14 06:26:46 +00:00
|
|
|
bootnode_endpoint=$(docker port test-fixturenet-eth-bootnode-geth-1 9898 | head -1)
|
|
|
|
|
|
|
|
# Extract the chain config and ID from genesis file
|
|
|
|
curl -s $bootnode_endpoint/geth.json | jq '.config' > $CONFIG_DIR/chain.json
|
|
|
|
|
|
|
|
# Output vars if we are running on Github
|
|
|
|
if [[ -n "$GITHUB_ENV" ]]; then
|
2023-05-26 10:10:16 +00:00
|
|
|
echo ETH_CHAIN_ID="$(jq '.chainId' $CONFIG_DIR/chain.json)" >> "$GITHUB_ENV"
|
2023-05-28 09:52:56 +00:00
|
|
|
echo ETH_CHAIN_CONFIG="$CONFIG_DIR/chain.json" >> "$GITHUB_ENV"
|
|
|
|
echo ETH_HTTP_PATH=$(docker port test-fixturenet-eth-geth-1-1 8545 | head -1) >> "$GITHUB_ENV"
|
2023-05-26 10:10:16 +00:00
|
|
|
# Read a private key so we can send from a funded account
|
2023-05-28 09:52:56 +00:00
|
|
|
echo DEPLOYER_PRIVATE_KEY=$(curl -s $bootnode_endpoint/accounts.csv | head -1 | cut -d',' -f3) >> "$GITHUB_ENV"
|
2023-04-14 06:26:46 +00:00
|
|
|
fi
|