From b540355dfa1959b206847545e886ebc0fcffbade Mon Sep 17 00:00:00 2001 From: Daniel Sanche Date: Thu, 5 Oct 2023 14:53:56 -0700 Subject: [PATCH] add conformance tests github action config --- .github/workflows/conformance.yaml | 49 ++++++++++++++++++++++++++++++ .kokoro/conformance.sh | 48 +++++++++++++++++++++++++++++ 2 files changed, 97 insertions(+) create mode 100644 .github/workflows/conformance.yaml create mode 100644 .kokoro/conformance.sh diff --git a/.github/workflows/conformance.yaml b/.github/workflows/conformance.yaml new file mode 100644 index 000000000..42d3b9b28 --- /dev/null +++ b/.github/workflows/conformance.yaml @@ -0,0 +1,49 @@ +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# Github action job to test core java library features on +# downstream client libraries before they are released. +on: + push: + branches: + - main + pull_request: +name: conformance +jobs: + conformance: + runs-on: ubuntu-latest + strategy: + matrix: + py-version: [ 3.7, 3.11 ] + use-legacy-client: [ "false", "true" ] + steps: + - uses: actions/checkout@v3 + - uses: actions/checkout@v3 + with: + repository: googleapis/cloud-bigtable-clients-test + ref: main + path: cloud-bigtable-clients-test + - uses: actions/setup-python@v4 + with: + python-version: ${{ matrix.py-version }} + - uses: actions/setup-go@v4 + with: + go-version: '>=1.20.2' + - run: chmod +x .kokoro/conformance.sh + - run: pip install -e . + - run: go version + - run: .kokoro/conformance.sh + name: "Conformance Tests" + env: + USE_LEGACY_CLIENT: ${{ matrix.use-legacy-client }} + diff --git a/.kokoro/conformance.sh b/.kokoro/conformance.sh new file mode 100644 index 000000000..f44714208 --- /dev/null +++ b/.kokoro/conformance.sh @@ -0,0 +1,48 @@ +#!/bin/bash + +# Copyright 2023 Google LLC +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +set -eo pipefail + +## cd to the parent directory, i.e. the root of the git repo +cd $(dirname $0)/.. + +ARGS="" +if [[ "$USE_LEGACY_CLIENT" == "true" ]]; then + ARGS="--legacy-client" + echo "Using legacy client" +fi + +# Build and start the proxy in a separate process +PROXY_PORT=9999 +pushd test_proxy +nohup python testproxy --port $PROXY_PORT $ARGS & +proxyPID=$! +popd + +# Run the conformance test +pushd . +pwd +ls +cd cloud-bigtable-clients-test/tests +eval "go test -v -proxy_addr=:$PROXY_PORT" +RETURN_CODE=$? +popd + +# Stop the proxy +kill $proxyPID + +echo "exiting with ${RETURN_CODE}" +exit ${RETURN_CODE}