The C based gRPC (C++, Python, Ruby, Objective-C, PHP, C#) https://grpc.io/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

75 lines
2.4 KiB

name: PSM Interop
on:
pull_request:
push:
branches:
- master
- 'v1.*'
permissions:
contents: read
jobs:
unittest:
# By default, only version is printed out in parens, e.g. "unittest (3.10)"
# This changes it to "unittest (python3.10)"
name: "unittest (python${{ matrix.python_version }})"
runs-on: ubuntu-latest
strategy:
matrix:
python_version: ["3.9", "3.10", "3.11"]
fail-fast: false
permissions:
pull-requests: read # Used by paths-filter to read the diff.
defaults:
run:
working-directory: 'tools/run_tests/xds_k8s_test_driver'
steps:
- uses: actions/checkout@v3
# To add this job to required GitHub checks, it's not enough to use
# the on.pull_request.paths filter. For required checks, the job needs to
# return the success status, and not be skipped.
# Using paths-filter action, we skip the setup/test steps when psm interop
# files are unchanged, and the job returns success.
- uses: dorny/paths-filter@v2
id: paths_filter
with:
filters: |
psm_interop_src:
- 'tools/run_tests/xds_k8s_test_driver/**'
- 'src/proto/grpc/testing/empty.proto'
- 'src/proto/grpc/testing/messages.proto'
- 'src/proto/grpc/testing/test.proto'
- uses: actions/setup-python@v4
if: ${{ steps.paths_filter.outputs.psm_interop_src == 'true' }}
with:
python-version: "${{ matrix.python_version }}"
cache: 'pip'
cache-dependency-path: 'tools/run_tests/xds_k8s_test_driver/requirements.lock'
- name: "Install requirements"
if: ${{ steps.paths_filter.outputs.psm_interop_src == 'true' }}
run: |
pip list
pip install --upgrade pip setuptools
pip list
pip install -r requirements.lock
pip list
- name: "Generate protos"
if: ${{ steps.paths_filter.outputs.psm_interop_src == 'true' }}
run: >
python -m grpc_tools.protoc --proto_path=../../../
--python_out=. --grpc_python_out=.
src/proto/grpc/testing/empty.proto
src/proto/grpc/testing/messages.proto
src/proto/grpc/testing/test.proto
- name: "Run unit tests"
if: ${{ steps.paths_filter.outputs.psm_interop_src == 'true' }}
run: python -m tests.unit