[DO NOT MERGE] canary forge indexer #1627
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_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 | |
# NOTE: this is a special input that is used to pass extra environment variables to the forge test | |
# This is required since workflow_dispatch has a limit of 10 inputs. workflow_call has a higher limit so we can parse out the actual envs from this input | |
FORGE_EXTRA_ENVS: | |
required: false | |
type: string | |
description: Extra environment variables to pass to the forge test. Format is "key1=value1,key2=value2". Use this for FORGE_ENABLE_HAPROXY or FORGE_ENABLE_INDEXER for example | |
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 | |
shell: bash | |
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_EXTRA_ENVS: ${{ inputs.FORGE_EXTRA_ENVS }}" | |
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 }} | |
forgeExtraEnvs: ${{ inputs.FORGE_EXTRA_ENVS }} | |
forgeNumValidators: ${{ inputs.FORGE_NUM_VALIDATORS }} | |
forgeNumValidatorFullnodes: ${{ inputs.FORGE_NUM_VALIDATOR_FULLNODES }} | |
adhoc-forge-test: | |
# XXX: REMOVE ME I'M A CANARY!! :^) | |
uses: aptos-labs/aptos-core/.github/workflows/workflow-run-forge.yaml@rustielin/forge-indexer | |
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_NUM_VALIDATORS: ${{ needs.determine-forge-run-metadata.outputs.forgeNumValidators }} | |
FORGE_NUM_VALIDATOR_FULLNODES: ${{ needs.determine-forge-run-metadata.outputs.forgeNumValidatorFullnodes }} | |
FORGE_RETAIN_DEBUG_LOGS: ${{ inputs.FORGE_RETAIN_DEBUG_LOGS }} | |
# These inputs are dynamically | |
FORGE_EXTRA_ENVS: ${{ needs.determine-forge-run-metadata.outputs.forgeExtraEnvs }} |