Skip to content

Fixing

Fixing #11

name: Deploy testnet
on:
push:
branches:
- "deploy/testnet"
jobs:
hydra-script-tests:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Install AWS Cli
uses: unfor19/install-aws-cli-action@v1
with:
arch: amd64
- name: Install jq
shell: bash
run: |
sudo apt install -y jq
- name: Filling EC2 instances information
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_TESTNET }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_TESTNET }}
AWS_REGION: ${{ secrets.AWS_REGION_TESTNET }}
shell: bash
run: |
echo "EC2_INSTANCE_1_ID=$(aws ec2 describe-instances --filters "Name=tag:Name,Values=DOR Metagraph - 1" | jq -r ".Reservations[0].Instances[0].InstanceId")" >> $GITHUB_ENV
echo "EC2_INSTANCE_2_ID=$(aws ec2 describe-instances --filters "Name=tag:Name,Values=DOR Metagraph - 2" | jq -r ".Reservations[0].Instances[0].InstanceId")" >> $GITHUB_ENV
echo "EC2_INSTANCE_3_ID=$(aws ec2 describe-instances --filters "Name=tag:Name,Values=DOR Metagraph - 3" | jq -r ".Reservations[0].Instances[0].InstanceId")" >> $GITHUB_ENV
echo "BUCKET_NAME=dor-metagraph-jars" >> $GITHUB_ENV
- name: Validate S3 bucket
shell: bash
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_TESTNET }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_TESTNET }}
AWS_REGION: ${{ secrets.AWS_REGION_TESTNET }}
run: |
if ! aws s3 ls "s3://$BUCKET_NAME" 2>/dev/null; then
aws s3api create-bucket --bucket "$BUCKET_NAME"
echo "Bucket '$BUCKET_NAME' created successfully"
else
echo "Bucket '$BUCKET_NAME' already exists."
fi
echo "S3_FOLDER_NAME=$(date +%F_%T)" >> $GITHUB_ENV
- name: Get tessellation version to build
shell: bash
run: |
echo "TESSELLATION_VERSION=v$(cat metagraph/project/Dependencies.scala | grep -E "tessellation = \"(.*)" | grep -o "\".*\"" | grep -Eo "[^\"]*")" >> $GITHUB_ENV
- name: Clone and generate Tessellation dependencies
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: bash
run: |
echo "TESSELLATION_VERSION=$TESSELLATION_VERSION"
mkdir .github/dependencies
cd .github/dependencies
git clone https://github.com/Constellation-Labs/tessellation.git
cd tessellation
git checkout $TESSELLATION_VERSION
sbt --error shared/publishM2 kernel/publishM2 keytool/publishM2 sdk/publishM2 dagL1/publishM2 currencyL0/publishM2 currencyL1/publishM2
- name: Generate Metagraph JARS
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
shell: bash
run: |
cd metagraph
sbt currencyL1/assembly currencyL0/assembly dataL1/assembly
- name: Move JARS to artifact folder
shell: bash
run: |
mkdir .github/artifacts
mv metagraph/modules/l0/target/scala-2.13/dor_metagraph-currency-l0-assembly-0.1.0-SNAPSHOT.jar .github/artifacts/metagraph-l0.jar
mv metagraph/modules/data_l1/target/scala-2.13/dor_metagraph-data_l1-assembly-0.1.0-SNAPSHOT.jar .github/artifacts/data-l1.jar
mv metagraph/modules/l1/target/scala-2.13/dor_metagraph-currency-l1-assembly-0.1.0-SNAPSHOT.jar .github/artifacts/currency-l1.jar
- name: Send JARs to S3 bucket
shell: bash
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_TESTNET }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_TESTNET }}
AWS_REGION: ${{ secrets.AWS_REGION_TESTNET }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION_TESTNET }}
run: |
cd .github/artifacts
aws s3 cp metagraph-l0.jar s3://dor-metagraph-jars/$S3_FOLDER_NAME
aws s3 cp data-l1.jar s3://dor-metagraph-jars/$S3_FOLDER_NAME
aws s3 cp currency-l1.jar s3://dor-metagraph-jars/$S3_FOLDER_NAME
- name: Download UPDATED jar on instances
shell: bash
env:
AWS_ACCESS_KEY_ID: ${{ secrets.AWS_ACCESS_KEY_ID_TESTNET }}
AWS_SECRET_ACCESS_KEY: ${{ secrets.AWS_SECRET_ACCESS_KEY_TESTNET }}
AWS_REGION: ${{ secrets.AWS_REGION_TESTNET }}
AWS_DEFAULT_REGION: ${{ secrets.AWS_REGION_TESTNET }}
run: |
aws ssm send-command --instance-id $EC2_INSTANCE_1_ID --document-name "AWS-RunShellScript" --parameters '{"commands":["aws s3 cp s3://dor-metagraph-jars/$S3_FOLDER_NAME/metagraph-l0.jar /home/ubuntu/code/"]}'