Continuous Deployment (Protonet) #163
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: Continuous Deployment (Protonet) | |
# run after every successful CI job of new commits to the master branch | |
on: | |
workflow_run: | |
workflows: [Continuous Integration (Kava Master)] | |
types: | |
- completed | |
jobs: | |
# in order: | |
# enter standby (prevents autoscaling group from killing node during deploy) | |
# stop kava | |
# take ebs + zfs snapshots | |
# download updated binary and genesis | |
# reset application database state (only done on internal testnet) | |
reset-chain-to-zero-state: | |
# only start cd pipeline if last ci run was successful | |
if: ${{ github.event.workflow_run.conclusion == 'success' }} | |
uses: ./.github/workflows/cd-reset-internal-testnet.yml | |
with: | |
aws-region: us-east-1 | |
chain-id: proto_2221-17000 | |
ssm-document-name: kava-testnet-internal-node-update | |
playbook-name: reset-protonet-playbook.yml | |
playbook-infrastructure-branch: master | |
secrets: inherit | |
# start kava with new binary and genesis state on api, peer and seed nodes, place nodes in service once they start and are synched to live | |
start-chain-api: | |
uses: ./.github/workflows/cd-start-chain.yml | |
with: | |
aws-region: us-east-1 | |
chain-id: proto_2221-17000 | |
ssm-document-name: kava-testnet-internal-node-update | |
playbook-name: start-chain-api-playbook.yml | |
playbook-infrastructure-branch: master | |
secrets: inherit | |
needs: [reset-chain-to-zero-state] | |
# setup test and development accounts and balances, deploy contracts by calling the chain's api | |
seed-chain-state: | |
uses: ./.github/workflows/cd-seed-chain.yml | |
with: | |
chain-api-url: https://rpc.app.protonet.us-east.production.kava.io:443 | |
chain-id: proto_2221-17000 | |
seed-script-filename: seed-protonet.sh | |
erc20-deployer-network-name: protonet | |
genesis_validator_addresses: "kavavaloper14w4avgdvqrlpww6l5dhgj4egfn6ln7gmtp7r2m" | |
kava_version_filepath: ./ci/env/kava-protonet/KAVA.VERSION | |
secrets: inherit | |
needs: [start-chain-api] | |
post-pipeline-metrics: | |
uses: ./.github/workflows/metric-pipeline.yml | |
if: always() # always run so we metric failures and successes | |
with: | |
aws-region: us-east-1 | |
metric-name: kava.deploys.testnet.proto | |
namespace: Kava/ContinuousDeployment | |
secrets: inherit | |
needs: [seed-chain-state] |