From ff75f0f22e2f762d4dac13bf300d1f717858e62e Mon Sep 17 00:00:00 2001 From: Jerome Date: Sun, 25 Dec 2022 22:07:50 +1100 Subject: [PATCH] Allow deploy with different version of XDC on devnet (#218) --- cicd/README.md | 26 ++++++++++++------- .../devnet/terraform/container-definition.tpl | 2 +- cicd/devnet/terraform/ecs.tf | 3 ++- 3 files changed, 19 insertions(+), 12 deletions(-) diff --git a/cicd/README.md b/cicd/README.md index 68d3b362ac..a005b923f1 100644 --- a/cicd/README.md +++ b/cicd/README.md @@ -17,7 +17,10 @@ Each PR merged into `dev-upgrade` will trigger below actions: ``` { "xdc0": { - "pk": {{PRIVATE KEY}} + "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}}: {...} @@ -35,12 +38,15 @@ Each PR merged into `dev-upgrade` will trigger below actions: You are all set! -## Testnet -*** WIP *** -Testnet release build are triggered by cutting a "pre-release" tag which matches the name of `TESTNET-{{release-version}}` from dev-upgrade or master branch. -An example can be found here: https://github.com/XinFinOrg/XDPoSChain/releases/tag/Testnet-v2.0.0 -For more information, refer to github documentation on the release: https://docs.github.com/en/repositories/releasing-projects-on-github/about-releases - -## Mainnet -*** WIP *** -Mainnet release are triggered by making a normal release tag with name starting with `v` (stands for version) from the master branch. \ No newline at end of file +## 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}}` +2. 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 +3. Make a dummy PR and get merged. Wait it to be updated. \ No newline at end of file diff --git a/cicd/devnet/terraform/container-definition.tpl b/cicd/devnet/terraform/container-definition.tpl index 7bc2bf78e3..72a5b52e50 100644 --- a/cicd/devnet/terraform/container-definition.tpl +++ b/cicd/devnet/terraform/container-definition.tpl @@ -1,7 +1,7 @@ [ { "name": "tfXdcNode", - "image": "xinfinorg/${xdc_environment}:latest", + "image": "xinfinorg/${xdc_environment}:${image_tag}", "environment": [ {"name": "PRIVATE_KEYS", "value": "${private_keys}"}, {"name": "LOG_LEVEL", "value": "${log_level}"}, diff --git a/cicd/devnet/terraform/ecs.tf b/cicd/devnet/terraform/ecs.tf index 088450512b..5452cdbc9f 100644 --- a/cicd/devnet/terraform/ecs.tf +++ b/cicd/devnet/terraform/ecs.tf @@ -4,10 +4,11 @@ data template_file devnet_container_definition { vars = { xdc_environment = "devnet" + image_tag = "${lookup(each.value, "imageTag", "latest")}" node_name = "${each.key}" private_keys = "${each.value.pk}" cloudwatch_group = "tf-${each.key}" - log_level = "${local.logLevel}" + log_level = "${lookup(each.value, "logLevel", "${local.logLevel}")}" } }