Ad-hoc Forge Run #1710
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: "Ad-hoc Forge Run" | |
on: | |
pull_request: | |
paths: | |
- ".github/workflows/adhoc-forge.yaml" | |
workflow_dispatch: | |
inputs: | |
GIT_SHA: | |
required: true | |
type: string | |
description: The git SHA1 to checkout and test | |
IMAGE_TAG: | |
required: false | |
type: string | |
description: The docker image tag to test. If not specified, falls back on GIT_SHA | |
FORGE_IMAGE_TAG: | |
required: false | |
type: string | |
description: The docker image tag to use for forge runner. If not specified, falls back on GIT_SHA | |
FORGE_RUNNER_DURATION_SECS: | |
required: false | |
type: string | |
default: "480" | |
description: Duration of the forge test run | |
FORGE_TEST_SUITE: | |
required: false | |
type: string | |
default: land_blocking | |
description: Test suite to run | |
FORGE_CLUSTER_NAME: | |
required: false | |
type: string | |
description: The Forge k8s cluster to be used for test | |
FORGE_ENABLE_INDEXER: | |
required: false | |
type: boolean | |
description: Whether to use indexer | |
FORGE_NUM_VALIDATORS: | |
required: false | |
type: string | |
description: Number of validators to use for the forge test | |
FORGE_NUM_VALIDATOR_FULLNODES: | |
required: false | |
type: string | |
description: Number of validator fullnodes to use for the forge test | |
FORGE_RETAIN_DEBUG_LOGS: | |
required: false | |
type: boolean | |
description: Retain debug logs for all nodes | |
permissions: | |
contents: read | |
id-token: write #required for GCP Workload Identity federation which we use to login into Google Artifact Registry | |
issues: write | |
pull-requests: write | |
jobs: | |
determine-forge-run-metadata: | |
runs-on: ubuntu-latest | |
steps: | |
- name: collect metadata | |
run: | | |
echo "GIT_SHA: ${{ inputs.GIT_SHA }}" | |
echo "IMAGE_TAG: ${{ inputs.IMAGE_TAG }}" | |
echo "FORGE_IMAGE_TAG: ${{ inputs.FORGE_IMAGE_TAG }}" | |
echo "FORGE_RUNNER_DURATION_SECS: ${{ inputs.FORGE_RUNNER_DURATION_SECS }}" | |
echo "FORGE_TEST_SUITE: ${{ inputs.FORGE_TEST_SUITE }}" | |
echo "FORGE_CLUSTER_NAME: ${{ inputs.FORGE_CLUSTER_NAME }}" | |
echo "FORGE_ENABLE_INDEXER: ${{ inputs.FORGE_ENABLE_INDEXER }}" | |
echo "FORGE_NUM_VALIDATORS: ${{ inputs.FORGE_NUM_VALIDATORS }}" | |
echo "FORGE_NUM_VALIDATOR_FULLNODES: ${{ inputs.FORGE_NUM_VALIDATOR_FULLNODES }}" | |
echo "FORGE_RETAIN_DEBUG_LOGS: ${{ inputs.FORGE_RETAIN_DEBUG_LOGS }}" | |
outputs: | |
gitSha: ${{ inputs.GIT_SHA }} | |
imageTag: ${{ inputs.IMAGE_TAG }} | |
forgeImageTag: ${{ inputs.FORGE_IMAGE_TAG }} | |
forgeRunnerDurationSecs: ${{ inputs.FORGE_RUNNER_DURATION_SECS || 600 }} | |
forgeTestSuite: ${{ inputs.FORGE_TEST_SUITE }} | |
forgeClusterName: ${{ inputs.FORGE_CLUSTER_NAME }} | |
forgeEnableIndexer: ${{ inputs.FORGE_ENABLE_INDEXER }} | |
forgeNumValidators: ${{ inputs.FORGE_NUM_VALIDATORS }} | |
forgeNumValidatorFullnodes: ${{ inputs.FORGE_NUM_VALIDATOR_FULLNODES }} | |
forgeRetainDebugLogs: ${{ inputs.FORGE_RETAIN_DEBUG_LOGS }} | |
adhoc-forge-test: | |
uses: aptos-labs/aptos-core/.github/workflows/workflow-run-forge.yaml@main | |
needs: [determine-forge-run-metadata] | |
secrets: inherit | |
with: | |
GIT_SHA: ${{ needs.determine-forge-run-metadata.outputs.gitSha }} | |
IMAGE_TAG: ${{ needs.determine-forge-run-metadata.outputs.imageTag }} | |
FORGE_IMAGE_TAG: ${{ needs.determine-forge-run-metadata.outputs.forgeImageTag }} | |
FORGE_TEST_SUITE: ${{ needs.determine-forge-run-metadata.outputs.forgeTestSuite }} | |
FORGE_RUNNER_DURATION_SECS: ${{ fromJSON(needs.determine-forge-run-metadata.outputs.forgeRunnerDurationSecs) }} # fromJSON converts to integer | |
FORGE_CLUSTER_NAME: ${{ needs.determine-forge-run-metadata.outputs.forgeClusterName }} | |
FORGE_ENABLE_INDEXER: ${{ needs.determine-forge-run-metadata.outputs.forgeEnableIndexer == 'true' }} | |
FORGE_NUM_VALIDATORS: ${{ needs.determine-forge-run-metadata.outputs.forgeNumValidators }} | |
FORGE_NUM_VALIDATOR_FULLNODES: ${{ needs.determine-forge-run-metadata.outputs.forgeNumValidatorFullnodes }} | |
FORGE_RETAIN_DEBUG_LOGS: ${{ needs.determine-forge-run-metadata.outputs.forgeRetainDebugLogs == 'true' }} |