Deploy BDJuno on mainnet #18
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Deploy BDJuno on mainnet | |
#on: | |
# push: | |
# branches: | |
# - main | |
on: | |
workflow_dispatch: | |
jobs: | |
deploy: | |
runs-on: cudos-explorer | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
- name: Install and start Docker | |
run: | | |
sudo apt install -y docker.io | |
sudo systemctl start docker | |
sudo systemctl enable docker | |
sudo usermod -aG docker $USER | |
#- name: Set up Docker | |
# uses: docker/setup-buildx-action@v1 | |
- name: Set up Docker Buildx | |
run: | | |
sudo /usr/bin/docker buildx create --name builder --use | |
sudo /usr/bin/docker buildx inspect --bootstrap | |
- name: Stop and remove any existing containers | |
run: | | |
sudo docker stop cudos-bdjuno-hasura-1 || true | |
sudo docker rm cudos-bdjuno-hasura-1 || true | |
sudo docker stop cudos-bdjuno-bdjuno-1 || true | |
sudo docker rm cudos-bdjuno-bdjuno-1 || true | |
sudo docker stop cudos-bdjuno-hasura-actions-1 || true | |
sudo docker rm cudos-bdjuno-hasura-actions-1 || true | |
sudo docker stop cloudsql-proxy || true | |
sudo docker rm cloudsql-proxy || true | |
- name: Create bdjuno directory and download genesis file | |
run: | | |
mkdir bdjuno | |
wget https://github.com/cudoventures/cudos-builders/blob/cudos-master/docker/config/genesis.mainnet.json | |
mv genesis.mainnet.json bdjuno/genesis.json | |
chmod 644 bdjuno/genesis.json | |
- name: Setup bdjuno config file | |
run: | | |
cat << EOF > bdjuno/config.yaml | |
chain: | |
bech32_prefix: cudos | |
modules: | |
- modules | |
- messages | |
- auth | |
- bank | |
- consensus | |
- gov | |
- slashing | |
- staking | |
- distribution | |
- pricefeed | |
- cosmwasm | |
- gravity | |
- cudomint | |
- nft | |
- group | |
- cw20token | |
- marketplace | |
node: | |
type: remote | |
config: | |
rpc: | |
client_name: cudos-network | |
address: http://archive.hosts.cudos.org:26657 | |
max_connections: 20 | |
grpc: | |
address: http://archive.hosts.cudos.org:9090 | |
insecure: true | |
parsing: | |
workers: 5 | |
listen_new_blocks: true | |
parse_old_blocks: false | |
parse_genesis: true | |
start_height: 1 | |
fast_sync: false | |
genesis_file_path: /usr/local/bdjuno/bdjuno/genesis.json | |
database: | |
name: ${{ secrets.POSTGRES_DB }} | |
host: host.docker.internal | |
port: 5432 | |
user: ${{ secrets.POSTGRES_USER }} | |
password: ${{ secrets.POSTGRES_PASSWORD }} | |
schema: public | |
max_open_connections: 10 | |
max_idle_connections: 10 | |
logging: | |
level: debug | |
format: json | |
telemetry: | |
port: 5000 | |
pricefeed: | |
tokens: | |
- name: Cudos | |
units: | |
- denom: cudos | |
exponent: 0 | |
price_id: cudos | |
distribution: | |
rewards_frequency: 1000 | |
workers: | |
- name: fix_blocks_worker | |
interval: 60m | |
- name: migrate_nfts_worker | |
interval: 120m | |
- name: blocks_monitoring_worker | |
interval: 30s | |
cudomint: | |
stats_service_url: https://stats.cudos.org | |
crypto-compare: | |
crypto_compare_prod_api_key: ${{ secrets.CRYPTO_COMPARE_PROD_API_KEY }} | |
crypto_compare_free_api_key: ${{ secrets.CRYPTO_COMPARE_FREE_API_KEY }} | |
EOF | |
chmod 644 bdjuno/config.yaml | |
cat bdjuno/config.yaml | |
- name: Setup .env for Hasura | |
run: | | |
cat << EOF > .env | |
HASURA_GRAPHQL_DATABASE_URL=postgres://${{ secrets.POSTGRES_USER }}:${{ secrets.POSTGRES_PASSWORD }}@host.docker.internal:5432/${{ secrets.POSTGRES_DB }} | |
HASURA_GRAPHQL_ENABLE_CONSOLE="true" | |
HASURA_GRAPHQL_DEV_MODE="false" | |
HASURA_GRAPHQL_ENABLED_LOG_TYPES=startup, http-log, webhook-log, websocket-log, query-log | |
HASURA_GRAPHQL_ADMIN_SECRET=${{ secrets.HASURA_GRAPHQL_ADMIN_SECRET }} | |
HASURA_GRAPHQL_ENDPOINT_URL=${{ secrets.HASURA_GRAPHQL_ENDPOINT_URL }} | |
HASURA_GRAPHQL_UNAUTHORIZED_ROLE="anonymous" | |
HASURA_ACTIONS_GRPC="http://archive.hosts.cudos.org:9090" | |
HASURA_ACTIONS_RPC="http://archive.hosts.cudos.org:26657" | |
HASURA_ACTIONS_PORT=4000 | |
GCLOUD_INSTANCE_CONNECTION_NAME=cudos-mainnet-infra:europe-west2:cudos-mainnet-sql | |
CRYPTO_COMPARE_PROD_API_KEY="${{ secrets.CRYPTO_COMPARE_PROD_API_KEY }}" | |
CRYPTO_COMPARE_FREE_API_KEY="${{ secrets.CRYPTO_COMPARE_FREE_API_KEY }}" | |
LOGGING_DRIVER=gcplogs | |
EOF | |
chmod 644 .env | |
cat .env | |
- name: Setup Hasura config file | |
run: | | |
cat << EOF > hasura/config.yaml | |
version: 3 | |
endpoint: http://localhost:8080 | |
api_paths: | |
v1_query: v1/query | |
v2_query: v2/query | |
v1_metadata: v1/metadata | |
graphql: v1/graphql | |
config: v1alpha1/config | |
pg_dump: v1alpha1/pg_dump | |
version: v1/version | |
metadata_directory: metadata | |
migrations_directory: migrations | |
seeds_directory: seeds | |
actions: | |
kind: synchronous | |
handler_webhook_baseurl: http://localhost:4000 | |
codegen: | |
framework: "" | |
output_dir: "" | |
EOF | |
chmod 644 hasura/config.yaml | |
cat hasura/config.yaml | |
- name: Prepare container access | |
run: | | |
sudo mkdir -p /opt/secrets | |
sudo chown -R automgmt:automgmt /opt/secrets | |
sudo echo "${{ secrets.CLOUDSQL_CREDS_JSON }}" | base64 -d > /opt/secrets/cloudsqlcreds.json | |
#gcloud auth activate-service-account --key-file=/opt/secrets/cloudsqlcreds.json | |
#gcloud auth configure-docker | |
sudo docker pull gcr.io/cloudsql-docker/gce-proxy:1.33.15 | |
- name: Deploy with Docker Compose | |
run: | | |
sudo docker compose --file=docker-compose-prod.yml up --build -d | |
sleep 30 | |
- name: Apply Hasura metadata | |
run: | | |
cd hasura | |
curl -L https://github.com/hasura/graphql-engine/raw/stable/cli/get.sh | bash | |
hasura metadata apply --endpoint ${{ secrets.HASURA_GRAPHQL_ENDPOINT_URL }} --admin-secret ${{ secrets.HASURA_GRAPHQL_ADMIN_SECRET }} |