From aace548eb06e9b20d98a8abfaf1251217e8bbd2e Mon Sep 17 00:00:00 2001 From: Branislav Kojic Date: Thu, 4 Jul 2024 09:37:50 +0200 Subject: [PATCH] Nightly Blade Healthcheck (#312) --- .github/workflows/deploy-network.yml | 8 ++++++++ .github/workflows/load-test.yml | 4 +--- .github/workflows/nightly.yml | 1 + .github/workflows/notification-deploy-network.yml | 7 ++++++- .github/workflows/notification-nightly.yml | 8 ++++++-- 5 files changed, 22 insertions(+), 6 deletions(-) diff --git a/.github/workflows/deploy-network.yml b/.github/workflows/deploy-network.yml index 0d3362f66b..379fbe4078 100644 --- a/.github/workflows/deploy-network.yml +++ b/.github/workflows/deploy-network.yml @@ -90,6 +90,9 @@ on: # yamllint disable-line rule:truthy ansible_output: description: Ansible output value: ${{ jobs.deploy_network.outputs.ansible_output }} + blade_healthcheck_output: + description: Blade Healthcheck output + value: ${{ jobs.deploy_network.outputs.blade_healthcheck_output }} secrets: AWS_ROLE_ARN: required: true @@ -138,6 +141,7 @@ jobs: outputs: terraform_output: ${{ steps.terraform_failure.outputs.terraform_output }} ansible_output: ${{ steps.ansible_failure.outputs.ansible_output }} + blade_healthcheck_output: ${{ steps.blade_healthcheck.outputs.healthcheck }} rpc_url: ${{ steps.rpc_url.outputs.url }} steps: - name: Checkout code @@ -219,6 +223,9 @@ jobs: - name: Set RPC URL id: rpc_url run: echo "url=$(terraform output -raw aws_lb_ext_domain | grep -o -E '^ext[^:]*')" >> $GITHUB_OUTPUT + - name: Blade healthcheck + id: blade_healthcheck + run: echo "healthcheck=`curl http://${{ steps.rpc_url.outputs.url }} | jq -r 'select(.name == "blade") | length != 0'`" >> $GITHUB_OUTPUT notification: name: Deploy Notification needs: [check_network, deploy_network] @@ -235,6 +242,7 @@ jobs: gossip_msg_size: ${{ inputs.gossip_msg_size }} deploy_network_terraform_output: ${{ needs.deploy_network.outputs.terraform_output }} deploy_network_ansible_output: ${{ needs.deploy_network.outputs.ansible_output }} + deploy_network_blade_healthcheck_output: ${{ needs.deploy_network.outputs.blade_healthcheck_output }} rpc_url: ${{ needs.check_network.outputs.rpc_url || needs.deploy_network.outputs.rpc_url }} secrets: SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }} diff --git a/.github/workflows/load-test.yml b/.github/workflows/load-test.yml index 37874e529f..a30624e595 100644 --- a/.github/workflows/load-test.yml +++ b/.github/workflows/load-test.yml @@ -253,12 +253,10 @@ jobs: txpool_pending: ${{ steps.txpool_status_results.outputs.txpool_pending }} txpool_queued: ${{ steps.txpool_status_results.outputs.txpool_queued }} steps: - - name: Install Foundry - uses: foundry-rs/foundry-toolchain@v1 - name: Get txpool status id: txpool_status_results run: | - txpool_status=$(cast rpc --rpc-url "http://${{ needs.check_network.outputs.rpc_url }}" txpool_status | jq) + txpool_status=$(curl -X POST -H "Content-Type: application/json" --data '{"jsonrpc":"2.0","method":"txpool_status","params":[],"id":1}' http://${{ needs.check_network.outputs.rpc_url }} | jq -r .result) echo "txpool_pending=$(echo $txpool_status | jq -r '.pending')" >> $GITHUB_OUTPUT echo "txpool_queued=$(echo $txpool_status | jq -r '.queued')" >> $GITHUB_OUTPUT notification: diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index cf560c3013..6e69c45891 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -186,6 +186,7 @@ jobs: unstake_all_test_output: ${{ needs.sanity_check_tests.outputs.unstake_all_test_output }} deploy_network_terraform_output: ${{ needs.deploy_network.outputs.terraform_output }} deploy_network_ansible_output: ${{ needs.deploy_network.outputs.ansible_output }} + deploy_network_blade_healthcheck_output: ${{ needs.deploy_network.outputs.blade_healthcheck_output }} load_test_eoa_output: ${{ needs.load_test_eoa.outputs.load_test_output }} load_test_eoa_txpool_pending_output: ${{ needs.load_test_eoa.outputs.txpool_pending }} load_test_eoa_txpool_queued_output: ${{ needs.load_test_eoa.outputs.txpool_queued }} diff --git a/.github/workflows/notification-deploy-network.yml b/.github/workflows/notification-deploy-network.yml index f6880bdcde..fa0859094a 100644 --- a/.github/workflows/notification-deploy-network.yml +++ b/.github/workflows/notification-deploy-network.yml @@ -43,6 +43,10 @@ on: # yamllint disable-line rule:truthy description: Deploy Network - Ansible output type: string required: true + deploy_network_blade_healthcheck_output: + description: Deploy Network - Blade Healthcheck output + type: string + required: true rpc_url: description: JSON-RPC URL type: string @@ -87,7 +91,7 @@ jobs: "type": "plain_text", "text": "Workflow Run" }, - "style": "${{ inputs.deploy_network_terraform_output == '' && inputs.deploy_network_ansible_output == '' && env.succeed_bnt || env.failed_bnt }}", + "style": "${{ inputs.deploy_network_terraform_output == '' && inputs.deploy_network_ansible_output == '' && inputs.deploy_network_blade_healthcheck_output == 'true' && env.succeed_bnt || env.failed_bnt }}", "url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" }, { @@ -96,6 +100,7 @@ jobs: "type": "plain_text", "text": "JSON-RPC" }, + "style": "${{ inputs.deploy_network_blade_healthcheck_output == 'true' && env.succeed_bnt || env.failed_bnt }}", "url": "http://${{ inputs.rpc_url }}" } ] diff --git a/.github/workflows/notification-nightly.yml b/.github/workflows/notification-nightly.yml index 8c13337ad6..3f2b3a3f81 100644 --- a/.github/workflows/notification-nightly.yml +++ b/.github/workflows/notification-nightly.yml @@ -103,6 +103,10 @@ on: # yamllint disable-line rule:truthy description: Deploy Network - Ansible output type: string required: true + deploy_network_blade_healthcheck_output: + description: Deploy Network - Blade Healthcheck output + type: string + required: true load_test_eoa_output: description: Load Test EOA output type: string @@ -211,7 +215,7 @@ jobs: "type": "plain_text", "text": "Workflow Run" }, - "style": "${{ inputs.build_blade_output == '' && inputs.lint_output == '' && inputs.unit_test_output == '' && inputs.e2e_polybft_test_output == '' && inputs.e2e_legacy_test_output == '' && inputs.property_polybft_test_output == '' && inputs.fuzz_test_output == '' && inputs.benchmark_test_output == '' && inputs.sanity_check_tests_output == 'true' && inputs.deploy_network_terraform_output == '' && inputs.deploy_network_ansible_output == '' && inputs.load_test_eoa_output == 'true' && inputs.load_test_eoa_txpool_pending_output == '0' && inputs.load_test_eoa_txpool_queued_output == '0' && inputs.load_test_erc20_output == 'true' && inputs.load_test_erc20_txpool_pending_output == '0' && inputs.load_test_erc20_txpool_queued_output == '0' && inputs.load_test_erc721_output == 'true' && inputs.load_test_erc721_txpool_pending_output == '0' && inputs.load_test_erc721_txpool_queued_output == '0' && inputs.load_test_mixed_output == 'true' && inputs.load_test_mixed_txpool_pending_output == '0' && inputs.load_test_mixed_txpool_queued_output == '0' && inputs.destroy_network_logs_output == '' && inputs.destroy_network_terraform_output == '' && env.succeed_bnt || env.failed_bnt }}", + "style": "${{ inputs.build_blade_output == '' && inputs.lint_output == '' && inputs.unit_test_output == '' && inputs.e2e_polybft_test_output == '' && inputs.e2e_legacy_test_output == '' && inputs.property_polybft_test_output == '' && inputs.fuzz_test_output == '' && inputs.benchmark_test_output == '' && inputs.sanity_check_tests_output == 'true' && inputs.deploy_network_terraform_output == '' && inputs.deploy_network_ansible_output == '' && inputs.deploy_network_blade_healthcheck_output == 'true' && inputs.load_test_eoa_output == 'true' && inputs.load_test_eoa_txpool_pending_output == '0' && inputs.load_test_eoa_txpool_queued_output == '0' && inputs.load_test_erc20_output == 'true' && inputs.load_test_erc20_txpool_pending_output == '0' && inputs.load_test_erc20_txpool_queued_output == '0' && inputs.load_test_erc721_output == 'true' && inputs.load_test_erc721_txpool_pending_output == '0' && inputs.load_test_erc721_txpool_queued_output == '0' && inputs.load_test_mixed_output == 'true' && inputs.load_test_mixed_txpool_pending_output == '0' && inputs.load_test_mixed_txpool_queued_output == '0' && inputs.destroy_network_logs_output == '' && inputs.destroy_network_terraform_output == '' && env.succeed_bnt || env.failed_bnt }}", "url": "${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}" }, { @@ -372,7 +376,7 @@ jobs: "fields": [ { "type": "mrkdwn", - "text": "${{ inputs.deploy_network_terraform_output == '' && inputs.deploy_network_ansible_output == '' && env.succeed_job || env.failed_job }} *Deploy Network*" + "text": "${{ inputs.deploy_network_terraform_output == '' && inputs.deploy_network_ansible_output == '' && inputs.deploy_network_blade_healthcheck_output == 'true' && env.succeed_job || env.failed_job }} *Deploy Network*" }, { "type": "mrkdwn",