diff --git a/integration.cloudbuild.yaml b/integration.cloudbuild.yaml new file mode 100644 index 0000000..e72810b --- /dev/null +++ b/integration.cloudbuild.yaml @@ -0,0 +1,85 @@ +# 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. + +steps: + - id: Install dependencies + name: python:${_VERSION} + entrypoint: pip + args: ["install", "--user", "-r", "requirements.txt"] + + - id: Install module (and test requirements) + name: python:${_VERSION} + entrypoint: pip + args: ["install", ".[test]", "--user"] + + - id: proxy-install + name: alpine:3.10 + entrypoint: sh + args: + - -c + - | + wget -O /workspace/alloydb-auth-proxy https://storage.googleapis.com/alloydb-auth-proxy/v1.11.0/alloydb-auth-proxy.linux.386 + chmod +x /workspace/alloydb-auth-proxy + + - id: Run integration tests + name: python:${_VERSION} + entrypoint: /bin/bash + args: + - "-c" + - | + /workspace/alloydb-auth-proxy --port ${_DATABASE_PORT} ${_INSTANCE_CONNECTION_NAME} & sleep 2; + python -m pytest --cov=llama_index_alloydb_pg --cov-config=.coveragerc tests/ + env: + - "PROJECT_ID=$PROJECT_ID" + - "INSTANCE_ID=$_INSTANCE_ID" + - "CLUSTER_ID=$_CLUSTER_ID" + - "DATABASE_ID=$_DATABASE_ID" + - "REGION=$_REGION" + - "OMNI_DATABASE_ID=$_OMNI_DATABASE_ID" + - "IP_ADDRESS=$_IP_ADDRESS" + secretEnv: + [ + "DB_USER", + "DB_PASSWORD", + "OMNI_HOST", + "OMNI_USER", + "OMNI_PASSWORD", + "IAM_ACCOUNT", + ] + +availableSecrets: + secretManager: + - versionName: projects/$PROJECT_ID/secrets/DB_USER/versions/1 + env: "DB_USER" + - versionName: projects/$PROJECT_ID/secrets/DB_PASSWORD/versions/1 + env: "DB_PASSWORD" + - versionName: projects/$PROJECT_ID/secrets/OMNI_HOST/versions/1 + env: "OMNI_HOST" + - versionName: projects/$PROJECT_ID/secrets/OMNI_USER/versions/1 + env: "OMNI_USER" + - versionName: projects/$PROJECT_ID/secrets/OMNI_PASSWORD/versions/1 + env: "OMNI_PASSWORD" + - versionName: projects/$PROJECT_ID/secrets/service_account_email/versions/1 + env: "IAM_ACCOUNT" + +substitutions: + _VERSION: "3.9" + _INSTANCE_CONNECTION_NAME: projects/${PROJECT_ID}/locations/${_REGION}/clusters/${_CLUSTER_ID}/instances/${_INSTANCE_ID} + _DATABASE_PORT: "5432" + _IP_ADDRESS: "127.0.0.1" + +options: + pool: + name: "projects/llamaindex-alloydb-testing/locations/us-central1/workerPools/my-pool" + dynamicSubstitutions: true \ No newline at end of file