Skip to content

Commit

Permalink
[DO NOT MERGE] canary forge indexer
Browse files Browse the repository at this point in the history
  • Loading branch information
rustielin committed Sep 10, 2024
1 parent 47647ef commit edc16c9
Showing 1 changed file with 29 additions and 10 deletions.
39 changes: 29 additions & 10 deletions .github/workflows/adhoc-forge.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -31,11 +31,6 @@ on:
required: false
type: string
description: The Forge k8s cluster to be used for test
FORGE_ENABLE_HAPROXY:
required: false
default: false
type: boolean
description: enable haproxy for the forge test
FORGE_NUM_VALIDATORS:
required: false
type: string
Expand All @@ -48,7 +43,12 @@ on:
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
Expand All @@ -60,31 +60,46 @@ jobs:
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_ENABLE_HAPROXY: ${{ inputs.FORGE_ENABLE_HAPROXY }}"
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 }}"
# Input from the action
IFS=',' read -ra ENV_PAIRS <<< "${{ inputs.FORGE_EXTRA_ENVS }}"
# Loop over key-value pairs
for pair in "${ENV_PAIRS[@]}"; do
key=$(echo $pair | cut -d '=' -f 1)
value=$(echo $pair | cut -d '=' -f 2)
# Set output dynamically
echo "${key}=${value}" >> $GITHUB_OUTPUT
done
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 }}
forgeEnableHaproxy: ${{ inputs.FORGE_ENABLE_HAPROXY }}
forgeExtraEnvs: ${{ inputs.FORGE_EXTRA_ENVS }}
forgeNumValidators: ${{ inputs.FORGE_NUM_VALIDATORS }}
forgeNumValidatorFullnodes: ${{ inputs.FORGE_NUM_VALIDATOR_FULLNODES }}

adhoc-forge-test:
uses: aptos-labs/aptos-core/.github/workflows/workflow-run-forge.yaml@main
needs: [determine-forge-run-metadata]
# 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 }}
Expand All @@ -93,7 +108,11 @@ jobs:
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_HAPROXY: ${{ needs.determine-forge-run-metadata.outputs.forgeEnableHaproxy }}
FORGE_EXTRA_ENVS: ${{ needs.determine-forge-run-metadata.outputs.forgeExtraEnvs }}
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 are the inputs that are parsed from the FORGE_EXTRA_ENVS
# They may not be present in the metadata output if they are not passed in the input
FORGE_ENABLE_INDEXER: ${{ needs.determine-forge-run-metadata.outputs.FORGE_ENABLE_INDEXER }}
FORGE_ENABLE_HAPROXY: ${{ needs.determine-forge-run-metadata.outputs.FORGE_ENABLE_HAPROXY }}

0 comments on commit edc16c9

Please sign in to comment.