From 869ec433c4eeae3912a7558fda05c6ea9720cfc9 Mon Sep 17 00:00:00 2001 From: Nikolay Atanasow Date: Thu, 16 May 2024 14:10:32 +0300 Subject: [PATCH] test: ci migration testing (#733) * chore: test migration Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: add debug Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * Update migration-testing.yml Signed-off-by: Iliya Savov <117984128+isavov@users.noreply.github.com> * chore: fix pipeline Signed-off-by: Iliya Savov * chore: increase freeze wait Signed-off-by: Iliya Savov * chore: cleanup Signed-off-by: Iliya Savov * chore: increase freeze wait Signed-off-by: Iliya Savov * chore: tune freeze wait time Signed-off-by: Iliya Savov * chore: tuning Signed-off-by: Iliya Savov * fix: rework detached execution Signed-off-by: Iliya Savov * chore: test Signed-off-by: nikolay * chore: reset test-workflow.yml Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: cleanup Signed-off-by: Iliya Savov * fix: typo Signed-off-by: Iliya Savov * chore: test tilde expansion Signed-off-by: Iliya Savov * chore: bump hedera local version Signed-off-by: nikolay * chore: revert package.json Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: trigger ci Signed-off-by: nikolay * chore: test Signed-off-by: nikolay * chore: test Signed-off-by: nikolay --------- Signed-off-by: nikolay Signed-off-by: Iliya Savov <117984128+isavov@users.noreply.github.com> Signed-off-by: Iliya Savov Co-authored-by: Iliya Savov <117984128+isavov@users.noreply.github.com> Co-authored-by: Iliya Savov --- .github/workflows/migration-testing.yml | 69 +++++++++++++++++++++++++ scripts/freeze-network-node.js | 2 +- 2 files changed, 70 insertions(+), 1 deletion(-) create mode 100644 .github/workflows/migration-testing.yml diff --git a/.github/workflows/migration-testing.yml b/.github/workflows/migration-testing.yml new file mode 100644 index 000000000..f083dcefb --- /dev/null +++ b/.github/workflows/migration-testing.yml @@ -0,0 +1,69 @@ +name: Migration Testing + +on: + workflow_dispatch: + pull_request: + branches: [main] + +jobs: + check: + strategy: + fail-fast: true + + name: Migration Testing + runs-on: [self-hosted, Linux, large, ephemeral] + steps: + - uses: actions/checkout@v3 + with: + submodules: recursive + + - name: Use Node.js [18.15] + uses: actions/setup-node@v3 + with: + node-version: 18.15 + cache: npm + + - name: Create .env file + run: cp local.env .env + + - name: Install dependencies + run: npm install + + - name: Upgrade @hashgraph/hedera-local to v2.25.0 + run: npm install @hashgraph/hedera-local@2.25.0 --save + + - name: Install Foundry + uses: foundry-rs/foundry-toolchain@v1 + with: + version: nightly + + - name: Start the local node with 0.48.1 + run: npx hedera start -d --full --network-tag=0.48.1 + timeout-minutes: 5 + + - name: Run @pre-migration tests + run: npx hardhat test --grep @pre-migration + timeout-minutes: 5 + + - name: Freeze the network + run: | + npx hardhat run scripts/freeze-network-node.js + sleep 30 + timeout-minutes: 5 + + - name: Stop docker containers (network node) + run: docker stop network-node + timeout-minutes: 5 + + - name: Run the local node with 0.49.7 + env: + NETWORK_NODE_IMAGE_TAG: 0.49.7 + NETWORK_NODE_LOGS_ROOT_PATH: ~/.local/share/hedera-local/network-logs/node + run: | + docker compose -f docker-compose-state-migration.yml up -d + working-directory: node_modules/@hashgraph/hedera-local/ + timeout-minutes: 5 + + - name: Run @post-migration tests + run: npx hardhat test --grep @post-migration + timeout-minutes: 5 diff --git a/scripts/freeze-network-node.js b/scripts/freeze-network-node.js index 865717b3d..7e67afe24 100644 --- a/scripts/freeze-network-node.js +++ b/scripts/freeze-network-node.js @@ -36,7 +36,7 @@ async function main() { '127.0.0.1:50211': '0.0.3', }).setOperator(OPERATOR_ID_A, OPERATOR_KEY_A); - const validStart = new Timestamp(Math.round(Date.now() / 1000), 0); // timestamp now + const validStart = new Timestamp(Math.round((Date.now() + 5000) / 1000), 0); // timestamp now + 5 sec const tx = new FreezeTransaction() .setStartTimestamp(validStart) .setFreezeType(new FreezeType(1)) // FreezeOnly