|
13 | 13 | # See the License for the specific language governing permissions and
|
14 | 14 | # limitations under the License.
|
15 | 15 |
|
| 16 | +# The default test runner for samples. |
| 17 | +# |
| 18 | +# For periodic builds, we rewinds the repo to the latest release, and |
| 19 | +# run test-samples-impl.sh. |
16 | 20 |
|
17 | 21 | # `-e` enables the script to automatically fail when a command fails
|
18 | 22 | # `-o pipefail` sets the exit code to the rightmost comment to exit with a non-zero
|
@@ -24,87 +28,19 @@ cd /python-compute
|
24 | 28 |
|
25 | 29 | # Run periodic samples tests at latest release
|
26 | 30 | if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"periodic"* ]]; then
|
| 31 | +# preserving the test runner implementation. |
| 32 | +cp .kokoro/test-samples-impl.sh "${TMPDIR}/test-samples-impl.sh" |
| 33 | +echo "--- IMPORTANT IMPORTANT IMPORTANT ---" |
| 34 | +echo "Now we rewind the repo back to the latest release..." |
27 | 35 | LATEST_RELEASE=$(git describe --abbrev=0 --tags)
|
28 | 36 | git checkout $LATEST_RELEASE
|
29 |
| -fi |
30 |
| - |
31 |
| -# Exit early if samples directory doesn't exist |
32 |
| -if [ ! -d "./samples" ]; then |
33 |
| -echo "No tests run. `./samples` not found" |
34 |
| -exit 0 |
35 |
| -fi |
36 |
| - |
37 |
| -# Disable buffering, so that the logs stream through. |
38 |
| -export PYTHONUNBUFFERED=1 |
39 |
| - |
40 |
| -# Debug: show build environment |
41 |
| -env | grep KOKORO |
42 |
| - |
43 |
| -# Install nox |
44 |
| -python3.6 -m pip install --upgrade --quiet nox |
45 |
| - |
46 |
| -# Use secrets acessor service account to get secrets |
47 |
| -if [[ -f "${KOKORO_GFILE_DIR}/secrets_viewer_service_account.json" ]]; then |
48 |
| -gcloud auth activate-service-account \ |
49 |
| ---key-file="${KOKORO_GFILE_DIR}/secrets_viewer_service_account.json" \ |
50 |
| ---project="cloud-devrel-kokoro-resources" |
51 |
| -fi |
52 |
| - |
53 |
| -# This script will create 3 files: |
54 |
| -# - testing/test-env.sh |
55 |
| -# - testing/service-account.json |
56 |
| -# - testing/client-secrets.json |
57 |
| -./scripts/decrypt-secrets.sh |
58 |
| - |
59 |
| -source ./testing/test-env.sh |
60 |
| -export GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/testing/service-account.json |
61 |
| - |
62 |
| -# For cloud-run session, we activate the service account for gcloud sdk. |
63 |
| -gcloud auth activate-service-account \ |
64 |
| ---key-file "${GOOGLE_APPLICATION_CREDENTIALS}" |
65 |
| - |
66 |
| -export GOOGLE_CLIENT_SECRETS=$(pwd)/testing/client-secrets.json |
67 |
| - |
68 |
| -echo -e "\n******************** TESTING PROJECTS ********************" |
69 |
| - |
70 |
| -# Switch to 'fail at end' to allow all tests to complete before exiting. |
71 |
| -set +e |
72 |
| -# Use RTN to return a non-zero value if the test fails. |
73 |
| -RTN=0 |
74 |
| -ROOT=$(pwd) |
75 |
| -# Find all requirements.txt in the samples directory (may break on whitespace). |
76 |
| -for file in samples/**/requirements.txt; do |
77 |
| -cd "$ROOT" |
78 |
| -# Navigate to the project folder. |
79 |
| -file=$(dirname "$file") |
80 |
| -cd "$file" |
81 |
| - |
82 |
| -echo "------------------------------------------------------------" |
83 |
| -echo "- testing $file" |
84 |
| -echo "------------------------------------------------------------" |
85 |
| - |
86 |
| -# Use nox to execute the tests for the project. |
87 |
| -python3.6 -m nox -s "$RUN_TESTS_SESSION" |
88 |
| -EXIT=$? |
89 |
| - |
90 |
| -# If this is a periodic build, send the test log to the FlakyBot. |
91 |
| -# See https://.com/googleapis/repo-automation-bots/tree/master/packages/flakybot. |
92 |
| -if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"periodic"* ]]; then |
93 |
| -chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot |
94 |
| -$KOKORO_GFILE_DIR/linux_amd64/flakybot |
| 37 | +echo "The current head is: " |
| 38 | +echo $(git rev-parse --verify HEAD) |
| 39 | +echo "--- IMPORTANT IMPORTANT IMPORTANT ---" |
| 40 | +# move back the test runner implementation if there's no file. |
| 41 | +if [ ! -f .kokoro/test-samples-impl.sh ]; then |
| 42 | +cp "${TMPDIR}/test-samples-impl.sh" .kokoro/test-samples-impl.sh |
95 | 43 | fi
|
| 44 | +fi |
96 | 45 |
|
97 |
| -if [[ $EXIT -ne 0 ]]; then |
98 |
| -RTN=1 |
99 |
| -echo -e "\n Testing failed: Nox returned a non-zero exit code. \n" |
100 |
| -else |
101 |
| -echo -e "\n Testing completed.\n" |
102 |
| -fi |
103 |
| - |
104 |
| -done |
105 |
| -cd "$ROOT" |
106 |
| - |
107 |
| -# Workaround for Kokoro permissions issue: delete secrets |
108 |
| -rm testing/{test-env.sh,client-secrets.json,service-account.json} |
109 |
| - |
110 |
| -exit "$RTN" |
| 46 | +exec .kokoro/test-samples-impl.sh |
0 commit comments