name: Run Selected E2E Tests

on:
  workflow_dispatch:
    inputs:
      chainlink_version:
        description: 'Enter Chainlink version to use for the tests. Example: "v2.10.0" or sha'
        required: false
        type: string
      test_ids:
        description: 'Run all tests "*" by default. Or, enter test IDs to run separated by commas. Example: "run_all_in_ocr_tests_go,run_TestOCRv2Request_in_ocr2_test_go". Check all test IDs in .github/e2e-tests.yml'
        default: "*"
        required: true
        type: string
      test_secrets_override_key:
        description: 'Enter the secret key to override test secrets'
        required: false
        type: string 
      # TODO: Uncomment once Test Config does not have any secrets. Related ticket https://smartcontract-it.atlassian.net/browse/TT-1392 
      # test_config_override_base64:
      #   required: false
      #   description: The base64-encoded test config override
      #   type: string        
      enable_check_test_configurations:
        description: 'Set to "true" to enable check-test-configurations job'
        required: false
        type: boolean
        default: false
      with_existing_remote_runner_version:
        description: 'Use the existing remote runner version for k8s tests. Example: "d3bf5044af33e08be788a2df31c4a745cf69d787"'
        required: false
        type: string         
      workflow_run_name:
        description: 'Enter the name of the workflow run'
        default: 'Run E2E Tests'
        required: false
        type: string
        
run-name: ${{ inputs.workflow_run_name }}

jobs:
  call-run-e2e-tests-workflow:
    name: Run E2E Tests
    uses: ./.github/workflows/run-e2e-tests-reusable-workflow.yml
    with:
      chainlink_version: ${{ github.event.inputs.chainlink_version }}
      test_ids: ${{ github.event.inputs.test_ids }}
      # TODO: Uncomment once Test Config does not have any secrets. Related ticket https://smartcontract-it.atlassian.net/browse/TT-1392 
      # test_config_override_base64: ${{ github.event.inputs.test_config_override_base64 }}
      with_existing_remote_runner_version: ${{ github.event.inputs.with_existing_remote_runner_version }}
      # Use fromJSON to convert string to boolean. More info: https://github.com/actions/runner/issues/2206#issuecomment-1532246677
      enable_check_test_configurations: ${{ fromJSON(github.event.inputs.enable_check_test_configurations) }}
    secrets:
      QA_AWS_REGION: ${{ secrets.QA_AWS_REGION }}
      QA_AWS_ROLE_TO_ASSUME: ${{ secrets.QA_AWS_ROLE_TO_ASSUME }}
      QA_AWS_ACCOUNT_NUMBER: ${{ secrets.QA_AWS_ACCOUNT_NUMBER }}
      QA_PYROSCOPE_INSTANCE: ${{ secrets.QA_PYROSCOPE_INSTANCE }}
      QA_PYROSCOPE_KEY: ${{ secrets.QA_PYROSCOPE_KEY }}
      QA_KUBECONFIG: ${{ secrets.QA_KUBECONFIG }}
      GRAFANA_INTERNAL_TENANT_ID: ${{ secrets.GRAFANA_INTERNAL_TENANT_ID }}
      GRAFANA_INTERNAL_BASIC_AUTH: ${{ secrets.GRAFANA_INTERNAL_BASIC_AUTH }}
      GRAFANA_INTERNAL_HOST: ${{ secrets.GRAFANA_INTERNAL_HOST }}
      GRAFANA_INTERNAL_URL_SHORTENER_TOKEN: ${{ secrets.GRAFANA_INTERNAL_URL_SHORTENER_TOKEN }}
      GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}  
      AWS_REGION: ${{ secrets.QA_AWS_REGION }}
      AWS_OIDC_IAM_ROLE_VALIDATION_PROD_ARN: ${{ secrets.AWS_OIDC_IAM_ROLE_VALIDATION_PROD_ARN }}
      AWS_API_GW_HOST_GRAFANA: ${{ secrets.AWS_API_GW_HOST_GRAFANA }}
      TEST_SECRETS_OVERRIDE_BASE64: ${{ secrets[inputs.test_secrets_override_key] }}
      SLACK_BOT_TOKEN: ${{ secrets.QA_SLACK_API_KEY }}

