Skip to content

Commit

Permalink
Merge branch 'release/v0.12.0'
Browse files Browse the repository at this point in the history
  • Loading branch information
IPadawans committed Jul 19, 2024
2 parents d862a96 + 2e5533d commit 8a57b79
Show file tree
Hide file tree
Showing 13 changed files with 171 additions and 68 deletions.
7 changes: 4 additions & 3 deletions euclid.json
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
{
"github_token": "",
"version": "0.11.0",
"tessellation_version": "2.3.3",
"version": "0.12.0",
"tessellation_version": "2.8.0",
"ref_type": "tag",
"project_name": "custom-project",
"framework": {
"name": "currency",
"modules": [
"data"
],
"version": "v2.3.3",
"version": "v2.8.0",
"ref_type": "tag"
},
"layers": [
Expand Down
94 changes: 49 additions & 45 deletions infra/docker/metagraph-base-image/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
ARG TESSELLATION_VERSION
ARG TESSELLATION_VERSION_NAME

FROM --platform=linux/amd64 metagraph-ubuntu-${TESSELLATION_VERSION}
FROM metagraph-ubuntu-${TESSELLATION_VERSION_NAME}

ARG SHOULD_BUILD_GLOBAL_L0
ARG SHOULD_BUILD_DAG_L1
Expand All @@ -17,59 +17,63 @@ COPY project/$TEMPLATE_NAME $TEMPLATE_NAME
COPY global-l0/genesis/genesis.csv global-genesis.csv
COPY metagraph-l0/genesis/genesis.csv metagraph-genesis.csv

RUN mkdir shared_jars
RUN mkdir shared_genesis
RUN mkdir shared_jars && mkdir shared_genesis

RUN if [ "$SHOULD_BUILD_GLOBAL_L0" = "true" ]; then \
mkdir global-l0; \
cp global-l0.jar global-l0/global-l0.jar; \
cp cl-wallet.jar global-l0/cl-wallet.jar; \
cp cl-keytool.jar global-l0/cl-keytool.jar; \
RUN set -e; \
if [ "$SHOULD_BUILD_GLOBAL_L0" = "true" ]; then \
mkdir global-l0 && \
cp global-l0.jar global-l0/global-l0.jar && \
cp cl-wallet.jar global-l0/cl-wallet.jar && \
cp cl-keytool.jar global-l0/cl-keytool.jar && \
mv global-genesis.csv global-l0/genesis.csv; \
fi

RUN if [ "$SHOULD_BUILD_DAG_L1" = "true" ]; then \
mkdir dag-l1; \
cp dag-l1.jar dag-l1/dag-l1.jar; \
cp cl-wallet.jar dag-l1/cl-wallet.jar; \
RUN set -e; \
if [ "$SHOULD_BUILD_DAG_L1" = "true" ]; then \
mkdir dag-l1 && \
cp dag-l1.jar dag-l1/dag-l1.jar && \
cp cl-wallet.jar dag-l1/cl-wallet.jar && \
cp cl-keytool.jar dag-l1/cl-keytool.jar; \
fi

RUN if [ "$SHOULD_BUILD_METAGRAPH_L0" = "true" ]; then \
mkdir metagraph-l0; \
cp cl-wallet.jar metagraph-l0/cl-wallet.jar; \
cp cl-keytool.jar metagraph-l0/cl-keytool.jar; \
rm -r -f $TEMPLATE_NAME/modules/l0/target; \
cd $TEMPLATE_NAME; \
sbt currencyL0/assembly; \
cd ..; \
mv $TEMPLATE_NAME/modules/l0/target/scala-2.13/*.jar metagraph-l0/metagraph-l0.jar; \
mv metagraph-genesis.csv metagraph-l0/genesis.csv; \
cp metagraph-l0/metagraph-l0.jar shared_jars/metagraph-l0.jar; \
RUN set -e; \
if [ "$SHOULD_BUILD_METAGRAPH_L0" = "true" ]; then \
mkdir metagraph-l0 && \
cp cl-wallet.jar metagraph-l0/cl-wallet.jar && \
cp cl-keytool.jar metagraph-l0/cl-keytool.jar && \
rm -r -f $TEMPLATE_NAME/modules/l0/target && \
cd $TEMPLATE_NAME && \
sbt currencyL0/assembly && \
cd .. && \
mv $TEMPLATE_NAME/modules/l0/target/scala-2.13/*.jar metagraph-l0/metagraph-l0.jar && \
mv metagraph-genesis.csv metagraph-l0/genesis.csv && \
cp metagraph-l0/metagraph-l0.jar shared_jars/metagraph-l0.jar && \
cp metagraph-l0/genesis.csv shared_genesis/genesis.csv; \
fi

RUN if [ "$SHOULD_BUILD_CURRENCY_L1" = "true" ]; then \
mkdir currency-l1; \
cp cl-wallet.jar currency-l1/cl-wallet.jar; \
cp cl-keytool.jar currency-l1/cl-keytool.jar; \
rm -r -f $TEMPLATE_NAME/modules/l1/target; \
cd $TEMPLATE_NAME; \
sbt currencyL1/assembly; \
cd ..; \
mv $TEMPLATE_NAME/modules/l1/target/scala-2.13/*.jar currency-l1/currency-l1.jar; \
RUN set -e; \
if [ "$SHOULD_BUILD_CURRENCY_L1" = "true" ]; then \
mkdir currency-l1 && \
cp cl-wallet.jar currency-l1/cl-wallet.jar && \
cp cl-keytool.jar currency-l1/cl-keytool.jar && \
rm -r -f $TEMPLATE_NAME/modules/l1/target && \
cd $TEMPLATE_NAME && \
sbt currencyL1/assembly && \
cd .. && \
mv $TEMPLATE_NAME/modules/l1/target/scala-2.13/*.jar currency-l1/currency-l1.jar && \
cp currency-l1/currency-l1.jar shared_jars/currency-l1.jar; \
fi

RUN if [ "$SHOULD_BUILD_DATA_L1" = "true" ]; then \
mkdir data-l1; \
cp cl-wallet.jar data-l1/cl-wallet.jar; \
cp cl-keytool.jar data-l1/cl-keytool.jar; \
rm -r -f $TEMPLATE_NAME/modules/data_l1/target; \
cd $TEMPLATE_NAME; \
sbt dataL1/assembly; \
cd ..; \
mv $TEMPLATE_NAME/modules/data_l1/target/scala-2.13/*.jar data-l1/data-l1.jar; \
RUN set -e; \
if [ "$SHOULD_BUILD_DATA_L1" = "true" ]; then \
mkdir data-l1 && \
cp cl-wallet.jar data-l1/cl-wallet.jar && \
cp cl-keytool.jar data-l1/cl-keytool.jar && \
rm -r -f $TEMPLATE_NAME/modules/data_l1/target && \
cd $TEMPLATE_NAME && \
sbt dataL1/assembly && \
cd .. && \
mv $TEMPLATE_NAME/modules/data_l1/target/scala-2.13/*.jar data-l1/data-l1.jar && \
cp data-l1/data-l1.jar shared_jars/data-l1.jar; \
fi

Expand All @@ -80,6 +84,6 @@ RUN rm -r -f cl-keytool.jar && \
rm -r -f global-genesis.csv && \
rm -r -f metagraph-genesis.csv && \
rm -r -f tessellation && \
rm -r -f $TEMPLATE_NAME
CMD ["sh", "-c", "while true; do sleep 86400; done"]
rm -r -f $TEMPLATE_NAME

CMD ["sh", "-c", "while true; do sleep 86400; done"]
1 change: 0 additions & 1 deletion infra/docker/metagraph-base-image/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
version: '3'
services:
metagraph-base-image:
platform: linux/amd64
image: "metagraph-base-image"
build:
context: ../../../source
Expand Down
5 changes: 3 additions & 2 deletions infra/docker/metagraph-ubuntu/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
FROM --platform=linux/amd64 ubuntu:20.04
FROM ubuntu:20.04

WORKDIR "/code"

ARG GIT_PERSONAL_ACCESS_TOKEN
ARG TESSELLATION_VERSION
ARG TESSELLATION_VERSION_SEMVER
ARG CHECKOUT_TESSELLATION_VERSION
ARG SHOULD_USE_UPDATED_MODULES

Expand All @@ -27,7 +28,7 @@ RUN git clone https://github.com/Constellation-Labs/tessellation.git && \
cd tessellation && \
git checkout $CHECKOUT_TESSELLATION_VERSION && \
rm -r version.sbt && \
echo "ThisBuild / version := \"$TESSELLATION_VERSION\"" > version.sbt
echo "ThisBuild / version := \"$TESSELLATION_VERSION_SEMVER\"" > version.sbt

RUN cd tessellation && \
if [ "$SHOULD_USE_UPDATED_MODULES" = "true" ]; then \
Expand Down
3 changes: 1 addition & 2 deletions infra/docker/metagraph-ubuntu/docker-compose.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
version: '3'
services:
metagraph-ubuntu:
platform: linux/amd64
build: .
image: "metagraph-ubuntu-${TESSELLATION_VERSION}"
image: "metagraph-ubuntu-${TESSELLATION_VERSION_NAME}"
8 changes: 8 additions & 0 deletions scripts/hydra
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,7 @@ function build() {

set_docker_compose
check_if_docker_is_running
check_git_ref_exists $TESSELLATION_VERSION

build_containers

Expand Down Expand Up @@ -423,6 +424,13 @@ function check_if_should_run_update() {
load_scripts
run_migrations
fi

local ref_type=$(jq -r '.ref_type // empty' "$ROOT_PATH/euclid.json")
if [ -z "$ref_type" ]; then
echo "$(tput setaf 3) Could not find the ref_type field on euclid.json file, the file is probably outdated. Running migrations..."
load_scripts
run_migrations
fi
}

function check_if_the_container_is_running() {
Expand Down
12 changes: 8 additions & 4 deletions scripts/hydra-operations/build.sh
Original file line number Diff line number Diff line change
@@ -1,28 +1,32 @@
#!/usr/bin/env bash

function build_metagraph_ubuntu() {
if [[ -z "$(docker images -q metagraph-ubuntu-${TESSELLATION_VERSION})" ]]; then
if [[ -z "$(docker images -q metagraph-ubuntu-${TESSELLATION_VERSION_NAME})" ]]; then
echo
echo
echo_white "Building metagraph ubuntu for tessellation $TESSELLATION_VERSION"
echo_white "Building metagraph ubuntu for tessellation $TESSELLATION_VERSION in image name metagraph-ubuntu-$TESSELLATION_VERSION_NAME"
cd $INFRA_PATH/docker/metagraph-ubuntu

CHECKOUT_TESSELLATION_VERSION=$(get_checkout_tessellation_version "$TESSELLATION_VERSION")
SHOULD_USE_UPDATED_MODULES=$(get_should_use_updated_modules "$TESSELLATION_VERSION")

if [ ! -z "$argc_no_cache" ]; then
$DOCKER_COMPOSE build \
--build-arg GIT_PERSONAL_ACCESS_TOKEN=$GITHUB_TOKEN \
--build-arg TESSELLATION_VERSION=$TESSELLATION_VERSION \
--build-arg TESSELLATION_VERSION_SEMVER=$TESSELLATION_VERSION_SEMVER \
--build-arg CHECKOUT_TESSELLATION_VERSION=$CHECKOUT_TESSELLATION_VERSION \
--build-arg SHOULD_USE_UPDATED_MODULES=$SHOULD_USE_UPDATED_MODULES \
--no-cache
else
$DOCKER_COMPOSE build \
--build-arg GIT_PERSONAL_ACCESS_TOKEN=$GITHUB_TOKEN \
--build-arg TESSELLATION_VERSION=$TESSELLATION_VERSION \
--build-arg TESSELLATION_VERSION_SEMVER=$TESSELLATION_VERSION_SEMVER \
--build-arg CHECKOUT_TESSELLATION_VERSION=$CHECKOUT_TESSELLATION_VERSION \
--build-arg SHOULD_USE_UPDATED_MODULES=$SHOULD_USE_UPDATED_MODULES
fi

echo_green "Ubuntu for tessellation $TESSELLATION_VERSION built"
else
echo_green "Ubuntu for tessellation $TESSELLATION_VERSION already built, skipping..."
Expand Down Expand Up @@ -78,7 +82,7 @@ function build_metagraph_base_image() {

if [ ! -z "$argc_no_cache" ]; then
$DOCKER_COMPOSE build \
--build-arg TESSELLATION_VERSION=$TESSELLATION_VERSION \
--build-arg TESSELLATION_VERSION_NAME=$TESSELLATION_VERSION_NAME \
--build-arg TEMPLATE_NAME=$PROJECT_NAME \
--build-arg SHOULD_BUILD_GLOBAL_L0=$should_build_global_l0 \
--build-arg SHOULD_BUILD_DAG_L1=$should_build_dag_l1 \
Expand All @@ -88,7 +92,7 @@ function build_metagraph_base_image() {
--no-cache
else
$DOCKER_COMPOSE build \
--build-arg TESSELLATION_VERSION=$TESSELLATION_VERSION \
--build-arg TESSELLATION_VERSION_NAME=$TESSELLATION_VERSION_NAME \
--build-arg TEMPLATE_NAME=$PROJECT_NAME \
--build-arg SHOULD_BUILD_GLOBAL_L0=$should_build_global_l0 \
--build-arg SHOULD_BUILD_DAG_L1=$should_build_dag_l1 \
Expand Down
4 changes: 2 additions & 2 deletions scripts/hydra-operations/destroy.sh
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ function destroy_containers() {

echo_white "Trying to destroy container grafana ..."
if docker inspect grafana &>/dev/null; then
docker rm -f $name
docker rm -f grafana
echo_green "Container grafana removed successfully."
else
echo_yellow "Container grafana does not exist."
Expand All @@ -29,7 +29,7 @@ function destroy_containers() {

echo_white "Trying to destroy container prometheus ..."
if docker inspect prometheus &>/dev/null; then
docker rm -f $name
docker rm -f prometheus
echo_green "Container prometheus removed successfully."
else
echo_yellow "Container prometheus does not exist."
Expand Down
6 changes: 6 additions & 0 deletions scripts/hydra-operations/start.sh
Original file line number Diff line number Diff line change
Expand Up @@ -184,6 +184,12 @@ function print_nodes_information() {
((index++))
done < <(jq -c '.[]' <<<"$NODES")

if [[ "$START_GRAFANA_CONTAINER" == "true" ]]; then
echo_green "Telemetry"
echo_url "Grafana:" "http://localhost:3000"
echo
fi

echo_green "Clusters URLs"
if [[ " ${LAYERS[*]} " =~ "global-l0" ]]; then
raw_port=$(yq eval '.base_global_l0_public_port' $ansible_vars_path)
Expand Down
9 changes: 9 additions & 0 deletions scripts/migrations/migrations.sh
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,15 @@ function run_migrations() {
jq --arg current_version "$current_version" '.version = $current_version' $ROOT_PATH/euclid.json > $ROOT_PATH/temp.json && mv $ROOT_PATH/temp.json $ROOT_PATH/euclid.json
fi

if version_greater_than "0.12.0" $CURRENT_VERSION_WITHOUT_V; then
echo "Running migration v0.12.0"
cd $SCRIPTS_PATH
source ./migrations/v0.12.0.sh
migrate_v_0_12_0
current_version="0.12.0"
jq --arg current_version "$current_version" '.version = $current_version' $ROOT_PATH/euclid.json > $ROOT_PATH/temp.json && mv $ROOT_PATH/temp.json $ROOT_PATH/euclid.json
fi

echo "migrations finished..."
echo
}
8 changes: 8 additions & 0 deletions scripts/migrations/v0.12.0.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
function migrate_v_0_12_0() {
jq '.version = "0.12.0" |
. + {
"ref_type": "tag"
}' "$ROOT_PATH/euclid.json" > "$ROOT_PATH/temp.json" && mv "$ROOT_PATH/temp.json" "$ROOT_PATH/euclid.json"

echo_green "v0.12.0 Updated"
}
37 changes: 34 additions & 3 deletions scripts/utils/get-information.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,16 +7,22 @@ function get_env_variables_from_json_config_file() {

export GITHUB_TOKEN=$(jq -r .github_token $ROOT_PATH/euclid.json)
export METAGRAPH_ID=$(jq -r .metagraph_id $ROOT_PATH/euclid.json)

export TESSELLATION_VERSION=$(jq -r .tessellation_version $ROOT_PATH/euclid.json)
export TESSELLATION_VERSION_IS_TAG_OR_BRANCH=$(jq -r .ref_type $ROOT_PATH/euclid.json)
export TESSELLATION_VERSION_NAME=$(get_tessellation_version_name $TESSELLATION_VERSION)
export TESSELLATION_VERSION_SEMVER=$(get_tessellation_version_semver $TESSELLATION_VERSION)

export TEMPLATE_VERSION=$(jq -r .framework.version $ROOT_PATH/euclid.json)
export TEMPLATE_VERSION_IS_TAG_OR_BRANCH=$(jq -r .framework.ref_type $ROOT_PATH/euclid.json)

export PROJECT_NAME=$(jq -r .project_name $ROOT_PATH/euclid.json)
export FRAMEWORK_NAME=$(jq -r .framework.name $ROOT_PATH/euclid.json)
export FRAMEWORK_MODULES=$(jq -r .framework.modules $ROOT_PATH/euclid.json)

export NODES=$(jq -r .nodes $ROOT_PATH/euclid.json)
export START_GRAFANA_CONTAINER=$(jq -r .docker.start_grafana_container $ROOT_PATH/euclid.json)

export START_GRAFANA_CONTAINER=$(jq -r .docker.start_grafana_container $ROOT_PATH/euclid.json)

export LAYERS=$(jq -r .layers $ROOT_PATH/euclid.json)

Expand Down Expand Up @@ -48,6 +54,31 @@ function get_env_variables_from_json_config_file() {
export OUTPUT_WHITE=$(tput setaf 7)
}

function get_tessellation_version_name() {
local input="$1"
if [[ "$TESSELLATION_VERSION_IS_TAG_OR_BRANCH" == "branch" ]]; then
# Remove special characters
local cleaned=$(echo "$input" | tr -cd '[:alnum:][:space:]')
# Convert to lowercase
cleaned=$(echo "$cleaned" | tr '[:upper:]' '[:lower:]')
# Replace spaces with underscores
cleaned=$(echo "$cleaned" | tr ' ' '_')
echo "$cleaned"
else
echo "$input"
fi
}

function get_tessellation_version_semver() {
local input="$1"
if [[ "$TESSELLATION_VERSION_IS_TAG_OR_BRANCH" == "branch" ]]; then
#Mocked version when it's a branch
echo "99.99.99"
else
echo "$input"
fi
}

function get_metagraph_id_from_metagraph_l0_genesis() {
for ((i = 1; i <= 51; i++)); do
METAGRAPH_ID=$(cat $SOURCE_PATH/metagraph-l0/genesis/genesis.address)
Expand All @@ -62,7 +93,7 @@ function get_metagraph_id_from_metagraph_l0_genesis() {
echo_url "METAGRAPH_ID: " $METAGRAPH_ID
echo_white "Filling the euclid.json file"
contents="$(jq --arg METAGRAPH_ID "$METAGRAPH_ID" '.metagraph_id = $METAGRAPH_ID' $ROOT_PATH/euclid.json)" &&
echo -E "${contents}" > $ROOT_PATH/euclid.json
echo -E "${contents}" >$ROOT_PATH/euclid.json

get_env_variables_from_json_config_file
break
Expand Down
Loading

0 comments on commit 8a57b79

Please sign in to comment.