go-ethereum/cicd/devnet
2024-07-30 15:20:54 -07:00
..
terraform scale down devnet from 73 to 62 (#582) 2024-07-30 15:20:54 -07:00
bootnodes.list add devnet bootnodes (#279) 2023-06-11 13:39:51 +10:00
genesis.json CI CD pieple to publish devnet image to AWS ECR 2022-09-03 20:44:28 +08:00
README.md build universe docker image (#309) 2023-08-10 15:37:23 +10:00
start-local-devnet.sh remove admin for rpc and running node 2024-06-06 20:44:22 +08:00
start.sh remove admin for rpc and running node 2024-06-06 20:44:22 +08:00

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.