go-ethereum/cicd/devnet
anunay-xin 9579593438
fix(constants): update Devnet chain ID and block parameters for devnet-108 setup (#2205)
* fix(constants): update Devnet chain ID and block parameters for devnet-108 setup

* refactor(ci): update masternode deployment logic to skip specifically masternode-1 to masternode-25

* ci: update Slack webhook variable names for pull request notifications

* ci: correct format for masternodeN

* ci: enhance start script to handle bootnodes and miner gas limit configuration in new devnet

* ci: update start script to set default netstats configuration and change network ID for devnet
2026-03-21 17:22:44 +05:30
..
bootnodes.list update bootnodes 2025-01-24 15:48:03 +04:00
genesis.json fix(all): fix typo foudation (#2063) 2026-02-28 18:00:55 +04:00
README.md build universe docker image (#309) 2023-08-10 15:37:23 +10:00
start-local-devnet.sh fix typo and local script 2024-12-03 02:29:40 +04:00
start.sh fix(constants): update Devnet chain ID and block parameters for devnet-108 setup (#2205) 2026-03-21 17:22:44 +05:30

CI/CD pipeline for XDC

This directory contains CI/CD scripts used for each of the XDC environments.

How to deploy more nodes

Adjust the number of variable num_of_nodes under file .env. (Maximum supported is 58)

Devnet

Each PR merged into dev-upgrade will trigger below actions:

First time set up an new environment

  1. Pre-generate a list of node private keys in below format
{
  "xdc0": {
    "pk": {{PRIVATE KEY}},
    "address": {{XDC wallet address}},
    "imageTag": {{Optional field to run different version of XDC}},
    "logLevel": {{Optional field to adjust the log level for the container}}
  },
  "xdc1": {...},
  "xdc{{NUMBER}}: {...}
}
  1. Access to aws console, create a bucket with name tf-devnet-bucket:
  • You can choose any name, just make sure update the name in the s3 bucket name variable in variables.tf
  • And update the name of the terraform.backend.s3.bucket from s3.tf
  1. Upload the file from step 1 into the above bucket with name node-config.json
  2. In order to allow pipeline able to push and deploy via ECR and ECS, we require below environment variables to be injected into the CI pipeline:
  3. DOCKER_USERNAME
  4. DOCKER_PASSWORD
  5. AWS_ACCESS_KEY_ID
  6. AWS_SECRET_ACCESS_KEY

You are all set!

How to run different version of XDC on selected nodes

  1. Create a new image tag:
  • Check out the repo
  • Run docker build docker build -t xdc-devnet -f cicd/devnet/Dockerfile .
  • Run docker tag docker tag xdc-devnet:latest xinfinorg/devnet:test-{{put your version number here}}
  • Run docker push docker push xinfinorg/devnet:test-{{Version number from step above}}
  1. Adjust node-config.json
  • Download the node-config.json from s3
  • Add/update the imageTag field with value of test-{{version number you defined in step 1}} for the selected number of nodes you want to test with
  • Optional: Adjust the log level by add/updating the field of logLevel
  • Save and upload to s3
  1. Make a dummy PR and get merged. Wait it to be updated.