code: def _trigger_test_run(
      test: Test, commit: str, run_per_commit: int, is_full_test: bool
  ) -> None:
      os.environ["COMMIT_TO_TEST"] = commit
      build_anyscale_base_byod_images([test])
      build_anyscale_custom_byod_image(test)
      for run in range(run_per_commit):
          step = get_step(
              copy.deepcopy(test),  # avoid mutating the original test
              smoke_test=test.get("smoke_test", False)
              and not is_full_test,
              env={
                  "RAY_COMMIT_OF_WHEEL": commit,
                  "COMMIT_TO_TEST": commit,
              },
          )
          step["label"] = f'{test["name"]}:{commit[:7]}-{run}'
          step["key"] = f"{commit}-{run}"
          pipeline = subprocess.Popen(
              ["echo", json.dumps({"steps": [step]})],
              stdout=subprocess.PIPE,
          )
          subprocess.check_output(
              ["buildkite-agent", "pipeline", "upload"],
              stdin=pipeline.stdout,
          )
          pipeline.stdout.close()
  
imports: import click
  import copy
  import subprocess
  import os
  import json
  import time
  from typing import Dict, List, Set, Tuple
  from pathlib import Path
  from ray_release.bazel import bazel_runfile
  from ray_release.logger import logger
  from ray_release.buildkite.step import get_step
  from ray_release.byod.build import build_anyscale_base_byod_images, build_anyscale_custom_byod_image
  from ray_release.config import read_and_validate_release_test_collection
  from ray_release.configs.global_config import init_global_config
  from ray_release.test import Test
  from ray_release.test_automation.release_state_machine import ReleaseTestStateMachine
label_desc: Use image node_id 5 for calling a global function with example usage: _trigger_test_run(test, commit, run_per_commit, is_full_test) without return types