mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-25 15:55:18 +00:00
80 lines
3.2 KiB
YAML
80 lines
3.2 KiB
YAML
name: Continuous Deployment (Internal Testnet)
|
|
# run after every successful CI job of new commits to the master branch
|
|
# if deploy version or config has changed
|
|
on:
|
|
workflow_run:
|
|
workflows: [Continuous Integration (Kava Master)]
|
|
types:
|
|
- completed
|
|
|
|
jobs:
|
|
changed_files:
|
|
runs-on: ubuntu-latest
|
|
# define output for first job forwarding output of changedInternalTestnetConfig job
|
|
outputs:
|
|
changedInternalTestnetConfig: ${{ steps.changed-internal-testnet-config.outputs.any_changed }}
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
fetch-depth: 0 # OR "2" -> To retrieve the preceding commit.
|
|
- name: Get all changed internal testnet files
|
|
id: changed-internal-testnet-config
|
|
uses: tj-actions/changed-files@v42
|
|
with:
|
|
# Avoid using single or double quotes for multiline patterns
|
|
files: |
|
|
ci/env/kava-internal-testnet/**
|
|
|
|
# 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:
|
|
needs: [changed_files]
|
|
# only start cd pipeline if last ci run was successful
|
|
if: ${{ github.event.workflow_run.conclusion == 'success' && needs.changed_files.outputs.changedInternalTestnetConfig == 'true' }}
|
|
uses: ./.github/workflows/cd-reset-internal-testnet.yml
|
|
with:
|
|
aws-region: us-east-1
|
|
chain-id: kava_2221-17000
|
|
ssm-document-name: kava-testnet-internal-node-update
|
|
playbook-name: reset-internal-testnet-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: kava_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.internal.testnet.us-east.production.kava.io:443
|
|
chain-id: kava_2221-17000
|
|
seed-script-filename: seed-internal-testnet.sh
|
|
erc20-deployer-network-name: internal_testnet
|
|
genesis_validator_addresses: "kavavaloper1xcgtffvv2yeqmgs3yz4gv29kgjrj8usxrnrlwp kavavaloper1w66m9hdzwgd6uc8g93zqkcumgwzrpcw958sh3s"
|
|
kava_version_filepath: ./ci/env/kava-internal-testnet/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.internal
|
|
namespace: Kava/ContinuousDeployment
|
|
secrets: inherit
|
|
needs: [seed-chain-state]
|