0Chain Nightly Tests - Current Sprint #521
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "0Chain Nightly Tests - Current Sprint" | |
concurrency: | |
group: "sprint-nightly-tests-${{ github.ref }}-${{ github.event_name }}" | |
cancel-in-progress: true | |
on: | |
schedule: | |
# Runs every morning at 4am UTC | |
- cron: '0 4 * * *' | |
workflow_dispatch: | |
jobs: | |
system-tests: | |
name: "System Tests" | |
runs-on: [ tests-suite ] | |
steps: | |
- name: "Config: Deploy new 0Chain network then run tests against it" | |
run: | | |
echo "NETWORK_URL=$(echo dev-${RUNNER_NAME:(-1)}.devnet-0chain.net)" >> $GITHUB_ENV | |
echo "REPO_SNAPSHOTS_BRANCH=current-sprint" >> $GITHUB_ENV | |
echo "RUNNER_NUMBER=${RUNNER_NAME:(-1)}" >> $GITHUB_ENV | |
- name: 'Setup jq' | |
uses: dcarbone/[email protected] | |
with: | |
version: '1.7' | |
force: 'false' | |
- name: "Create Tenderly virtual testnet" | |
run: | | |
echo "TENDERLY_CREATION_INFO=$(curl -X POST \ | |
-H "x-access-key: ${{ secrets.TENDERLY_SECRET }}" \ | |
-H "Content-Type: application/json" \ | |
-d '{"slug":"mainnet-dev-${{ env.RUNNER_NUMBER }}-${{ github.run_id }}","displayName":"mainnet-dev-${{ env.RUNNER_NUMBER }}-${{ github.run_id }}","description":"","visibility":"TEAM","tags":{"purpose":"development"},"networkConfig":{"networkId":"1","blockNumber":"18512782","chainConfig":{"chainId":"1"},"baseFeePerGas":"1"},"explorerConfig":{"enabled":false,"verificationVisibility":"bytecode"},"syncState":false}' \ | |
https://api.tenderly.co/api/v1/account/zus_network/project/project/testnet/container)" >> $GITHUB_ENV | |
- name: "Parse Tenderly virtual testnet creation transaction result" | |
run: | | |
echo "TENDERLY_VIRTUAL_TESTNET_ID=$(echo '${{ env.TENDERLY_CREATION_INFO }}' | jq -r '.container.id')" >> $GITHUB_ENV | |
echo "TENDERLY_VIRTUAL_TESTNET_RPC_ID=$(echo '${{ env.TENDERLY_CREATION_INFO }}' | jq -r '.container.connectivityConfig.endpoints[0].id')" >> $GITHUB_ENV | |
- name: "Deploy 0Chain" | |
uses: 0chain/actions/deploy-0chain@master | |
with: | |
repo_snapshots_branch: "${{ env.REPO_SNAPSHOTS_BRANCH }}" | |
kube_config: ${{ secrets[format('DEV{0}KC', env.RUNNER_NUMBER)] }} | |
teardown_condition: "TESTS_PASSED" | |
SUBGRAPH_API_URL: ${{ secrets.SUBGRAPH_API_URL }} | |
TENDERLY_VIRTUAL_TESTNET_RPC_ID: ${{ env.TENDERLY_VIRTUAL_TESTNET_RPC_ID }} | |
graphnode_sc: ${{ secrets.GRAPHNODE_SC }} | |
graphnode_network: ${{ secrets.GRAPHNODE_NETWORK }} | |
graphnode_ethereum_node_url: https://virtual.mainnet.rpc.tenderly.co/${{ env.TENDERLY_VIRTUAL_TESTNET_RPC_ID }} | |
svc_account_secret: ${{ secrets.SVC_ACCOUNT_SECRET }} | |
- name: "Run System tests" | |
uses: 0chain/actions/run-system-tests@master | |
with: | |
repo_snapshots_branch: "${{ env.REPO_SNAPSHOTS_BRANCH }}" | |
network: ${{ env.NETWORK_URL }} | |
svc_account_secret: ${{ secrets.SVC_ACCOUNT_SECRET }} | |
deploy_report_page: true | |
archive_results: true | |
run_flaky_tests: true | |
run_api_system_tests: true | |
run_cli_system_tests: true | |
run_tokenomics_system_tests: false | |
run_smoke_tests: false | |
test_file_filter: ${{ env.TEST_FILE_FILTER }} | |
TENDERLY_VIRTUAL_TESTNET_RPC_ID: ${{ env.TENDERLY_VIRTUAL_TESTNET_RPC_ID }} | |
S3_ACCESS_KEY: ${{ secrets.S3_ACCESS_KEY }} | |
S3_SECRET_KEY: ${{ secrets.S3_SECRET_KEY }} | |
- name: "Remove Tenderly virtual testnet" | |
if: always() | |
run: | | |
curl -X DELETE \ | |
-H "x-access-key: ${{ secrets.TENDERLY_SECRET }}" \ | |
-H "Content-Type: application/json" \ | |
https://api.tenderly.co/api/v1/account/zus_network/project/project/testnet/container/${{ env.TENDERLY_VIRTUAL_TESTNET_ID }} | |
- name: "Check if should send slack notification" | |
if: failure() | |
id: send-slack-notification | |
uses: peter-murray/[email protected] | |
with: | |
value: ${{ secrets.DEVOPS_CHANNEL_WEBHOOK_URL }} | |
default: false | |
notify_slack_on_failure: | |
runs-on: [self-hosted, arc-runner] | |
needs: [system-tests] | |
if: always() && (needs.system-tests.result == 'failure') | |
steps: | |
- name: "Notify Slack" | |
run: | | |
payload='{ | |
"text": "'"<!here> 0Chain Nightly Tests - Current Sprint FAILED on $(echo ${GITHUB_REF#refs/heads/})!.\n View the test results on Github: https://github.com/0chain/system_test/actions/runs/${{ github.run_id }}"'", | |
"attachments": [ | |
{ | |
"text": "0Chain Nightly Tests - Current Sprint FAILED ⚠️", | |
"color": "#ff0000" | |
} | |
] | |
}' | |
curl -X POST -H 'Content-type: application/json' --data "${payload}" ${{ secrets.DEVOPS_CHANNEL_WEBHOOK_URL }} | |
notify_slack_on_success: | |
runs-on: [self-hosted, arc-runner] | |
needs: [system-tests] | |
if: always() && (needs.system-tests.result == 'success') | |
steps: | |
- name: "Notify Slack" | |
run: | | |
payload='{ | |
"text": "'"<!here> 0Chain Nightly Tests - Current Sprint PASSING on $(echo ${GITHUB_REF#refs/heads/})!.\n View the test results on Github: https://github.com/0chain/system_test/actions/runs/${{ github.run_id }}"'", | |
"attachments": [ | |
{ | |
"text": "0Chain Nightly Tests - Current Sprint PASSED ✅", | |
"color": "#22bb33" | |
} | |
] | |
}' | |
curl -X POST -H 'Content-type: application/json' --data "${payload}" ${{ secrets.DEVOPS_CHANNEL_WEBHOOK_URL }} |