0Chain Nightly Tests - Staging #476
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 - Staging" | |
concurrency: | |
group: "nightly-tests-${{ github.ref }}-${{ github.event_name }}" | |
cancel-in-progress: true | |
on: | |
schedule: | |
# Runs every morning at 2am UTC | |
- cron: '0 2 * * *' | |
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=staging" >> $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 - Staging 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 - Staging 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 - Staging 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 - Staging PASSED ✅", | |
"color": "#22bb33" | |
} | |
] | |
}' | |
curl -X POST -H 'Content-type: application/json' --data "${payload}" ${{ secrets.DEVOPS_CHANNEL_WEBHOOK_URL }} |