This repository has been archived by the owner on Jan 6, 2024. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 26
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
test: use constraints files to test lower bounds (#67)
* changes without context autosynth cannot find the source of changes triggered by earlier changes in this repository, or by version upgrades to tools such as linters. * build(node): lint system-test and test Co-authored-by: Jeffrey Rennie <rennie@google.com> Source-Author: Benjamin E. Coe <bencoe@google.com> Source-Date: Thu Mar 4 15:23:16 2021 -0800 Source-Repo: googleapis/synthtool Source-Sha: 6056faa36b3ab941a56f71eab8164e78af998844 Source-Link: googleapis/synthtool@6056faa * chore: add pre-commit-config to renovate ignore paths Disable renovate PRs on the .pre-commit-config.yaml which is templated from synthtool. https://docs.renovatebot.com/configuration-options/#ignorepaths Source-Author: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com> Source-Date: Mon Mar 15 09:05:39 2021 -0600 Source-Repo: googleapis/synthtool Source-Sha: 2c54c473779ea731128cea61a3a6c975a08a5378 Source-Link: googleapis/synthtool@2c54c47 * build(python): fail nox sessions if a python version is missing Nox's default behavior is to quietly skip if a python interpreter is missing. https://nox.thea.codes/en/stable/usage.html#failing-sessions-when-the-interpreter-is-missing Source-Author: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com> Source-Date: Tue Mar 16 13:38:02 2021 -0600 Source-Repo: googleapis/synthtool Source-Sha: eda422b90c3dde4a872a13e6b78a8f802c40d0db Source-Link: googleapis/synthtool@eda422b * chore(python): add kokoro configs for periodic builds against head This change should be non-destructive. Note for library repo maintainers: After applying this change, you can easily add (or change) periodic builds against head by adding config files in google3. See python-pubsub repo for example. Source-Author: Takashi Matsuo <tmatsuo@google.com> Source-Date: Fri Mar 19 11:17:59 2021 -0700 Source-Repo: googleapis/synthtool Source-Sha: 79c8dd7ee768292f933012d3a69a5b4676404cda Source-Link: googleapis/synthtool@79c8dd7 * chore(deps): update precommit hook pycqa/flake8 to v3.9.0 [![WhiteSource Renovate](https://app.renovatebot.com/images/banner.svg)](https://renovatebot.com) This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [pycqa/flake8](https://gitlab.com/pycqa/flake8) | repository | minor | `3.8.4` -> `3.9.0` | --- ### Release Notes <details> <summary>pycqa/flake8</summary> ### [`v3.9.0`](https://gitlab.com/pycqa/flake8/compare/3.8.4...3.9.0) [Compare Source](https://gitlab.com/pycqa/flake8/compare/3.8.4...3.9.0) </details> --- ### Renovate configuration :date: **Schedule**: At any time (no schedule defined). :vertical_traffic_light: **Automerge**: Disabled by config. Please merge this manually once you are satisfied. :recycle: **Rebasing**: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox. :no_bell: **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [WhiteSource Renovate](https://renovate.whitesourcesoftware.com). View repository job log [here](https://app.renovatebot.com/dashboard#github/googleapis/synthtool). Source-Author: WhiteSource Renovate <bot@renovateapp.com> Source-Date: Tue Mar 23 17:38:03 2021 +0100 Source-Repo: googleapis/synthtool Source-Sha: f5c5904fb0c6aa3b3730eadf4e5a4485afc65726 Source-Link: googleapis/synthtool@f5c5904 * test(python): use constraints files to check dependency lower bounds Use a constraints file when installing dependencies for system and unit tests nox sessions. https://pip.pypa.io/en/stable/user_guide/#constraints-files > Constraints files are requirements files that **only control which version of a requirement is installed, not whether it is installed or not**. Their syntax and contents is nearly identical to Requirements Files. There is one key difference: Including a package in a constraints file does not trigger installation of the package. ``` testing ├── constraints-3.10.txt ├── constraints-3.11.txt ├── constraints-3.6.txt ├── constraints-3.7.txt ├── constraints-3.8.txt └── constraints-3.9.txt ``` Going forward, one constraints file (currently 3.6) will be populated with every library requirement and extra listed in the `setup.py`. The constraints file will pin each requirement to the lower bound. This ensures that library maintainers will see test failures if they forget to update a lower bound on a dependency. See googleapis/python-bigquery#263 for an example Source-Author: Bu Sun Kim <8822365+busunkim96@users.noreply.github.com> Source-Date: Tue Mar 23 10:52:02 2021 -0600 Source-Repo: googleapis/synthtool Source-Sha: 86ed43d4f56e6404d068e62e497029018879c771 Source-Link: googleapis/synthtool@86ed43d * build(python): update docfx job to use new plugin Source-Author: Dan Lee <71398022+dandhlee@users.noreply.github.com> Source-Date: Tue Mar 30 19:36:37 2021 -0400 Source-Repo: googleapis/synthtool Source-Sha: 4501974ad08b5d693311457e2ea4ce845676e329 Source-Link: googleapis/synthtool@4501974
- Loading branch information
1 parent
3440f18
commit bd0ba40
Showing
13 changed files
with
213 additions
and
100 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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,11 @@ | ||
# Format: //devtools/kokoro/config/proto/build.proto | ||
|
||
env_vars: { | ||
key: "INSTALL_LIBRARY_FROM_SOURCE" | ||
value: "True" | ||
} | ||
|
||
env_vars: { | ||
key: "TRAMPOLINE_BUILD_FILE" | ||
value: "github/python-pubsub/.kokoro/test-samples-against-head.sh" | ||
} |
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,11 @@ | ||
# Format: //devtools/kokoro/config/proto/build.proto | ||
|
||
env_vars: { | ||
key: "INSTALL_LIBRARY_FROM_SOURCE" | ||
value: "True" | ||
} | ||
|
||
env_vars: { | ||
key: "TRAMPOLINE_BUILD_FILE" | ||
value: "github/python-pubsub/.kokoro/test-samples-against-head.sh" | ||
} |
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,11 @@ | ||
# Format: //devtools/kokoro/config/proto/build.proto | ||
|
||
env_vars: { | ||
key: "INSTALL_LIBRARY_FROM_SOURCE" | ||
value: "True" | ||
} | ||
|
||
env_vars: { | ||
key: "TRAMPOLINE_BUILD_FILE" | ||
value: "github/python-pubsub/.kokoro/test-samples-against-head.sh" | ||
} |
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,28 @@ | ||
#!/bin/bash | ||
# Copyright 2020 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 | ||
# | ||
# https://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. | ||
|
||
# A customized test runner for samples. | ||
# | ||
# For periodic builds, you can specify this file for testing against head. | ||
|
||
# `-e` enables the script to automatically fail when a command fails | ||
# `-o pipefail` sets the exit code to the rightmost comment to exit with a non-zero | ||
set -eo pipefail | ||
# Enables `**` to include files nested inside sub-folders | ||
shopt -s globstar | ||
|
||
cd github/python-dialogflow-cx | ||
|
||
exec .kokoro/test-samples-impl.sh |
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,102 @@ | ||
#!/bin/bash | ||
# Copyright 2021 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 | ||
# | ||
# https://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. | ||
|
||
|
||
# `-e` enables the script to automatically fail when a command fails | ||
# `-o pipefail` sets the exit code to the rightmost comment to exit with a non-zero | ||
set -eo pipefail | ||
# Enables `**` to include files nested inside sub-folders | ||
shopt -s globstar | ||
|
||
# Exit early if samples directory doesn't exist | ||
if [ ! -d "./samples" ]; then | ||
echo "No tests run. `./samples` not found" | ||
exit 0 | ||
fi | ||
|
||
# Disable buffering, so that the logs stream through. | ||
export PYTHONUNBUFFERED=1 | ||
|
||
# Debug: show build environment | ||
env | grep KOKORO | ||
|
||
# Install nox | ||
python3.6 -m pip install --upgrade --quiet nox | ||
|
||
# Use secrets acessor service account to get secrets | ||
if [[ -f "${KOKORO_GFILE_DIR}/secrets_viewer_service_account.json" ]]; then | ||
gcloud auth activate-service-account \ | ||
--key-file="${KOKORO_GFILE_DIR}/secrets_viewer_service_account.json" \ | ||
--project="cloud-devrel-kokoro-resources" | ||
fi | ||
|
||
# This script will create 3 files: | ||
# - testing/test-env.sh | ||
# - testing/service-account.json | ||
# - testing/client-secrets.json | ||
./scripts/decrypt-secrets.sh | ||
|
||
source ./testing/test-env.sh | ||
export GOOGLE_APPLICATION_CREDENTIALS=$(pwd)/testing/service-account.json | ||
|
||
# For cloud-run session, we activate the service account for gcloud sdk. | ||
gcloud auth activate-service-account \ | ||
--key-file "${GOOGLE_APPLICATION_CREDENTIALS}" | ||
|
||
export GOOGLE_CLIENT_SECRETS=$(pwd)/testing/client-secrets.json | ||
|
||
echo -e "\n******************** TESTING PROJECTS ********************" | ||
|
||
# Switch to 'fail at end' to allow all tests to complete before exiting. | ||
set +e | ||
# Use RTN to return a non-zero value if the test fails. | ||
RTN=0 | ||
ROOT=$(pwd) | ||
# Find all requirements.txt in the samples directory (may break on whitespace). | ||
for file in samples/**/requirements.txt; do | ||
cd "$ROOT" | ||
# Navigate to the project folder. | ||
file=$(dirname "$file") | ||
cd "$file" | ||
|
||
echo "------------------------------------------------------------" | ||
echo "- testing $file" | ||
echo "------------------------------------------------------------" | ||
|
||
# Use nox to execute the tests for the project. | ||
python3.6 -m nox -s "$RUN_TESTS_SESSION" | ||
EXIT=$? | ||
|
||
# If this is a periodic build, send the test log to the FlakyBot. | ||
# See https://github.com/googleapis/repo-automation-bots/tree/master/packages/flakybot. | ||
if [[ $KOKORO_BUILD_ARTIFACTS_SUBDIR = *"periodic"* ]]; then | ||
chmod +x $KOKORO_GFILE_DIR/linux_amd64/flakybot | ||
$KOKORO_GFILE_DIR/linux_amd64/flakybot | ||
fi | ||
|
||
if [[ $EXIT -ne 0 ]]; then | ||
RTN=1 | ||
echo -e "\n Testing failed: Nox returned a non-zero exit code. \n" | ||
else | ||
echo -e "\n Testing completed.\n" | ||
fi | ||
|
||
done | ||
cd "$ROOT" | ||
|
||
# Workaround for Kokoro permissions issue: delete secrets | ||
rm testing/{test-env.sh,client-secrets.json,service-account.json} | ||
|
||
exit "$RTN" |
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 |
---|---|---|
|
@@ -12,6 +12,6 @@ repos: | |
hooks: | ||
- id: black | ||
- repo: https://gitlab.com/pycqa/flake8 | ||
rev: 3.8.4 | ||
rev: 3.9.0 | ||
hooks: | ||
- id: flake8 |
Binary file not shown.
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
Oops, something went wrong.