diff --git a/packages/synthetic-chain/public/upgrade-test-scripts/env_setup.sh b/packages/synthetic-chain/public/upgrade-test-scripts/env_setup.sh index 8b47c258..1b118395 100755 --- a/packages/synthetic-chain/public/upgrade-test-scripts/env_setup.sh +++ b/packages/synthetic-chain/public/upgrade-test-scripts/env_setup.sh @@ -25,6 +25,9 @@ export GOV3ADDR=$($binary keys show gov3 -a --keyring-backend="test") export VALIDATORADDR=$($binary keys show validator -a --keyring-backend="test") export USER1ADDR=$($binary keys show user1 -a --keyring-backend="test") +export PID_FILE="$HOME/.agoric/agd.pid" +export STATUS_FILE="$HOME/.agoric/last_observed_status" + if [[ "$binary" == "agd" ]]; then configdir=/usr/src/agoric-sdk/packages/vm-config # Check specifically for package.json because the directory may persist in the file system @@ -80,6 +83,20 @@ await_agd_startable() { fi } +save_latest_node_info() { + PID="$(cat "$PID_FILE")" + + if ps --pid "$PID" > /dev/null + then + NODE_STATUS="$(agd status)" + BLOCK_HEIGHT="$(echo "$NODE_STATUS" | jq '.SyncInfo.latest_block_height' --raw-output)" + echo "Saving node status at block height $BLOCK_HEIGHT" + echo "$NODE_STATUS" > "$STATUS_FILE" + else + echo "[FATAL] Chain process not running" + fi +} + startAgd() { echo "startAgd()" @@ -88,7 +105,7 @@ startAgd() { agd start --log_level warn "$@" & AGD_PID=$! - echo $AGD_PID >$HOME/.agoric/agd.pid + echo $AGD_PID > "$PID_FILE" echo "startAgd() at height $(wait_for_bootstrap | tr '\n' ' ' | sed 's/ $//; s/ /... /g;')" waitForBlock 2 echo "startAgd() done" @@ -96,11 +113,12 @@ startAgd() { killAgd() { echo "killAgd()" - AGD_PID=$(cat $HOME/.agoric/agd.pid) - kill $AGD_PID - rm $HOME/.agoric/agd.pid + save_latest_node_info + AGD_PID=$(cat "$PID_FILE") + kill "$AGD_PID" + rm "$PID_FILE" # cf. https://stackoverflow.com/a/41613532 - tail --pid=$AGD_PID -f /dev/null || true + tail --follow /dev/null --pid "$AGD_PID" || true } provisionSmartWallet() { diff --git a/packages/synthetic-chain/public/upgrade-test-scripts/run_eval.sh b/packages/synthetic-chain/public/upgrade-test-scripts/run_eval.sh index 2c82a4e6..f1f0df4f 100755 --- a/packages/synthetic-chain/public/upgrade-test-scripts/run_eval.sh +++ b/packages/synthetic-chain/public/upgrade-test-scripts/run_eval.sh @@ -30,3 +30,5 @@ fi echo "[$PROPOSAL] Eval completed. Running 10 blocks and exiting." waitForBlock 10 + +killAgd diff --git a/packages/synthetic-chain/src/cli/build.ts b/packages/synthetic-chain/src/cli/build.ts index f49146ff..bf1c741c 100755 --- a/packages/synthetic-chain/src/cli/build.ts +++ b/packages/synthetic-chain/src/cli/build.ts @@ -79,7 +79,17 @@ export const buildProposalSubmissions = (proposals: ProposalInfo[]) => { * @param [dry] - Whether to skip building and just print the build config. */ export const bakeTarget = (target: string, dry = false) => { - const cmd = `docker buildx bake --load ${target} ${dry ? '--print' : ''}`; + const cmd = [ + 'docker', + 'buildx', + 'bake', + `--load "${target}"`, + dry && '--print', + process.env.DOCKER_PROGRESS_FORMAT && + `--progress "${process.env.DOCKER_PROGRESS_FORMAT}"`, + ] + .filter(Boolean) + .join(' '); console.log(cmd); execSync(cmd, { stdio: 'inherit' }); };