Deploy BDJuno on mainnet #6
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: gql-bdjuno | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v2 | |
# - name: Set up Docker | |
# uses: docker/setup-buildx-action@v1 | |
- 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:us-central1:sql-mainnet | |
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 echo "${{ secrets.CLOUDSQL_CREDS_JSON }}" > /opt/secrets/unformatted_cloudsqlcreds.json | |
sudo jq . /opt/secrets/unformatted_cloudsqlcreds.json > /opt/secrets/cloudsqlcreds.json | |
sudo chown -R automgmt:automgmt /opt/secrets | |
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 15 | |
- 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 }} |