| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 69424f2 commit 1ea6624
33 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,8 @@ | |||
| 1 | + # Code owners file. | ||
| 2 | + # This file controls who is tagged for review for any given pull request. | ||
| 3 | + # | ||
| 4 | + # For syntax help see: | ||
| 5 | + # https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners#codeowners-syntax | ||
| 6 | + | ||
| 7 | + | ||
| 8 | + /samples/**/*.py @bradmiro @googleapis/python-samples-owners | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -46,6 +46,7 @@ pip-log.txt | |||
| 46 | 46 | # Built documentation | |
| 47 | 47 | docs/_build | |
| 48 | 48 | bigquery/docs/generated | |
| 49 | + docs.metadata | ||
| 49 | 50 | ||
| 50 | 51 | # Virtual environment | |
| 51 | 52 | env/ | |
@@ -57,4 +58,4 @@ system_tests/local_test_setup | |||
| 57 | 58 | ||
| 58 | 59 | # Make sure a generated file isn't accidentally committed. | |
| 59 | 60 | pylintrc | |
| 60 | - pylintrc.test | ||
| 61 | + pylintrc.test | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -36,4 +36,10 @@ python3.6 -m pip uninstall --yes --quiet nox-automation | |||
| 36 | 36 | python3.6 -m pip install --upgrade --quiet nox | |
| 37 | 37 | python3.6 -m nox --version | |
| 38 | 38 | ||
| 39 | - python3.6 -m nox | ||
| 39 | + # If NOX_SESSION is set, it only runs the specified session, | ||
| 40 | + # otherwise run all the sessions. | ||
| 41 | + if [[ -n "${NOX_SESSION:-}" ]]; then | ||
| 42 | + python3.6 -m nox -s "${NOX_SESSION:-}" | ||
| 43 | + else | ||
| 44 | + python3.6 -m nox | ||
| 45 | + fi | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,98 @@ | |||
| 1 | + # Copyright 2020 Google LLC | ||
| 2 | + # | ||
| 3 | + # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 4 | + # you may not use this file except in compliance with the License. | ||
| 5 | + # You may obtain a copy of the License at | ||
| 6 | + # | ||
| 7 | + # http://www.apache.org/licenses/LICENSE-2.0 | ||
| 8 | + # | ||
| 9 | + # Unless required by applicable law or agreed to in writing, software | ||
| 10 | + # distributed under the License is distributed on an "AS IS" BASIS, | ||
| 11 | + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 12 | + # See the License for the specific language governing permissions and | ||
| 13 | + # limitations under the License. | ||
| 14 | + | ||
| 15 | + from ubuntu:20.04 | ||
| 16 | + | ||
| 17 | + ENV DEBIAN_FRONTEND noninteractive | ||
| 18 | + | ||
| 19 | + # Ensure local Python is preferred over distribution Python. | ||
| 20 | + ENV PATH /usr/local/bin:$PATH | ||
| 21 | + | ||
| 22 | + # Install dependencies. | ||
| 23 | + RUN apt-get update \ | ||
| 24 | + && apt-get install -y --no-install-recommends \ | ||
| 25 | + apt-transport-https \ | ||
| 26 | + build-essential \ | ||
| 27 | + ca-certificates \ | ||
| 28 | + curl \ | ||
| 29 | + dirmngr \ | ||
| 30 | + git \ | ||
| 31 | + gpg-agent \ | ||
| 32 | + graphviz \ | ||
| 33 | + libbz2-dev \ | ||
| 34 | + libdb5.3-dev \ | ||
| 35 | + libexpat1-dev \ | ||
| 36 | + libffi-dev \ | ||
| 37 | + liblzma-dev \ | ||
| 38 | + libreadline-dev \ | ||
| 39 | + libsnappy-dev \ | ||
| 40 | + libssl-dev \ | ||
| 41 | + libsqlite3-dev \ | ||
| 42 | + portaudio19-dev \ | ||
| 43 | + redis-server \ | ||
| 44 | + software-properties-common \ | ||
| 45 | + ssh \ | ||
| 46 | + sudo \ | ||
| 47 | + tcl \ | ||
| 48 | + tcl-dev \ | ||
| 49 | + tk \ | ||
| 50 | + tk-dev \ | ||
| 51 | + uuid-dev \ | ||
| 52 | + wget \ | ||
| 53 | + zlib1g-dev \ | ||
| 54 | + && add-apt-repository universe \ | ||
| 55 | + && apt-get update \ | ||
| 56 | + && apt-get -y install jq \ | ||
| 57 | + && apt-get clean autoclean \ | ||
| 58 | + && apt-get autoremove -y \ | ||
| 59 | + && rm -rf /var/lib/apt/lists/* \ | ||
| 60 | + && rm -f /var/cache/apt/archives/*.deb | ||
| 61 | + | ||
| 62 | + | ||
| 63 | + COPY fetch_gpg_keys.sh /tmp | ||
| 64 | + # Install the desired versions of Python. | ||
| 65 | + RUN set -ex \ | ||
| 66 | + && export GNUPGHOME="$(mktemp -d)" \ | ||
| 67 | + && echo "disable-ipv6" >> "${GNUPGHOME}/dirmngr.conf" \ | ||
| 68 | + && /tmp/fetch_gpg_keys.sh \ | ||
| 69 | + && for PYTHON_VERSION in 3.7.8 3.8.5; do \ | ||
| 70 | + wget --no-check-certificate -O python-${PYTHON_VERSION}.tar.xz "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz" \ | ||
| 71 | + && wget --no-check-certificate -O python-${PYTHON_VERSION}.tar.xz.asc "https://www.python.org/ftp/python/${PYTHON_VERSION%%[a-z]*}/Python-$PYTHON_VERSION.tar.xz.asc" \ | ||
| 72 | + && gpg --batch --verify python-${PYTHON_VERSION}.tar.xz.asc python-${PYTHON_VERSION}.tar.xz \ | ||
| 73 | + && rm -r python-${PYTHON_VERSION}.tar.xz.asc \ | ||
| 74 | + && mkdir -p /usr/src/python-${PYTHON_VERSION} \ | ||
| 75 | + && tar -xJC /usr/src/python-${PYTHON_VERSION} --strip-components=1 -f python-${PYTHON_VERSION}.tar.xz \ | ||
| 76 | + && rm python-${PYTHON_VERSION}.tar.xz \ | ||
| 77 | + && cd /usr/src/python-${PYTHON_VERSION} \ | ||
| 78 | + && ./configure \ | ||
| 79 | + --enable-shared \ | ||
| 80 | + # This works only on Python 2.7 and throws a warning on every other | ||
| 81 | + # version, but seems otherwise harmless. | ||
| 82 | + --enable-unicode=ucs4 \ | ||
| 83 | + --with-system-ffi \ | ||
| 84 | + --without-ensurepip \ | ||
| 85 | + && make -j$(nproc) \ | ||
| 86 | + && make install \ | ||
| 87 | + && ldconfig \ | ||
| 88 | + ; done \ | ||
| 89 | + && rm -rf "${GNUPGHOME}" \ | ||
| 90 | + && rm -rf /usr/src/python* \ | ||
| 91 | + && rm -rf ~/.cache/ | ||
| 92 | + | ||
| 93 | + RUN wget -O /tmp/get-pip.py 'https://bootstrap.pypa.io/get-pip.py' \ | ||
| 94 | + && python3.7 /tmp/get-pip.py \ | ||
| 95 | + && python3.8 /tmp/get-pip.py \ | ||
| 96 | + && rm /tmp/get-pip.py | ||
| 97 | + | ||
| 98 | + CMD ["python3.7"] | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,45 @@ | |||
| 1 | + #!/bin/bash | ||
| 2 | + # Copyright 2020 Google LLC | ||
| 3 | + # | ||
| 4 | + # Licensed under the Apache License, Version 2.0 (the "License"); | ||
| 5 | + # you may not use this file except in compliance with the License. | ||
| 6 | + # You may obtain a copy of the License at | ||
| 7 | + # | ||
| 8 | + # http://www.apache.org/licenses/LICENSE-2.0 | ||
| 9 | + # | ||
| 10 | + # Unless required by applicable law or agreed to in writing, software | ||
| 11 | + # distributed under the License is distributed on an "AS IS" BASIS, | ||
| 12 | + # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| 13 | + # See the License for the specific language governing permissions and | ||
| 14 | + # limitations under the License. | ||
| 15 | + | ||
| 16 | + # A script to fetch gpg keys with retry. | ||
| 17 | + # Avoid jinja parsing the file. | ||
| 18 | + # | ||
| 19 | + | ||
| 20 | + function retry { | ||
| 21 | + if [[ "${#}" -le 1 ]]; then | ||
| 22 | + echo "Usage: ${0} retry_count commands.." | ||
| 23 | + exit 1 | ||
| 24 | + fi | ||
| 25 | + local retries=${1} | ||
| 26 | + local command="${@:2}" | ||
| 27 | + until [[ "${retries}" -le 0 ]]; do | ||
| 28 | + $command && return 0 | ||
| 29 | + if [[ $? -ne 0 ]]; then | ||
| 30 | + echo "command failed, retrying" | ||
| 31 | + ((retries--)) | ||
| 32 | + fi | ||
| 33 | + done | ||
| 34 | + return 1 | ||
| 35 | + } | ||
| 36 | + | ||
| 37 | + # 3.6.9, 3.7.5 (Ned Deily) | ||
| 38 | + retry 3 gpg --keyserver ha.pool.sks-keyservers.net --recv-keys \ | ||
| 39 | + 0D96DF4D4110E5C43FBFB17F2D347EA6AA65421D | ||
| 40 | + | ||
| 41 | + # 3.8.0 (Łukasz Langa) | ||
| 42 | + retry 3 gpg --keyserver ha.pool.sks-keyservers.net --recv-keys \ | ||
| 43 | + E3FF2839C048B25C084DEBE9B26995E310250568 | ||
| 44 | + | ||
| 45 | + # | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -11,12 +11,12 @@ action { | |||
| 11 | 11 | gfile_resources: "/bigstore/cloud-devrel-kokoro-resources/trampoline" | |
| 12 | 12 | ||
| 13 | 13 | # Use the trampoline script to run in docker. | |
| 14 | - build_file: "python-dataproc/.kokoro/trampoline.sh" | ||
| 14 | + build_file: "python-dataproc/.kokoro/trampoline_v2.sh" | ||
| 15 | 15 | ||
| 16 | 16 | # Configure the docker image for kokoro-trampoline. | |
| 17 | 17 | env_vars: { | |
| 18 | 18 | key: "TRAMPOLINE_IMAGE" | |
| 19 | - value: "gcr.io/cloud-devrel-kokoro-resources/python-multi" | ||
| 19 | + value: "gcr.io/cloud-devrel-kokoro-resources/python-lib-docs" | ||
| 20 | 20 | } | |
| 21 | 21 | env_vars: { | |
| 22 | 22 | key: "TRAMPOLINE_BUILD_FILE" | |
@@ -28,6 +28,23 @@ env_vars: { | |||
| 28 | 28 | value: "docs-staging" | |
| 29 | 29 | } | |
| 30 | 30 | ||
| 31 | + env_vars: { | ||
| 32 | + key: "V2_STAGING_BUCKET" | ||
| 33 | + value: "docs-staging-v2-staging" | ||
| 34 | + } | ||
| 35 | + | ||
| 36 | + # It will upload the docker image after successful builds. | ||
| 37 | + env_vars: { | ||
| 38 | + key: "TRAMPOLINE_IMAGE_UPLOAD" | ||
| 39 | + value: "true" | ||
| 40 | + } | ||
| 41 | + | ||
| 42 | + # It will always build the docker image. | ||
| 43 | + env_vars: { | ||
| 44 | + key: "TRAMPOLINE_DOCKERFILE" | ||
| 45 | + value: ".kokoro/docker/docs/Dockerfile" | ||
| 46 | + } | ||
| 47 | + | ||
| 31 | 48 | # Fetch the token needed for reporting release status to GitHub | |
| 32 | 49 | before_action { | |
| 33 | 50 | fetch_keystore { | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -0,0 +1,17 @@ | |||
| 1 | + # Format: //devtools/kokoro/config/proto/build.proto | ||
| 2 | + | ||
| 3 | + env_vars: { | ||
| 4 | + key: "STAGING_BUCKET" | ||
| 5 | + value: "gcloud-python-test" | ||
| 6 | + } | ||
| 7 | + | ||
| 8 | + env_vars: { | ||
| 9 | + key: "V2_STAGING_BUCKET" | ||
| 10 | + value: "gcloud-python-test" | ||
| 11 | + } | ||
| 12 | + | ||
| 13 | + # We only upload the image in the main `docs` build. | ||
| 14 | + env_vars: { | ||
| 15 | + key: "TRAMPOLINE_IMAGE_UPLOAD" | ||
| 16 | + value: "false" | ||
| 17 | + } | ||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -18,26 +18,16 @@ set -eo pipefail | |||
| 18 | 18 | # Disable buffering, so that the logs stream through. | |
| 19 | 19 | export PYTHONUNBUFFERED=1 | |
| 20 | 20 | ||
| 21 | - cd github/python-dataproc | ||
| 22 | - | ||
| 23 | - # Remove old nox | ||
| 24 | - python3.6 -m pip uninstall --yes --quiet nox-automation | ||
| 21 | + export PATH="${HOME}/.local/bin:${PATH}" | ||
| 25 | 22 | ||
| 26 | 23 | # Install nox | |
| 27 | - python3.6 -m pip install --upgrade --quiet nox | ||
| 28 | - python3.6 -m nox --version | ||
| 24 | + python3 -m pip install --user --upgrade --quiet nox | ||
| 25 | + python3 -m nox --version | ||
| 29 | 26 | ||
| 30 | 27 | # build docs | |
| 31 | 28 | nox -s docs | |
| 32 | 29 | ||
| 33 | - python3 -m pip install gcp-docuploader | ||
| 34 | - | ||
| 35 | - # install a json parser | ||
| 36 | - sudo apt-get update | ||
| 37 | - sudo apt-get -y install software-properties-common | ||
| 38 | - sudo add-apt-repository universe | ||
| 39 | - sudo apt-get update | ||
| 40 | - sudo apt-get -y install jq | ||
| 30 | + python3 -m pip install --user gcp-docuploader | ||
| 41 | 31 | ||
| 42 | 32 | # create metadata | |
| 43 | 33 | python3 -m docuploader create-metadata \ | |
@@ -52,4 +42,23 @@ python3 -m docuploader create-metadata \ | |||
| 52 | 42 | cat docs.metadata | |
| 53 | 43 | ||
| 54 | 44 | # upload docs | |
| 55 | - python3 -m docuploader upload docs/_build/html --metadata-file docs.metadata --staging-bucket docs-staging | ||
| 45 | + python3 -m docuploader upload docs/_build/html --metadata-file docs.metadata --staging-bucket "${STAGING_BUCKET}" | ||
| 46 | + | ||
| 47 | + | ||
| 48 | + # docfx yaml files | ||
| 49 | + nox -s docfx | ||
| 50 | + | ||
| 51 | + # create metadata. | ||
| 52 | + python3 -m docuploader create-metadata \ | ||
| 53 | + --name=$(jq --raw-output '.name // empty' .repo-metadata.json) \ | ||
| 54 | + --version=$(python3 setup.py --version) \ | ||
| 55 | + --language=$(jq --raw-output '.language // empty' .repo-metadata.json) \ | ||
| 56 | + --distribution-name=$(python3 setup.py --name) \ | ||
| 57 | + --product-page=$(jq --raw-output '.product_documentation // empty' .repo-metadata.json) \ | ||
| 58 | + --github-repository=$(jq --raw-output '.repo // empty' .repo-metadata.json) \ | ||
| 59 | + --issue-tracker=$(jq --raw-output '.issue_tracker // empty' .repo-metadata.json) | ||
| 60 | + | ||
| 61 | + cat docs.metadata | ||
| 62 | + | ||
| 63 | + # upload docs | ||
| 64 | + python3 -m docuploader upload docs/_build/html/docfx_yaml --metadata-file docs.metadata --destination-prefix docfx --staging-bucket "${V2_STAGING_BUCKET}" | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments