mirror of
https://github.com/0glabs/0g-chain.git
synced 2024-12-25 15:55:18 +00:00
feat: add continuous deployment for protonet
This commit is contained in:
parent
7bb707b174
commit
b4e11eb8cd
6
.github/scripts/seed-internal-testnet.sh
vendored
6
.github/scripts/seed-internal-testnet.sh
vendored
@ -69,22 +69,20 @@ npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$USD_CONTRACT
|
|||||||
npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$wETH_CONTRACT_ADDRESS" "$DEV_TEST_WALLET_ADDRESS" 1000000000000000000000
|
npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$wETH_CONTRACT_ADDRESS" "$DEV_TEST_WALLET_ADDRESS" 1000000000000000000000
|
||||||
npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$AXLUSD_CONTRACT_ADDRESS" "$DEV_TEST_WALLET_ADDRESS" 100000000000
|
npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$AXLUSD_CONTRACT_ADDRESS" "$DEV_TEST_WALLET_ADDRESS" 100000000000
|
||||||
|
|
||||||
# seed webapp E2E whale account
|
# seed webapp E2E whale account
|
||||||
npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$wBTC_CONTRACT_ADDRESS" "$WEBAPP_E2E_WHALE_ADDRESS" 100000000000000
|
npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$wBTC_CONTRACT_ADDRESS" "$WEBAPP_E2E_WHALE_ADDRESS" 100000000000000
|
||||||
npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$USD_CONTRACT_ADDRESS" "$WEBAPP_E2E_WHALE_ADDRESS" 1000000000000
|
npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$USD_CONTRACT_ADDRESS" "$WEBAPP_E2E_WHALE_ADDRESS" 1000000000000
|
||||||
npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$wETH_CONTRACT_ADDRESS" "$WEBAPP_E2E_WHALE_ADDRESS" 10000000000000000000000
|
npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$wETH_CONTRACT_ADDRESS" "$WEBAPP_E2E_WHALE_ADDRESS" 10000000000000000000000
|
||||||
npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$AXLUSD_CONTRACT_ADDRESS" "$WEBAPP_E2E_WHALE_ADDRESS" 10000000000000
|
npx hardhat --network "${ERC20_DEPLOYER_NETWORK_NAME}" mint-erc20 "$AXLUSD_CONTRACT_ADDRESS" "$WEBAPP_E2E_WHALE_ADDRESS" 10000000000000
|
||||||
|
|
||||||
# give dev-wallet enough delegation power to pass proposals by itself
|
# give dev-wallet enough delegation power to pass proposals by itself
|
||||||
# enumerate all genesis validators
|
|
||||||
GENTX_VALIDATORS=("kavavaloper1xcgtffvv2yeqmgs3yz4gv29kgjrj8usxrnrlwp" "kavavaloper1w66m9hdzwgd6uc8g93zqkcumgwzrpcw958sh3s")
|
|
||||||
|
|
||||||
# issue 300KAVA to delegate to each validator
|
# issue 300KAVA to delegate to each validator
|
||||||
kava tx issuance issue 600000000ukava kava1vlpsrmdyuywvaqrv7rx6xga224sqfwz3fyfhwq \
|
kava tx issuance issue 600000000ukava kava1vlpsrmdyuywvaqrv7rx6xga224sqfwz3fyfhwq \
|
||||||
--from dev-wallet --gas-prices 0.5ukava -y
|
--from dev-wallet --gas-prices 0.5ukava -y
|
||||||
|
|
||||||
# delegate 300KAVA to each validator
|
# delegate 300KAVA to each validator
|
||||||
for validator in "${GENTX_VALIDATORS[@]}"
|
for validator in "${GENESIS_VALIDATOR_ADDRESSES[@]}"
|
||||||
do
|
do
|
||||||
kava tx staking delegate "${validator}" 300000000ukava --from dev-wallet --gas-prices 0.5ukava -y
|
kava tx staking delegate "${validator}" 300000000ukava --from dev-wallet --gas-prices 0.5ukava -y
|
||||||
done
|
done
|
||||||
|
1
.github/workflows/cd-internal-testnet.yml
vendored
1
.github/workflows/cd-internal-testnet.yml
vendored
@ -45,6 +45,7 @@ jobs:
|
|||||||
chain-id: kava_2221-17000
|
chain-id: kava_2221-17000
|
||||||
seed-script-filename: seed-internal-testnet.sh
|
seed-script-filename: seed-internal-testnet.sh
|
||||||
erc20-deployer-network-name: internal_testnet
|
erc20-deployer-network-name: internal_testnet
|
||||||
|
genesis_validator_addresses: "kavavaloper1xcgtffvv2yeqmgs3yz4gv29kgjrj8usxrnrlwp kavavaloper1w66m9hdzwgd6uc8g93zqkcumgwzrpcw958sh3s"
|
||||||
secrets: inherit
|
secrets: inherit
|
||||||
needs: [start-chain-api]
|
needs: [start-chain-api]
|
||||||
post-pipeline-metrics:
|
post-pipeline-metrics:
|
||||||
|
59
.github/workflows/cd-protonet.yml
vendored
Normal file
59
.github/workflows/cd-protonet.yml
vendored
Normal file
@ -0,0 +1,59 @@
|
|||||||
|
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-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: 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-internal-testnet.sh
|
||||||
|
erc20-deployer-network-name: protonet
|
||||||
|
genesis_validator_addresses: "kavavaloper14w4avgdvqrlpww6l5dhgj4egfn6ln7gmtp7r2m"
|
||||||
|
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]
|
4
.github/workflows/cd-seed-chain.yml
vendored
4
.github/workflows/cd-seed-chain.yml
vendored
@ -15,6 +15,9 @@ on:
|
|||||||
erc20-deployer-network-name:
|
erc20-deployer-network-name:
|
||||||
required: true
|
required: true
|
||||||
type: string
|
type: string
|
||||||
|
genesis_validator_addresses:
|
||||||
|
required: true
|
||||||
|
type: string
|
||||||
secrets:
|
secrets:
|
||||||
DEV_WALLET_MNEMONIC:
|
DEV_WALLET_MNEMONIC:
|
||||||
required: true
|
required: true
|
||||||
@ -71,3 +74,4 @@ jobs:
|
|||||||
DEV_WALLET_MNEMONIC: ${{ secrets.DEV_WALLET_MNEMONIC }}
|
DEV_WALLET_MNEMONIC: ${{ secrets.DEV_WALLET_MNEMONIC }}
|
||||||
SEED_SCRIPT_FILENAME: ${{ inputs.seed-script-filename }}
|
SEED_SCRIPT_FILENAME: ${{ inputs.seed-script-filename }}
|
||||||
ERC20_DEPLOYER_NETWORK_NAME: ${{ inputs.erc20-deployer-network-name }}
|
ERC20_DEPLOYER_NETWORK_NAME: ${{ inputs.erc20-deployer-network-name }}
|
||||||
|
GENESIS_VALIDATOR_ADDRESSES: ${{ inputs.genesis_validator_addresses }}
|
||||||
|
2
.github/workflows/ci-default.yml
vendored
2
.github/workflows/ci-default.yml
vendored
@ -48,3 +48,5 @@ jobs:
|
|||||||
run: make install
|
run: make install
|
||||||
- name: validate testnet genesis
|
- name: validate testnet genesis
|
||||||
run: kava validate-genesis ci/env/kava-internal-testnet/genesis.json
|
run: kava validate-genesis ci/env/kava-internal-testnet/genesis.json
|
||||||
|
- name: validate protonet genesis
|
||||||
|
run: kava validate-genesis ci/env/kava-protonet/genesis.json
|
||||||
|
Loading…
Reference in New Issue
Block a user