mirror of
https://github.com/logos-storage/codex-factory.git
synced 2026-01-02 13:03:07 +00:00
* feat: new Price Oracle bytecode * refactor: remove file smth.txt * feat: new PostageStamp contract * feat: change contract deploy workflow * feat: bee-1.0.0-rc2 compatible runner * feat: build from source (#47) * feat: extend build-envrionment.sh with building bee image from source * ci: new workflow option parameter - beeVersionAsCommitHash * fix(ci): try to overwrite BEE_VERSION sys variable * fix: do not export BEE_VERSION after env build * fix(ci): run build-environment without source command * fix(ci): try to retrieve built BEE_VERSION value * fix: save build BEE_VERSION value * fix(ci): retrieve built image tag in the last step * refactor: echoerr * refactor(ci): export sys variables * feat: disable warmup time (#46) * feat: disable warmup time * fix: place warmup-time to the correct place * fix: put quote back where it truly belongs * feat: state commit (#45) * refactor: remove payment treshold option because it causes performance issues * docs: design planned parameters for the new build workflow * feat: build environment with traffic gen option * fix(log): rephrase traffic gen log * feat: special bee version tagging when state commit happens * build: new env variable STATE_COMMIT * ci: STATE_COMMIT * feat: state commit scripts * refactor: destroy containers after state producing * refactor: remove unnecessary echo * fix: blockchain version at state commit * build: bumo bee-js version * build: update package-lock * fix: fixes * ci: build environment workflow with state commit * refactor: buy larger stamp * fix: publish workflow * refactor: increase stamp depth * fix: bee version fetch at commit * refactor: start containers normally instead of ephemeral for debugging * fix(ci): add chown for bee user on bee-data-dirs in order to write bee state * fix: try out the permission on bee data dir with 777 chmod * fix(ci): give folder permission in the build environment phrase * refactor(ci): raise sleep between uploads in order to generate cheques * refactor: wait 11 secs after batch purchase * fix: commit version tag string true instead of boolean * fix: add state commit check for set COMMIT_VERSION_TAG * chore: bump bee version Co-authored-by: Cafe137 <77121044+Cafe137@users.noreply.github.com>
130 lines
3.3 KiB
Bash
Executable File
130 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
|
usage() {
|
|
cat << USAGE >&2
|
|
USAGE:
|
|
$ environment.sh [COMMAND] [PARAMETERS]
|
|
COMMANDS:
|
|
start create Bee cluster with the given parameters
|
|
stop stop Bee cluster
|
|
PARAMETERS:
|
|
--ephemeral create ephemeral container for bee-client. Data won't be persisted.
|
|
--workers=number all Bee nodes in the test environment. Default is 4.
|
|
--detach It will not log the output of Queen node at the end of the process.
|
|
--port-maps=number map ports of the cluster nodes to the hosting machine in the following manner:
|
|
1. 1633:1635
|
|
2. 11633:11635
|
|
3. 21633:21635 (...)
|
|
number represents the nodes number to map from. Default is 2.
|
|
USAGE
|
|
exit 1
|
|
}
|
|
|
|
|
|
stop() {
|
|
#Stop Bee nodes
|
|
docker stop "$SWARM_BLOCKCHAIN_NAME"
|
|
#Stop blockchain nodes
|
|
"$MY_PATH/bee.sh" stop
|
|
|
|
trap - SIGINT
|
|
exit 0;
|
|
}
|
|
|
|
MY_PATH=$(dirname "$0") # relative
|
|
MY_PATH=$( cd "$MY_PATH" && pwd ) # absolutized and normalized
|
|
# Check used system variable set
|
|
BEE_ENV_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_ENV_PREFIX)
|
|
BEE_IMAGE_PREFIX=$("$MY_PATH/utils/env-variable-value.sh" BEE_IMAGE_PREFIX)
|
|
BLOCKCHAIN_VERSION=$("$MY_PATH/utils/env-variable-value.sh" BLOCKCHAIN_VERSION)
|
|
|
|
# Init variables
|
|
EPHEMERAL=false
|
|
WORKERS=4
|
|
LOG=true
|
|
SWARM_BLOCKCHAIN_NAME="$BEE_ENV_PREFIX-blockchain"
|
|
SWARM_NETWORK="$BEE_ENV_PREFIX-network"
|
|
PORT_MAPS=2
|
|
|
|
# Decide script action
|
|
case "$1" in
|
|
start)
|
|
shift 1
|
|
;;
|
|
stop)
|
|
stop
|
|
;;
|
|
*)
|
|
echoerr "Unknown command: $1"
|
|
usage
|
|
;;
|
|
esac
|
|
|
|
|
|
# Alter variables from flags
|
|
while [ $# -gt 0 ]
|
|
do
|
|
case "$1" in
|
|
--ephemeral)
|
|
EPHEMERAL=true
|
|
shift 1
|
|
;;
|
|
--workers=*)
|
|
WORKERS=${1#*=}
|
|
shift 1
|
|
;;
|
|
--port-maps=*)
|
|
PORT_MAPS="${1#*=}"
|
|
shift 1
|
|
;;
|
|
--detach)
|
|
LOG=false
|
|
shift 1
|
|
;;
|
|
--help)
|
|
usage
|
|
;;
|
|
*)
|
|
echoerr "Unknown argument: $1"
|
|
usage
|
|
;;
|
|
esac
|
|
done
|
|
|
|
echo "Create Docker network..."
|
|
"$MY_PATH/network.sh"
|
|
|
|
# Start blockchain node
|
|
echo "Start Blockchain node..."
|
|
BLOCKCHAIN_CONTAINER=$(docker container ls -qaf name=$SWARM_BLOCKCHAIN_NAME)
|
|
if [ -z "$BLOCKCHAIN_CONTAINER" ] ; then
|
|
BLOCKCHAIN_ARGUMENTS="--name $SWARM_BLOCKCHAIN_NAME --network $SWARM_NETWORK -p 127.0.0.1:9545:9545 -d"
|
|
if $EPHEMERAL ; then
|
|
BLOCKCHAIN_ARGUMENTS="$BLOCKCHAIN_ARGUMENTS --rm"
|
|
fi
|
|
docker run $BLOCKCHAIN_ARGUMENTS $BEE_IMAGE_PREFIX/$SWARM_BLOCKCHAIN_NAME:$BLOCKCHAIN_VERSION
|
|
else
|
|
docker start $BLOCKCHAIN_CONTAINER
|
|
fi
|
|
|
|
# Wait for blockchain service initializes
|
|
sleep 5
|
|
|
|
# Build up bee.sh parameters
|
|
BEE_SH_ARGUMENTS="--workers=$WORKERS --own-image --port-maps=$PORT_MAPS"
|
|
if $EPHEMERAL ; then
|
|
BEE_SH_ARGUMENTS="$BEE_SH_ARGUMENTS --ephemeral"
|
|
fi
|
|
if ! $LOG ; then
|
|
BEE_SH_ARGUMENTS="$BEE_SH_ARGUMENTS --detach"
|
|
fi
|
|
|
|
# Call bee.sh with the passed arguments
|
|
echo "Start Bee nodes..."
|
|
"$MY_PATH/bee.sh" start $BEE_SH_ARGUMENTS
|
|
|
|
# If the code run reach this point without detach flag,
|
|
# then the user interrupted the log process in the bee.sh
|
|
if $LOG ; then
|
|
docker stop $SWARM_BLOCKCHAIN_NAME
|
|
fi
|