-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
fallback to regular sessions if backend returns Unimplemented error
- Loading branch information
Showing
5 changed files
with
154 additions
and
26 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,111 @@ | ||
#!/bin/bash | ||
# Copyright 2024 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.. | ||
|
||
# TODO(deklerk): Add integration tests when it's secure to do so. b/64723143 | ||
|
||
# Fail on any error | ||
set -eo pipefail | ||
|
||
# Display commands being run | ||
set -x | ||
|
||
# cd to project dir on Kokoro instance | ||
cd github/google-cloud-go | ||
|
||
go version | ||
|
||
export GOCLOUD_HOME=$KOKORO_ARTIFACTS_DIR/google-cloud-go/ | ||
export PATH="$GOPATH/bin:$PATH" | ||
export GO111MODULE=on | ||
export GOPROXY=https://proxy.golang.org | ||
|
||
# Move code into artifacts dir | ||
mkdir -p $GOCLOUD_HOME | ||
git clone . $GOCLOUD_HOME | ||
cd $GOCLOUD_HOME | ||
|
||
try3() { eval "$*" || eval "$*" || eval "$*"; } | ||
|
||
# All packages, including +build tools, are fetched. | ||
try3 go mod download | ||
|
||
set +e # Run all tests, don't stop after the first failure. | ||
exit_code=0 | ||
|
||
case $JOB_TYPE in | ||
integration-with-multiplexed-session ) | ||
GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS=true | ||
echo "running presubmits with multiplexed sessions enbled: $GOOGLE_CLOUD_SPANNER_MULTIPLEXED_SESSIONS" | ||
;; | ||
esac | ||
|
||
# Run tests in the current directory and tee output to log file, | ||
# to be pushed to GCS as artifact. | ||
runPresubmitTests() { | ||
if [[ $PWD == *"/internal/"* ]] || | ||
[[ $PWD == *"/third_party/"* ]]; then | ||
# internal tools only expected to work with latest go version | ||
return | ||
fi | ||
|
||
if [ -z ${RUN_INTEGRATION_TESTS} ]; then | ||
GOWORK=off go test -race -v -timeout 15m -short ./... 2>&1 | | ||
tee sponge_log.log | ||
else | ||
GOWORK=off go test -race -v -timeout 45m ./... 2>&1 | | ||
tee sponge_log.log | ||
fi | ||
|
||
# Run integration tests against an emulator. | ||
if [ -f "emulator_test.sh" ]; then | ||
./emulator_test.sh | ||
fi | ||
# Takes the kokoro output log (raw stdout) and creates a machine-parseable | ||
# xUnit XML file. | ||
cat sponge_log.log | | ||
go-junit-report -set-exit-code >sponge_log.xml | ||
# Add the exit codes together so we exit non-zero if any module fails. | ||
exit_code=$(($exit_code + $?)) | ||
if [[ $PWD != *"/internal/"* ]]; then | ||
GOWORK=off go build ./... | ||
fi | ||
exit_code=$(($exit_code + $?)) | ||
} | ||
|
||
SIGNIFICANT_CHANGES=$(git --no-pager diff --name-only origin/main...$KOKORO_GIT_COMMIT_google_cloud_go | | ||
grep -Ev '(\.md$|^\.github|\.json$|\.yaml$)' | xargs dirname | sort -u || true) | ||
|
||
if [ -z $SIGNIFICANT_CHANGES ]; then | ||
echo "No changes detected, skipping tests" | ||
exit 0 | ||
fi | ||
|
||
# CHANGED_DIRS is the list of significant top-level directories that changed, | ||
# but weren't deleted by the current PR. CHANGED_DIRS will be empty when run on main. | ||
CHANGED_DIRS=$(echo "$SIGNIFICANT_CHANGES" | tr ' ' '\n' | cut -d/ -f1 | sort -u | | ||
tr '\n' ' ' | xargs ls -d 2>/dev/null || true) | ||
|
||
echo "Running tests only in changed submodules: $CHANGED_DIRS" | ||
for d in $CHANGED_DIRS; do | ||
# run tests only if spanner module is part of $CHANGED_DIRS | ||
if [[ $d == *"spanner"* ]]; then | ||
pushd $(dirname $d) | ||
runPresubmitTests | ||
popd | ||
continue | ||
fi | ||
done | ||
|
||
exit $exit_code |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters