Skip to content

Commit d765e2f

Browse files
fix(ci): fix client CI (#21432)
Co-authored-by: David <david@taiko.xyz>
1 parent 9277670 commit d765e2f

File tree

8 files changed

+60
-64
lines changed

8 files changed

+60
-64
lines changed

.github/workflows/taiko-client--test.yml

Lines changed: 2 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -108,37 +108,8 @@ jobs:
108108
- name: Install Foundry
109109
uses: foundry-rs/foundry-toolchain@v1
110110

111-
- name: Ensure docker compose is available
112-
shell: bash
113-
run: |
114-
set -euxo pipefail
115-
116-
if docker compose version > /dev/null 2>&1; then
117-
docker compose version
118-
exit 0
119-
fi
120-
121-
if command -v docker-compose > /dev/null 2>&1; then
122-
docker-compose version
123-
exit 0
124-
fi
125-
126-
ARCH="$(uname -m)"
127-
if [ "$ARCH" = "arm64" ]; then
128-
ARCH="aarch64"
129-
fi
130-
131-
if [ "$(whoami)" = root ]; then
132-
SUDO=""
133-
else
134-
SUDO="sudo"
135-
fi
136-
137-
$SUDO curl -fsSL \
138-
"https://github.com/docker/compose/releases/latest/download/docker-compose-linux-${ARCH}" \
139-
-o /usr/local/bin/docker-compose
140-
$SUDO chmod +x /usr/local/bin/docker-compose
141-
docker-compose version
111+
- name: Set up Docker Compose
112+
uses: docker/setup-compose-action@v1
142113

143114
- name: Set up Go
144115
uses: actions/setup-go@v6

packages/taiko-client/integration_test/deploy_l1_contract.sh

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,18 @@
11
#!/bin/bash
22

3-
source scripts/common.sh
3+
set -euo pipefail
4+
5+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6+
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$SCRIPT_DIR/.." && pwd)}"
7+
8+
source "$PROJECT_ROOT/scripts/common.sh"
49

510
# Load environment variables for deploying L1 contracts.
6-
source integration_test/l1_env.sh
11+
source "$SCRIPT_DIR/l1_env.sh"
712

813
SHASTA_FORK_TAIKO_MONO="${SHASTA_FORK_TAIKO_MONO:-../..}"
914

10-
cd ${PACAYA_FORK_TAIKO_MONO}/packages/protocol &&
15+
cd "${PACAYA_FORK_TAIKO_MONO}/packages/protocol" &&
1116
PRIVATE_KEY=$PRIVATE_KEY forge script script/layer1/based/DeployProtocolOnL1.s.sol:DeployProtocolOnL1 \
1217
--fork-url "$L1_HTTP" \
1318
--broadcast \
@@ -18,19 +23,19 @@ cd ${PACAYA_FORK_TAIKO_MONO}/packages/protocol &&
1823
cd -
1924

2025
# Get deployed contract address.
21-
DEPLOYMENT_JSON=$(cat ${PACAYA_FORK_TAIKO_MONO}/packages/protocol/deployments/deploy_l1.json)
26+
DEPLOYMENT_JSON=$(cat "${PACAYA_FORK_TAIKO_MONO}/packages/protocol/deployments/deploy_l1.json")
2227
export INBOX=$(echo "$DEPLOYMENT_JSON" | jq '.taiko' | sed 's/\"//g')
2328
export SHARED_RESOLVER=$(echo "$DEPLOYMENT_JSON" | jq '.shared_resolver' | sed 's/\"//g')
2429
export PROPOSER_ADDRESS=0x3c44cdddb6a900fa2b585dd299e03d12fa4293bc
2530
export PRECONF_WHITELIST=0x0000000000000000000000000000000000000000
2631
export REMOTE_SIGNAL_SERVICE=0x1670010000000000000000000000000000000005
2732

28-
cat "L1 contracts deployed:
33+
printf "L1 contracts deployed:
2934
PacayaTaikoInbox: $INBOX
3035
SharedAddressManager: $SHARED_RESOLVER
3136
"
3237

33-
cd ${SHASTA_FORK_TAIKO_MONO}/packages/protocol &&
38+
cd "${SHASTA_FORK_TAIKO_MONO}/packages/protocol" &&
3439
FOUNDRY_PROFILE=layer1 PRIVATE_KEY=$PRIVATE_KEY forge script script/layer1/core/DeployProtocolOnL1.s.sol:DeployProtocolOnL1 \
3540
--fork-url "$L1_HTTP" \
3641
--broadcast \

packages/taiko-client/integration_test/entrypoint.sh

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,12 @@
11
#!/bin/bash
22

3-
set -eou pipefail
3+
set -euo pipefail
4+
5+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6+
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$SCRIPT_DIR/.." && pwd)}"
47

58
# Load tool commands
6-
source scripts/common.sh
9+
source "$PROJECT_ROOT/scripts/common.sh"
710

811
# Make sure all the commands are available
912
check_command "cast"
@@ -23,14 +26,14 @@ if [ -z "${TAIKO_INTERNAL_SHASTA_TIME:-}" ] || [ -z "${ANVIL_INTERNAL_SHASTA_TIM
2326
fi
2427

2528
# Start and stop docker-compose
26-
internal/docker/start.sh
27-
trap "internal/docker/stop.sh" EXIT INT KILL ERR
29+
trap "$PROJECT_ROOT/internal/docker/stop.sh" EXIT INT KILL ERR
30+
"$PROJECT_ROOT/internal/docker/start.sh"
2831

2932
# Deploy L1 contracts
30-
integration_test/deploy_l1_contract.sh
33+
"$SCRIPT_DIR/deploy_l1_contract.sh"
3134

3235
# Load environment variables for the upcoming integration tests
33-
source integration_test/test_env.sh
36+
source "$SCRIPT_DIR/test_env.sh"
3437

3538
# Make sure environment variables are set
3639
check_env "L1_HTTP"

packages/taiko-client/integration_test/l1_env.sh

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,9 @@
11
#!/bin/bash
22

3-
source internal/docker/docker_env.sh
3+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
4+
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$SCRIPT_DIR/.." && pwd)}"
5+
6+
source "$PROJECT_ROOT/internal/docker/docker_env.sh"
47

58
export PRIVATE_KEY=0xac0974bec39a17e36ba4a6b4d238ff944bacb478cbed5efcae784d7bf4f2ff80
69
export FOUNDRY_PROFILE="layer1"
@@ -34,6 +37,6 @@ export L2_GENESIS_HASH=$(
3437
-X POST \
3538
-H "Content-Type: application/json" \
3639
-d '{"jsonrpc":"2.0","id":0,"method":"eth_getBlockByNumber","params":["0x0", false]}' \
37-
$L2_HTTP | jq .result.hash | sed 's/\"//g'
40+
"$L2_HTTP" | jq .result.hash | sed 's/\"//g'
3841
)
3942
echo "L2_GENESIS_HASH: $L2_GENESIS_HASH"

packages/taiko-client/integration_test/test_env.sh

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
11
#!/bin/bash
22

3-
source internal/docker/docker_env.sh
4-
source scripts/common.sh
3+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
4+
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$SCRIPT_DIR/.." && pwd)}"
5+
6+
source "$PROJECT_ROOT/internal/docker/docker_env.sh"
7+
source "$PROJECT_ROOT/scripts/common.sh"
58

69
SHASTA_FORK_TAIKO_MONO="${SHASTA_FORK_TAIKO_MONO:-../..}"
710

811
# get deployed contract address.
9-
PACAYA_DEPLOYMENT_JSON=$(cat ${PACAYA_FORK_TAIKO_MONO}/packages/protocol/deployments/deploy_l1.json)
10-
DEPLOYMENT_JSON=$(cat ${SHASTA_FORK_TAIKO_MONO}/packages/protocol/deployments/deploy_l1.json)
12+
PACAYA_DEPLOYMENT_JSON=$(cat "${PACAYA_FORK_TAIKO_MONO}/packages/protocol/deployments/deploy_l1.json")
13+
DEPLOYMENT_JSON=$(cat "${SHASTA_FORK_TAIKO_MONO}/packages/protocol/deployments/deploy_l1.json")
1114
export PACAYA_INBOX=$(echo "$PACAYA_DEPLOYMENT_JSON" | jq '.taiko' | sed 's/\"//g')
1215
export SHASTA_INBOX=$(echo "$DEPLOYMENT_JSON" | jq '.shasta_inbox' | sed 's/\"//g')
1316
export TAIKO_ANCHOR=0x1670010000000000000000000000000000010001
@@ -48,4 +51,4 @@ TREASURY=$TREASURY
4851
JWT_SECRET=$JWT_SECRET
4952
VERBOSITY=$VERBOSITY
5053
TAIKO_INTERNAL_SHASTA_TIME=$TAIKO_INTERNAL_SHASTA_TIME
51-
ANVIL_INTERNAL_SHASTA_TIME=$ANVIL_INTERNAL_SHASTA_TIME" > integration_test/.env
54+
ANVIL_INTERNAL_SHASTA_TIME=$ANVIL_INTERNAL_SHASTA_TIME" > "$SCRIPT_DIR/.env"

packages/taiko-client/internal/docker/start.sh

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
#!/bin/bash
22

3-
source scripts/common.sh
3+
set -euo pipefail
4+
5+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6+
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
7+
8+
source "$PROJECT_ROOT/scripts/common.sh"
49

510
# Default to l2_geth if L2_NODE is not set (preserves backward compatibility with dev_net)
611
L2_NODE="${L2_NODE:-l2_geth}"
@@ -15,7 +20,7 @@ case "$L2_NODE" in
1520
# For NMC, we need to dynamically inject the shastaTimestamp into the chainspec
1621
# because Nethermind uses a static chainspec file unlike taiko-geth which uses CLI flags.
1722
# We use a template file to avoid modifying the original and to ensure clean state on each run.
18-
NMC_CHAINSPEC_DIR="internal/docker/nodes/nmc/chainspec"
23+
NMC_CHAINSPEC_DIR="$PROJECT_ROOT/internal/docker/nodes/nmc/chainspec"
1924
NMC_CHAINSPEC_TEMPLATE="${NMC_CHAINSPEC_DIR}/taiko-devnet.template.json"
2025
NMC_CHAINSPEC="${NMC_CHAINSPEC_DIR}/taiko-devnet.json"
2126

packages/taiko-client/internal/docker/stop.sh

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
#!/bin/bash
22

3-
source scripts/common.sh
3+
set -euo pipefail
4+
5+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
6+
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$SCRIPT_DIR/../.." && pwd)}"
7+
8+
source "$PROJECT_ROOT/scripts/common.sh"
49

510
# Default to l2_geth if L2_NODE is not set (preserves backward compatibility with dev_net)
611
L2_NODE="${L2_NODE:-l2_geth}"

packages/taiko-client/scripts/common.sh

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,18 @@
33
RED='\033[1;31m'
44
NC='\033[0m' # No Color
55

6-
COMPOSE_YML="internal/docker/nodes/docker-compose.yml"
7-
8-
if docker compose version > /dev/null 2>&1; then
9-
DOCKER_COMPOSE=(docker compose)
10-
elif command -v docker-compose > /dev/null 2>&1; then
11-
DOCKER_COMPOSE=(docker-compose)
12-
else
13-
echo "ERROR: neither 'docker compose' nor 'docker-compose' is available"
6+
PROJECT_ROOT="${PROJECT_ROOT:-$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)}"
7+
COMPOSE_YML="$PROJECT_ROOT/internal/docker/nodes/docker-compose.yml"
8+
9+
if ! command docker compose version > /dev/null 2>&1; then
10+
echo "ERROR: 'docker compose' is not available"
1411
exit 1
1512
fi
1613

14+
docker_compose() {
15+
docker compose -f "$COMPOSE_YML" "$@"
16+
}
17+
1718
print_error() {
1819
local msg="$1"
1920
echo -e "${RED}$msg${NC}"
@@ -32,22 +33,22 @@ check_env() {
3233
check_command() {
3334
if ! command -v "$1" &> /dev/null; then
3435
print_error "$1 could not be found"
35-
exit
36+
exit 1
3637
fi
3738
}
3839

3940
compose_down() {
4041
local services=("$@")
4142
echo
4243
echo "stopping services..."
43-
"${DOCKER_COMPOSE[@]}" -f "$COMPOSE_YML" down -v "${services[@]}"
44+
docker_compose down -v "${services[@]}"
4445
echo "done"
4546
}
4647

4748
compose_up() {
4849
local services=("$@")
4950
echo
5051
echo "launching services..."
51-
"${DOCKER_COMPOSE[@]}" -f "$COMPOSE_YML" up --quiet-pull -d --wait "${services[@]}"
52+
docker_compose up --quiet-pull -d --wait "${services[@]}"
5253
echo "done"
5354
}

0 commit comments

Comments
 (0)