Backport of #36450 to v1.59.x. --- Integrates the new features of the the Kokoro PSM Interop install library introduced in grpc/psm-interop#73. Nearly all common functionality was moved from per-language/per-branch PSM Interop build scripts to [psm_interop_kokoro_lib.sh](https://github.com/grpc/psm-interop/blob/main/.kokoro/psm_interop_kokoro_lib.sh): 1. The list of tests in the each test suite 2. Per-test-suite flag customization 3. `run_test` methods 4. `build_docker_images_if_needed` methods 5. Generic `build_test_app_docker_images` methods (simple docker build + docker push + docker tag). grpc-java is one exception, as it doesn't run docker directly, but a cloudbuild flow. Now all PSM Interop jobs share the same buildscripts by all test suites: 1. buildscript that invokes the test: `psm-interop-test-{language}.sh` (configured as `build_file` in the build cfg) 2. buildscript that builds the xDS test client/server and publishes them as a Docker image: `psm-interop-build-{language}.sh` (conventional name called from `psm_interop_kokoro_lib.sh`) `psm-interop-test-{language}.sh`: 1. Sets `GRPC_LANGUAGE`, `BUILD_SCRIPT_DIR` environment variables. 2. Downloads the shared `psm_interop_kokoro_lib.sh` from the main branch of the psm-interop repo. 3. Sources `psm-interop-build-{language}.sh` 4. Calls `psm::run "${PSM_TEST_SUITE}"` (`PSM_TEST_SUITE` configured in the cfg file). `psm-interop-build-{language}.sh`: 1. Defines `psm::lang::build_docker_images` which is called from `psm_interop_kokoro_lib.sh`. 2. Invokes any repo-specific logic. 3. May use `psm::build::docker_images_generic` for generic Docker build, tag, push, or provide implement its own build/publish method. References: - b/288578634 - See the full list of the new features at grpc/psm-interop#73. - Additional fixes to the shared lib: grpc/psm-interop#78, grpc/psm-interop#79 |
||
|---|---|---|
| .. | ||
| api_reference | ||
| bazelify_tests | ||
| buildgen | ||
| codegen/core | ||
| debug/core | ||
| distrib | ||
| docker_runners | ||
| dockerfile | ||
| doxygen | ||
| fuzzing | ||
| gce | ||
| gcp/utils | ||
| gource | ||
| http2_interop | ||
| internal_ci | ||
| interop_matrix | ||
| mkowners | ||
| package_hosting | ||
| profiling | ||
| release | ||
| remote_build | ||
| run_tests | ||
| README.md | ||
| bazel | ||
| bazel.rc | ||
| fuzztest.bazelrc | ||
README.md
buildgen: Template renderer for our build system.
distrib: Scripts to distribute language-specific packages and other distribution-related helper scripts.
dockerfile: Docker files to test gRPC.
doxygen: gRPC C/C++ documentation generation via Doxygen.
gce: Scripts to help setup testing infrastructure on GCE.
gcp: Helper scripts for interacting with various services on GCP (like Google container engine, BigQuery etc)
internal_ci: Support for running tests on an internal CI platform.
interop_matrix: Scripts to build, upload, and run gRPC clients in docker with various language/runtimes.
jenkins: Support for running tests on Jenkins.
run_tests: Scripts to run gRPC tests in parallel.
run_tests/performance: See the README for more notes on the performance tests.