replay-verify #59
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
# This defines a workflow to replay transactions on the given chain with the latest aptos node software. | |
# In order to trigger it go to the Actions Tab of the Repo, click "replay-verify" and then "Run Workflow". | |
# | |
# On PR, a single test case will run. On workflow_dispatch, you may specify the CHAIN_NAME to verify. | |
name: "replay-verify" | |
on: | |
# Allow triggering manually | |
workflow_dispatch: | |
inputs: | |
GIT_SHA: | |
required: false | |
type: string | |
description: The git SHA1 to test. If not specified, it will use the latest commit on main. | |
CHAIN_NAME: | |
required: false | |
type: choice | |
options: [testnet, mainnet, all] | |
default: all | |
description: The chain name to test. If not specified, it will test both testnet and mainnet. | |
pull_request: | |
paths: | |
- ".github/workflows/replay-verify.yaml" | |
- "testsuite/replay_verify.py" | |
schedule: | |
- cron: "0 22 * * *" | |
push: | |
branches: | |
- aptos-release-v* # the aptos release branches | |
- aptos-node-v* | |
# cancel redundant builds | |
concurrency: | |
# cancel redundant builds on PRs (only on PR, not on branches) | |
group: ${{ github.workflow }}-${{ (github.event_name == 'pull_request' && github.ref) || github.sha }} | |
cancel-in-progress: true | |
jobs: | |
determine-test-metadata: | |
runs-on: ubuntu-latest | |
steps: | |
# checkout the repo first, so check-aptos-core can use it and cancel the workflow if necessary | |
- uses: actions/checkout@v3 | |
- uses: ./.github/actions/check-aptos-core | |
with: | |
cancel-workflow: ${{ github.event_name == 'schedule' }} # Cancel the workflow if it is scheduled on a fork | |
replay-testnet: | |
if: | | |
github.event_name == 'schedule' || | |
github.event_name == 'push' || | |
github.event_name == 'workflow_dispatch' && (inputs.CHAIN_NAME == 'testnet' || inputs.CHAIN_NAME == 'all') | |
needs: determine-test-metadata | |
uses: ./.github/workflows/workflow-run-replay-verify.yaml | |
secrets: inherit | |
with: | |
GIT_SHA: ${{ inputs.GIT_SHA }} | |
# replay-verify config | |
BUCKET: aptos-testnet-backup-b7b1ad7a | |
SUB_DIR: e1 | |
HISTORY_START: 250000000 # TODO: We need an exhaustive list of txns_to_skip before we can set this to 0. | |
TXNS_TO_SKIP: 46874937 151020059 409163615 409163669 409163708 409163774 409163845 409163955 409164059 409164191 414625832 | |
BACKUP_CONFIG_TEMPLATE_PATH: terraform/helm/fullnode/files/backup/gcs.yaml | |
# workflow config | |
RUNS_ON: "high-perf-docker-with-local-ssd" | |
TIMEOUT_MINUTES: 840 | |
replay-mainnet: | |
if: | | |
github.event_name == 'schedule' || | |
github.event_name == 'push' || | |
github.event_name == 'workflow_dispatch' && (inputs.CHAIN_NAME == 'mainnet' || inputs.CHAIN_NAME == 'all' ) | |
needs: determine-test-metadata | |
uses: ./.github/workflows/workflow-run-replay-verify.yaml | |
secrets: inherit | |
with: | |
GIT_SHA: ${{ inputs.GIT_SHA }} | |
# replay-verify config | |
BUCKET: aptos-mainnet-backup-backup-e098483d | |
SUB_DIR: e1 | |
HISTORY_START: 0 | |
TXNS_TO_SKIP: 12253479 12277499 148358668 | |
BACKUP_CONFIG_TEMPLATE_PATH: terraform/helm/fullnode/files/backup/gcs.yaml | |
# workflow config | |
RUNS_ON: "high-perf-docker-with-local-ssd" | |
TIMEOUT_MINUTES: 300 | |
test-replay: | |
if: ${{ github.event_name == 'pull_request' }} | |
needs: determine-test-metadata | |
uses: ./.github/workflows/workflow-run-replay-verify.yaml | |
secrets: inherit | |
with: | |
GIT_SHA: ${{ github.event.pull_request.head.sha }} | |
# replay-verify config | |
BUCKET: aptos-testnet-backup-b7b1ad7a | |
SUB_DIR: e1 | |
HISTORY_START: 250000000 # TODO: We need an exhaustive list of txns_to_skip before we can set this to 0. | |
TXNS_TO_SKIP: 46874937 151020059 409163615 409163669 409163708 409163774 409163845 409163955 409164059 409164191 414625832 | |
BACKUP_CONFIG_TEMPLATE_PATH: terraform/helm/fullnode/files/backup/gcs.yaml | |
# workflow config | |
RUNS_ON: "high-perf-docker-with-local-ssd" | |
TIMEOUT_MINUTES: 120 # increase test replay timeout to capture more flaky errors |