Skip to content

Merge pull request #129 from datakind/ModelCardEndpoint

8f2f06a
Select commit
Loading
Failed to load commit list.
Merged

model cards optimization #130

Merge pull request #129 from datakind/ModelCardEndpoint
8f2f06a
Select commit
Loading
Failed to load commit list.
Google Cloud Build / dev-webapp (dev-sst-02) succeeded Jul 14, 2025 in 4m 15s

Summary

Build Information

Trigger dev-webapp
Build 3b7c81e1-b87f-44c3-9413-e645ae2b750e
Start 2025-07-14T02:58:15-07:00
Duration 4m12.463s
Status SUCCESS

Steps

Step Status Duration
gcr.io/cloud-builders/docker SUCCESS 1m52.686s
gcr.io/cloud-builders/docker SUCCESS 1m7.837s
gcr.io/cloud-builders/docker SUCCESS 3.291s
gcr.io/cloud-builders/gcloud SUCCESS 1m5.163s

Details


starting build "3b7c81e1-b87f-44c3-9413-e645ae2b750e"

FETCHSOURCE
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
Initialized empty Git repository in /workspace/.git/
From https://github.com/datakind/sst-app-api
 * branch            8f2f06a9bc35d5099c05410e637380c34d7136f0 -> FETCH_HEAD
HEAD is now at 8f2f06a Merge pull request #129 from datakind/ModelCardEndpoint
GitCommit:
8f2f06a9bc35d5099c05410e637380c34d7136f0
BUILD
Starting Step #0
Step #0: Already have image (with digest): gcr.io/cloud-builders/docker
Step #0: Sending build context to Docker daemon   1.42MB

Step #0: Step 1/14 : FROM python:3.10-slim-bookworm AS builder
Step #0: 3.10-slim-bookworm: Pulling from library/python
Step #0: 3da95a905ed5: Already exists
Step #0: 0ebcc011f0ec: Pulling fs layer
Step #0: 92d63ec5cbeb: Pulling fs layer
Step #0: 64b78282ca88: Pulling fs layer
Step #0: 0ebcc011f0ec: Verifying Checksum
Step #0: 0ebcc011f0ec: Download complete
Step #0: 64b78282ca88: Verifying Checksum
Step #0: 64b78282ca88: Download complete
Step #0: 92d63ec5cbeb: Verifying Checksum
Step #0: 92d63ec5cbeb: Download complete
Step #0: 0ebcc011f0ec: Pull complete
Step #0: 92d63ec5cbeb: Pull complete
Step #0: 64b78282ca88: Pull complete
Step #0: Digest: sha256:9dd6774a1276178f94b0cc1fb1f0edd980825d0ea7634847af9940b1b6273c13
Step #0: Status: Downloaded newer image for python:3.10-slim-bookworm
Step #0:  ---> 563dffbdc425
Step #0: Step 2/14 : COPY --from=ghcr.io/astral-sh/uv:0.5.30 /uv /uvx /bin/
Step #0: 0.5.30: Pulling from astral-sh/uv
Step #0: 110868002cfe: Pulling fs layer
Step #0: 20346dd24510: Pulling fs layer
Step #0: 20346dd24510: Verifying Checksum
Step #0: 20346dd24510: Download complete
Step #0: 110868002cfe: Verifying Checksum
Step #0: 110868002cfe: Download complete
Step #0: 110868002cfe: Pull complete
Step #0: 20346dd24510: Pull complete
Step #0: Digest: sha256:bb74263127d6451222fe7f71b330edfb189ab1c98d7898df2401fbf4f272d9b9
Step #0: Status: Downloaded newer image for ghcr.io/astral-sh/uv:0.5.30
Step #0:  ---> e355e7a041ea
Step #0: Step 3/14 : ENV UV_COMPILE_BYTECODE=1
Step #0:  ---> Running in a9d9d40a5cef
Step #0: Removing intermediate container a9d9d40a5cef
Step #0:  ---> e5185869b6c3
Step #0: Step 4/14 : ENV UV_NO_CACHE=1
Step #0:  ---> Running in 1ab219137847
Step #0: Removing intermediate container 1ab219137847
Step #0:  ---> fbe8e3435c71
Step #0: Step 5/14 : WORKDIR /app
Step #0:  ---> Running in 54cbc08d69d6
Step #0: Removing intermediate container 54cbc08d69d6
Step #0:  ---> 6a96b5b9c04a
Step #0: Step 6/14 : ADD uv.lock pyproject.toml /app/
Step #0:  ---> 12563bd13a78
Step #0: Step 7/14 : RUN uv sync --frozen --no-install-project
Step #0:  ---> Running in c08e8501bbf5
Step #0: �[91mUsing CPython �[0m�[91m3.10.18 interpreter at: �[0m�[91m/usr/local/bin/python3
Step #0: �[0m�[91mCreating virtual environment at: .venv
Step #0: �[0m�[91mDownloading babel (9.1MiB)
Step #0: �[0m�[91mDownloading�[0m�[91m jedi�[0m�[91m �[0m�[91m(1.5MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading mlflow-skinny (1.8MiB)
Step #0: �[0m�[91mDownloading scipy (35.9MiB)
Step #0: �[0m�[91mDownloading matplotlib (8.2MiB)
Step #0: �[0m�[91mDownloading lz4 �[0m�[91m(1.2MiB)
Step #0: �[0m�[91mDownloading cryptography (3.8MiB)
Step #0: �[0m�[91mDownloading scikit-learn (12.3MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading pygments (1.1MiB)
Step #0: �[0m�[91mDownloading mlflow (23.5MiB)
Step #0: �[0m�[91mDownloading jupyterlab (11.1MiB)
Step #0: �[0m�[91mDownloading pillow (6.3MiB)
Step #0: �[0m�[91mDownloading setuptools (1.2MiB)
Step #0: �[0m�[91mDownloading numpy (15.7MiB)
Step #0: �[0m�[91mDownloading �[0m�[91mpyarrow (40.3MiB)
Step #0: �[0m�[91mDownloading kiwisolver (1.6MiB)
Step #0: �[0m�[91mDownloading pandas�[0m�[91m �[0m�[91m(12.5MiB)
Step #0: �[0m�[91mDownloading uvloop (3.6MiB)
Step #0: �[0m�[91mDownloading black (1.7MiB)
Step #0: �[0m�[91mDownloading pydantic-core (2.0MiB)
Step #0: �[0m�[91mDownloading ruff (10.7MiB)
Step #0: �[0m�[91mDownloading mypy (12.0MiB)
Step #0: �[0m�[91mDownloading sqlalchemy (2.9MiB)
Step #0: Downloading fonttools �[0m�[91m(4.5MiB)
Step #0: �[0m�[91mDownloading aiohttp (1.5MiB)
Step #0: �[0m�[91mDownloading debugpy (3.4MiB)
Step #0: �[0m�[91m Downloaded lz4
Step #0: �[0m�[91m Downloaded pygments
Step #0: �[0m�[91m Downloaded kiwisolver
Step #0: �[0m�[91m Downloaded aiohttp
Step #0: �[0m�[91m Downloaded black
Step #0: �[0m�[91m Downloaded pydantic-core
Step #0: �[0m�[91m   Building thrift==0.20.0
Step #0: �[0m�[91m Downloaded setuptools
Step #0: �[0m�[91m Downloaded sqlalchemy
Step #0: �[0m�[91m Downloaded uvloop
Step #0: �[0m�[91m Downloaded debugpy
Step #0: �[0m�[91m Downloaded mlflow-skinny
Step #0: �[0m�[91m Downloaded cryptography
Step #0: �[0m�[91m Downloaded fonttools
Step #0: �[0m�[91m Downloaded pillow
Step #0: �[0m�[91m Downloaded matplotlib
Step #0: �[0m�[91m Downloaded babel
Step #0: �[0m�[91m Downloaded ruff
Step #0: �[0m�[91m Downloaded jupyterlab
Step #0: �[0m�[91m Downloaded numpy
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mscikit-learn�[0m�[91m
Step #0: �[0m�[91m Downloaded pandas
Step #0: �[0m�[91m      Built thrift==0.20.0
Step #0: �[0m�[91m Downloaded jedi
Step #0: �[0m�[91m Downloaded mlflow
Step #0: �[0m�[91m Downloaded pyarrow
Step #0: �[0m�[91m Downloaded mypy
Step #0: �[0m�[91m Downloaded scipy
Step #0: �[0m�[91mPrepared 219 packages in 10.14s
Step #0: �[0m�[91mInstalled 219 packages in 2.00s
Step #0: �[0m�[91mBytecode compiled 12022 files in 27.72s
Step #0: �[0m�[91m + aiofiles==24.1.0
Step #0:  + aiohappyeyeballs==2.4.4
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91maiohttp�[0m�[91m==�[0m�[91m3.11.10�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91maiosignal�[0m�[91m==�[0m�[91m1.3.1�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91malembic�[0m�[91m==�[0m�[91m1.16.3�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m annotated-types�[0m�[91m==�[0m�[91m0.7.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91manyio�[0m�[91m==�[0m�[91m4.7.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m argon2-cffi�[0m�[91m==�[0m�[91m23.1.0�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m argon2-cffi-bindings�[0m�[91m==�[0m�[91m21.2.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91marrow�[0m�[91m==�[0m�[91m1.3.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mastroid�[0m�[91m==�[0m�[91m3.3.6�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91masttokens�[0m�[91m==�[0m�[91m3.0.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91masync-lru�[0m�[91m==�[0m�[91m2.0.4�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m async-timeout�[0m�[91m==�[0m�[91m5.0.1�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mattrs==�[0m�[91m24.2.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mbabel�[0m�[91m==�[0m�[91m2.16.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ bcrypt�[0m�[91m==�[0m�[91m4.2.0
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m beautifulsoup4�[0m�[91m==4.12.3�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mblack�[0m�[91m==25.1.0
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91mbleach�[0m�[91m==6.2.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91mblinker�[0m�[91m==1.9.0�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mcachetools�[0m�[91m==�[0m�[91m5.5.0�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mcertifi�[0m�[91m==�[0m�[91m2024.8.30�[0m�[91m
Step #0:  +�[0m�[91m �[0m�[91mcffi�[0m�[91m==�[0m�[91m1.17.1�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mcharset-normalizer==�[0m�[91m3.4.0�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m click�[0m�[91m==�[0m�[91m8.1.7�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mcloud-sql-python-connector==�[0m�[91m1.14.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mcloudpickle�[0m�[91m==�[0m�[91m3.1.1�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m comm==0.2.2�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91mcontourpy�[0m�[91m==�[0m�[91m1.3.2�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mcoverage==�[0m�[91m7.6.9�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m crypto�[0m�[91m==�[0m�[91m1.4.1�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mcryptography�[0m�[91m==�[0m�[91m43.0.3
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mcycler==0.12.1�[0m�[91m
Step #0:  + databricks-sdk==0.38.0
Step #0:  + databricks-sql-connector==4.0.3
Step #0:  + debugpy==1.8.9
Step #0:  + decorator==5.1.1
Step #0:  + defusedxml==0.7.1
Step #0:  + dill==0.3.9
Step #0:  + dnspython==2.7.0�[0m�[91m
Step #0:  + docker�[0m�[91m==7.1.0
Step #0:  + email-validator==2.2.0
Step #0:  + et-xmlfile==2.0.0�[0m�[91m
Step #0:  + exceptiongroup==1.2.2
Step #0:  + executing==2.1.0
Step #0:  + fastapi==0.115.4
Step #0:  + fastapi-cli==0.0.5
Step #0:  + fastjsonschema==2.21.1
Step #0:  + flask==3.1.1�[0m�[91m
Step #0:  + fonttools==4.58.5
Step #0:  + fqdn==1.5.1
Step #0:  + frozenlist==1.5.0
Step #0:  + fuzzywuzzy==0.18.0
Step #0:  + gitdb==4.0.12�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mgitpython==3.1.44
Step #0:  + google-api-core==2.22.0
Step #0:  + google-auth==2.36.0
Step #0:  + google-cloud==0.34.0
Step #0:  + google-cloud-core==2.4.1
Step #0:  + google-cloud-storage==2.18.2
Step #0:  + google-crc32c==1.6.0
Step #0:  + �[0m�[91mgoogle-resumable-media==2.7.2�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mgoogleapis-common-protos==�[0m�[91m1.66.0�[0m�[91m
Step #0: �[0m�[91m + graphene==3.4.3
Step #0:  + graphql-core==3.2.6
Step #0:  + graphql-relay==3.2.0
Step #0:  + greenlet==3.1.1
Step #0:  + gunicorn==23.0.0
Step #0:  + h11==0.14.0
Step #0:  + httpcore==1.0.7
Step #0:  + httptools==0.6.4�[0m�[91m
Step #0:  +�[0m�[91m �[0m�[91mhttpx==�[0m�[91m0.28.1
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91midna�[0m�[91m==�[0m�[91m3.10�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m importlib-metadata==8.7.0
Step #0:  + iniconfig==2.0.0
Step #0:  + ipykernel==6.29.5
Step #0:  + ipython==8.30.0
Step #0:  + isoduration==20.11.0
Step #0:  + isort==5.13.2
Step #0:  + itsdangerous==2.2.0
Step #0:  + jedi==0.19.2
Step #0:  + jinja2==3.1.4
Step #0: �[0m�[91m + joblib==1.5.1
Step #0:  + json5�[0m�[91m==0.10.0
Step #0:  + jsonpickle�[0m�[91m==4.0.1
Step #0:  + jsonpointer==3.0.0
Step #0:  + jsonschema==4.23.0
Step #0:  + jsonschema-specifications==2024.10.1
Step #0:  + �[0m�[91mjupyter-client==8.6.3
Step #0: �[0m�[91m + jupyter-core==5.7.2
Step #0:  + jupyter-events==0.10.0
Step #0:  + jupyter-lsp==2.2.5
Step #0:  + jupyter-server==2.14.2
Step #0:  + jupyter-server-terminals==0.5.3
Step #0:  + jupyterlab==4.3.2�[0m�[91m
Step #0:  + jupyterlab-pygments==0.3.0
Step #0: �[0m�[91m + jupyterlab-server==2.27.3�[0m�[91m
Step #0:  + kiwisolver==1.4.8
Step #0:  + lz4==4.4.4
Step #0:  + mako==1.3.10
Step #0:  + markdown-it-py==3.0.0
Step #0:  + markupsafe�[0m�[91m==3.0.2
Step #0:  + matplotlib==3.10.3
Step #0: �[0m�[91m + matplotlib-inline==0.1.7
Step #0:  + mccabe==0.7.0
Step #0:  + mdurl==0.1.2�[0m�[91m
Step #0:  + mistune==3.0.2
Step #0:  + mlflow==3.1.1
Step #0:  + mlflow-skinny==3.1.1
Step #0:  + multidict�[0m�[91m==6.1.0�[0m�[91m
Step #0:  + mypy==1.13.0
Step #0:  + mypy-extensions==1.0.0
Step #0:  + naked==0.1.32
Step #0:  + nbclient==0.10.1
Step #0:  + nbconvert==7.16.4
Step #0:  + nbformat==5.10.4
Step #0:  + nest-asyncio==1.6.0
Step #0:  + notebook-shim==0.2.4
Step #0:  + numpy�[0m�[91m==2.2.4
Step #0:  + oauthlib==3.2.2
Step #0: �[0m�[91m + openpyxl==3.1.5�[0m�[91m
Step #0: �[0m�[91m + opentelemetry-api==1.34.1
Step #0:  + opentelemetry-sdk==1.34.1
Step #0:  + opentelemetry-semantic-conventions==0.55b1
Step #0:  + overrides==7.7.0
Step #0:  + packaging==�[0m�[91m24.2
Step #0:  + pandas==2.2.3
Step #0:  + pandera==0.24.0
Step #0:  + pandocfilters==1.5.1
Step #0: �[0m�[91m + paramiko�[0m�[91m==3.5.0
Step #0:  + parso==0.8.4
Step #0:  + passlib==1.7.4
Step #0:  + pathspec==0.12.1�[0m�[91m
Step #0:  + pexpect==4.9.0
Step #0:  + pillow==11.3.0
Step #0:  + platformdirs==4.3.6
Step #0:  + pluggy==1.5.0
Step #0:  + prometheus-client==0.21.1
Step #0:  + prompt-toolkit==3.0.48
Step #0:  + propcache==0.2.1
Step #0:  + proto-plus==1.25.0
Step #0:  + protobuf==5.29.1
Step #0:  + psutil==6.1.0
Step #0:  + ptyprocess==0.7.0
Step #0:  + pure-eval==0.2.3
Step #0:  + pyarrow==20.0.0
Step #0:  + pyasn1==0.6.1
Step #0:  �[0m�[91m+ pyasn1-modules==0.4.1
Step #0:  �[0m�[91m+ pycparser==2.22
Step #0:  +�[0m�[91m pydantic==2.10.3
Step #0: �[0m�[91m + pydantic-core==2.27.1
Step #0:  + �[0m�[91mpygments�[0m�[91m==2.18.0
Step #0:  + pyjwt==2.10.1
Step #0:  + pylint==3.3.2
Step #0:  + pymysql==1.1.1
Step #0:  + pynacl==1.5.0
Step #0:  + pyparsing==3.2.3
Step #0:  + pytest==8.3.4
Step #0:  + python-dateutil==2.9.0.post0�[0m�[91m
Step #0:  + python-dotenv==1.0.1�[0m�[91m
Step #0:  + python-json-logger==�[0m�[91m2.0.7
Step #0:  + python-multipart�[0m�[91m==0.0.16
Step #0:  + pytz==2025.1
Step #0:  + pyyaml==6.0.2
Step #0:  + pyzmq==26.2.0
Step #0:  + referencing==0.35.1
Step #0:  + requests==2.32.3
Step #0:  + rfc3339-validator==0.1.4�[0m�[91m
Step #0:  + rfc3986-validator==0.1.1
Step #0:  �[0m�[91m+ rich==�[0m�[91m13.9.3
Step #0:  + rpds-py==0.22.3
Step #0:  + rsa==4.9
Step #0:  + ruff==�[0m�[91m0.8.2
Step #0:  + scikit-learn==1.7.0
Step #0:  + scipy==1.15.3
Step #0:  + send2trash==1.8.3
Step #0:  + setuptools==75.6.0
Step #0:  + shellescape==�[0m�[91m3.8.1
Step #0:  + shellingham==1.5.4
Step #0:  + six==1.17.0
Step #0:  + smmap==5.0.2
Step #0:  + sniffio==1.3.1
Step #0:  + soupsieve==2.6
Step #0: �[0m�[91m + sqlalchemy==�[0m�[91m2.0.36
Step #0:  + sqlparse==0.5.3
Step #0:  + stack-data==0.6.3
Step #0:  + starlette==0.41.2
Step #0:  + �[0m�[91mstrenum�[0m�[91m==0.4.15
Step #0:  + terminado==0.18.1
Step #0:  + threadpoolctl==3.6.0
Step #0:  + thrift==0.20.0
Step #0:  + tinycss2�[0m�[91m==1.4.0
Step #0:  + �[0m�[91mtomli==2.2.1
Step #0:  + tomlkit==0.13.2
Step #0:  + tornado==6.4.2
Step #0:  + traitlets==5.14.3
Step #0:  + typeguard�[0m�[91m==4.4.2
Step #0:  + �[0m�[91mtyper==0.12.5
Step #0:  + types-paramiko==3.5.0.20240928
Step #0:  + types-python-dateutil==2.9.0.20241206
Step #0:  + types-requests==2.32.0.20250306�[0m�[91m
Step #0:  + types-six==1.17.0.20250304
Step #0:  + typing-extensions==4.12.2
Step #0:  + typing-inspect==�[0m�[91m0.9.0
Step #0:  + tzdata==2025.2
Step #0:  + uri-template==1.3.0
Step #0:  + urllib3==2.2.3
Step #0:  + �[0m�[91muvicorn==0.32.0
Step #0:  + uvloop==0.21.0
Step #0:  + watchfiles==0.24.0
Step #0:  + wcwidth==0.2.13
Step #0:  + webcolors==24.11.1
Step #0:  + webencodings==0.5.1�[0m�[91m
Step #0: �[0m�[91m + websocket-client==1.8.0
Step #0:  + websockets==13.1
Step #0:  + werkzeug==3.1.3
Step #0:  + yarl==1.18.3
Step #0:  + �[0m�[91mzipp==3.23.0
Step #0: �[0mRemoving intermediate container c08e8501bbf5
Step #0:  ---> 23f18a867c05
Step #0: Step 8/14 : ADD . /app
Step #0:  ---> ea224fdb6358
Step #0: Step 9/14 : RUN uv sync --frozen --no-editable
Step #0:  ---> Running in b165f37e7159
Step #0: �[91m   Building src @ file:///app
Step #0: �[0m�[91m      Built src @ file:///app
Step #0: �[0m�[91mPrepared 1 package in 613ms
Step #0: �[0m�[91mInstalled 1 package in 2ms
Step #0: �[0m�[91mBytecode compiled 12056 files in 1.38s
Step #0:  + src==0.2.0.dev0 (from file:///app)
Step #0: �[0mRemoving intermediate container b165f37e7159
Step #0:  ---> 067abf11d524
Step #0: Step 10/14 : FROM python:3.10-slim-bookworm
Step #0:  ---> 563dffbdc425
Step #0: Step 11/14 : COPY --from=builder /app/.venv /app/.venv
Step #0:  ---> 510c30319faa
Step #0: Step 12/14 : COPY --from=builder /app/src /app/src
Step #0:  ---> 3375000e815d
Step #0: Step 13/14 : ENV PATH="/app/.venv/bin:$PATH"
Step #0:  ---> Running in 302ef01ac926
Step #0: Removing intermediate container 302ef01ac926
Step #0:  ---> 7ae0f4fa8094
Step #0: Step 14/14 : CMD ["fastapi", "run", "app/src/webapp", "--port", "8080", "--host", "0.0.0.0"]
Step #0:  ---> Running in 427f80af66a9
Step #0: Removing intermediate container 427f80af66a9
Step #0:  ---> 9055ffb247d0
Step #0: Successfully built 9055ffb247d0
Step #0: Successfully tagged us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp:8f2f06a9bc35d5099c05410e637380c34d7136f0
Step #0: Successfully tagged us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp:latest
Finished Step #0
Starting Step #1
Step #1: Already have image (with digest): gcr.io/cloud-builders/docker
Step #1: The push refers to repository [us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp]
Step #1: 4f2a3b4cd76e: Preparing
Step #1: 4a51c44302d9: Preparing
Step #1: 31abbb538de0: Preparing
Step #1: a2ccf7527b3c: Preparing
Step #1: abd92ba2021e: Preparing
Step #1: 1bb35e8b4de1: Preparing
Step #1: 1bb35e8b4de1: Waiting
Step #1: abd92ba2021e: Layer already exists
Step #1: 31abbb538de0: Layer already exists
Step #1: a2ccf7527b3c: Layer already exists
Step #1: 4f2a3b4cd76e: Pushed
Step #1: 1bb35e8b4de1: Pushed
Step #1: 4a51c44302d9: Pushed
Step #1: 8f2f06a9bc35d5099c05410e637380c34d7136f0: digest: sha256:5ef291913b1ff569f7c24d4cc26331c73c17da87477cf74a46dd4416c8ff84b4 size: 1581
Finished Step #1
Starting Step #2
Step #2: Already have image (with digest): gcr.io/cloud-builders/docker
Step #2: The push refers to repository [us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp]
Step #2: 4f2a3b4cd76e: Preparing
Step #2: 4a51c44302d9: Preparing
Step #2: 31abbb538de0: Preparing
Step #2: a2ccf7527b3c: Preparing
Step #2: abd92ba2021e: Preparing
Step #2: 1bb35e8b4de1: Preparing
Step #2: 1bb35e8b4de1: Waiting
Step #2: 4f2a3b4cd76e: Layer already exists
Step #2: 31abbb538de0: Layer already exists
Step #2: a2ccf7527b3c: Layer already exists
Step #2: abd92ba2021e: Layer already exists
Step #2: 4a51c44302d9: Layer already exists
Step #2: 1bb35e8b4de1: Layer already exists
Step #2: latest: digest: sha256:5ef291913b1ff569f7c24d4cc26331c73c17da87477cf74a46dd4416c8ff84b4 size: 1581
Finished Step #2
Starting Step #3
Step #3: Already have image (with digest): gcr.io/cloud-builders/gcloud
Step #3: Deploying container to Cloud Run service [dev-webapp] in project [dev-sst-02] region [us-east4]
Step #3: Deploying...

starting build "3b7c81e1-b87f-44c3-9413-e645ae2b750e"

FETCHSOURCE
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
Initialized empty Git repository in /workspace/.git/
From https://github.com/datakind/sst-app-api
 * branch            8f2f06a9bc35d5099c05410e637380c34d7136f0 -> FETCH_HEAD
HEAD is now at 8f2f06a Merge pull request #129 from datakind/ModelCardEndpoint
GitCommit:
8f2f06a9bc35d5099c05410e637380c34d7136f0
BUILD
Starting Step #0
Step #0: Already have image (with digest): gcr.io/cloud-builders/docker
Step #0: Sending build context to Docker daemon   1.42MB

Step #0: Step 1/14 : FROM python:3.10-slim-bookworm AS builder
Step #0: 3.10-slim-bookworm: Pulling from library/python
Step #0: 3da95a905ed5: Already exists
Step #0: 0ebcc011f0ec: Pulling fs layer
Step #0: 92d63ec5cbeb: Pulling fs layer
Step #0: 64b78282ca88: Pulling fs layer
Step #0: 0ebcc011f0ec: Verifying Checksum
Step #0: 0ebcc011f0ec: Download complete
Step #0: 64b78282ca88: Verifying Checksum
Step #0: 64b78282ca88: Download complete
Step #0: 92d63ec5cbeb: Verifying Checksum
Step #0: 92d63ec5cbeb: Download complete
Step #0: 0ebcc011f0ec: Pull complete
Step #0: 92d63ec5cbeb: Pull complete
Step #0: 64b78282ca88: Pull complete
Step #0: Digest: sha256:9dd6774a1276178f94b0cc1fb1f0edd980825d0ea7634847af9940b1b6273c13
Step #0: Status: Downloaded newer image for python:3.10-slim-bookworm
Step #0:  ---> 563dffbdc425
Step #0: Step 2/14 : COPY --from=ghcr.io/astral-sh/uv:0.5.30 /uv /uvx /bin/
Step #0: 0.5.30: Pulling from astral-sh/uv
Step #0: 110868002cfe: Pulling fs layer
Step #0: 20346dd24510: Pulling fs layer
Step #0: 20346dd24510: Verifying Checksum
Step #0: 20346dd24510: Download complete
Step #0: 110868002cfe: Verifying Checksum
Step #0: 110868002cfe: Download complete
Step #0: 110868002cfe: Pull complete
Step #0: 20346dd24510: Pull complete
Step #0: Digest: sha256:bb74263127d6451222fe7f71b330edfb189ab1c98d7898df2401fbf4f272d9b9
Step #0: Status: Downloaded newer image for ghcr.io/astral-sh/uv:0.5.30
Step #0:  ---> e355e7a041ea
Step #0: Step 3/14 : ENV UV_COMPILE_BYTECODE=1
Step #0:  ---> Running in a9d9d40a5cef
Step #0: Removing intermediate container a9d9d40a5cef
Step #0:  ---> e5185869b6c3
Step #0: Step 4/14 : ENV UV_NO_CACHE=1
Step #0:  ---> Running in 1ab219137847
Step #0: Removing intermediate container 1ab219137847
Step #0:  ---> fbe8e3435c71
Step #0: Step 5/14 : WORKDIR /app
Step #0:  ---> Running in 54cbc08d69d6
Step #0: Removing intermediate container 54cbc08d69d6
Step #0:  ---> 6a96b5b9c04a
Step #0: Step 6/14 : ADD uv.lock pyproject.toml /app/
Step #0:  ---> 12563bd13a78
Step #0: Step 7/14 : RUN uv sync --frozen --no-install-project
Step #0:  ---> Running in c08e8501bbf5
Step #0: �[91mUsing CPython �[0m�[91m3.10.18 interpreter at: �[0m�[91m/usr/local/bin/python3
Step #0: �[0m�[91mCreating virtual environment at: .venv
Step #0: �[0m�[91mDownloading babel (9.1MiB)
Step #0: �[0m�[91mDownloading�[0m�[91m jedi�[0m�[91m �[0m�[91m(1.5MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading mlflow-skinny (1.8MiB)
Step #0: �[0m�[91mDownloading scipy (35.9MiB)
Step #0: �[0m�[91mDownloading matplotlib (8.2MiB)
Step #0: �[0m�[91mDownloading lz4 �[0m�[91m(1.2MiB)
Step #0: �[0m�[91mDownloading cryptography (3.8MiB)
Step #0: �[0m�[91mDownloading scikit-learn (12.3MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading pygments (1.1MiB)
Step #0: �[0m�[91mDownloading mlflow (23.5MiB)
Step #0: �[0m�[91mDownloading jupyterlab (11.1MiB)
Step #0: �[0m�[91mDownloading pillow (6.3MiB)
Step #0: �[0m�[91mDownloading setuptools (1.2MiB)
Step #0: �[0m�[91mDownloading numpy (15.7MiB)
Step #0: �[0m�[91mDownloading �[0m�[91mpyarrow (40.3MiB)
Step #0: �[0m�[91mDownloading kiwisolver (1.6MiB)
Step #0: �[0m�[91mDownloading pandas�[0m�[91m �[0m�[91m(12.5MiB)
Step #0: �[0m�[91mDownloading uvloop (3.6MiB)
Step #0: �[0m�[91mDownloading black (1.7MiB)
Step #0: �[0m�[91mDownloading pydantic-core (2.0MiB)
Step #0: �[0m�[91mDownloading ruff (10.7MiB)
Step #0: �[0m�[91mDownloading mypy (12.0MiB)
Step #0: �[0m�[91mDownloading sqlalchemy (2.9MiB)
Step #0: Downloading fonttools �[0m�[91m(4.5MiB)
Step #0: �[0m�[91mDownloading aiohttp (1.5MiB)
Step #0: �[0m�[91mDownloading debugpy (3.4MiB)
Step #0: �[0m�[91m Downloaded lz4
Step #0: �[0m�[91m Downloaded pygments
Step #0: �[0m�[91m Downloaded kiwisolver
Step #0: �[0m�[91m Downloaded aiohttp
Step #0: �[0m�[91m Downloaded black
Step #0: �[0m�[91m Downloaded pydantic-core
Step #0: �[0m�[91m   Building thrift==0.20.0
Step #0: �[0m�[91m Downloaded setuptools
Step #0: �[0m�[91m Downloaded sqlalchemy
Step #0: �[0m�[91m Downloaded uvloop
Step #0: �[0m�[91m Downloaded debugpy
Step #0: �[0m�[91m Downloaded mlflow-skinny
Step #0: �[0m�[91m Downloaded cryptography
Step #0: �[0m�[91m Downloaded fonttools
Step #0: �[0m�[91m Downloaded pillow
Step #0: �[0m�[91m Downloaded matplotlib
Step #0: �[0m�[91m Downloaded babel
Step #0: �[0m�[91m Downloaded ruff
Step #0: �[0m�[91m Downloaded jupyterlab
Step #0: �[0m�[91m Downloaded numpy
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mscikit-learn�[0m�[91m
Step #0: �[0m�[91m Downloaded pandas
Step #0: �[0m�[91m      Built thrift==0.20.0
Step #0: �[0m�[91m Downloaded jedi
Step #0: �[0m�[91m Downloaded mlflow
Step #0: �[0m�[91m Downloaded pyarrow
Step #0: �[0m�[91m Downloaded mypy
Step #0: �[0m�[91m Downloaded scipy
Step #0: �[0m�[91mPrepared 219 packages in 10.14s
Step #0: �[0m�[91mInstalled 219 packages in 2.00s
Step #0: �[0m�[91mBytecode compiled 12022 files in 27.72s
Step #0: �[0m�[91m + aiofiles==24.1.0
Step #0:  + aiohappyeyeballs==2.4.4
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91maiohttp�[0m�[91m==�[0m�[91m3.11.10�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91maiosignal�[0m�[91m==�[0m�[91m1.3.1�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91malembic�[0m�[91m==�[0m�[91m1.16.3�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m annotated-types�[0m�[91m==�[0m�[91m0.7.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91manyio�[0m�[91m==�[0m�[91m4.7.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m argon2-cffi�[0m�[91m==�[0m�[91m23.1.0�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m argon2-cffi-bindings�[0m�[91m==�[0m�[91m21.2.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91marrow�[0m�[91m==�[0m�[91m1.3.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mastroid�[0m�[91m==�[0m�[91m3.3.6�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91masttokens�[0m�[91m==�[0m�[91m3.0.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91masync-lru�[0m�[91m==�[0m�[91m2.0.4�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m async-timeout�[0m�[91m==�[0m�[91m5.0.1�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mattrs==�[0m�[91m24.2.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mbabel�[0m�[91m==�[0m�[91m2.16.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ bcrypt�[0m�[91m==�[0m�[91m4.2.0
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m beautifulsoup4�[0m�[91m==4.12.3�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mblack�[0m�[91m==25.1.0
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91mbleach�[0m�[91m==6.2.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91mblinker�[0m�[91m==1.9.0�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mcachetools�[0m�[91m==�[0m�[91m5.5.0�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mcertifi�[0m�[91m==�[0m�[91m2024.8.30�[0m�[91m
Step #0:  +�[0m�[91m �[0m�[91mcffi�[0m�[91m==�[0m�[91m1.17.1�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mcharset-normalizer==�[0m�[91m3.4.0�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m click�[0m�[91m==�[0m�[91m8.1.7�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mcloud-sql-python-connector==�[0m�[91m1.14.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mcloudpickle�[0m�[91m==�[0m�[91m3.1.1�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m comm==0.2.2�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91mcontourpy�[0m�[91m==�[0m�[91m1.3.2�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mcoverage==�[0m�[91m7.6.9�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m crypto�[0m�[91m==�[0m�[91m1.4.1�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mcryptography�[0m�[91m==�[0m�[91m43.0.3
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mcycler==0.12.1�[0m�[91m
Step #0:  + databricks-sdk==0.38.0
Step #0:  + databricks-sql-connector==4.0.3
Step #0:  + debugpy==1.8.9
Step #0:  + decorator==5.1.1
Step #0:  + defusedxml==0.7.1
Step #0:  + dill==0.3.9
Step #0:  + dnspython==2.7.0�[0m�[91m
Step #0:  + docker�[0m�[91m==7.1.0
Step #0:  + email-validator==2.2.0
Step #0:  + et-xmlfile==2.0.0�[0m�[91m
Step #0:  + exceptiongroup==1.2.2
Step #0:  + executing==2.1.0
Step #0:  + fastapi==0.115.4
Step #0:  + fastapi-cli==0.0.5
Step #0:  + fastjsonschema==2.21.1
Step #0:  + flask==3.1.1�[0m�[91m
Step #0:  + fonttools==4.58.5
Step #0:  + fqdn==1.5.1
Step #0:  + frozenlist==1.5.0
Step #0:  + fuzzywuzzy==0.18.0
Step #0:  + gitdb==4.0.12�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mgitpython==3.1.44
Step #0:  + google-api-core==2.22.0
Step #0:  + google-auth==2.36.0
Step #0:  + google-cloud==0.34.0
Step #0:  + google-cloud-core==2.4.1
Step #0:  + google-cloud-storage==2.18.2
Step #0:  + google-crc32c==1.6.0
Step #0:  + �[0m�[91mgoogle-resumable-media==2.7.2�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mgoogleapis-common-protos==�[0m�[91m1.66.0�[0m�[91m
Step #0: �[0m�[91m + graphene==3.4.3
Step #0:  + graphql-core==3.2.6
Step #0:  + graphql-relay==3.2.0
Step #0:  + greenlet==3.1.1
Step #0:  + gunicorn==23.0.0
Step #0:  + h11==0.14.0
Step #0:  + httpcore==1.0.7
Step #0:  + httptools==0.6.4�[0m�[91m
Step #0:  +�[0m�[91m �[0m�[91mhttpx==�[0m�[91m0.28.1
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91midna�[0m�[91m==�[0m�[91m3.10�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m importlib-metadata==8.7.0
Step #0:  + iniconfig==2.0.0
Step #0:  + ipykernel==6.29.5
Step #0:  + ipython==8.30.0
Step #0:  + isoduration==20.11.0
Step #0:  + isort==5.13.2
Step #0:  + itsdangerous==2.2.0
Step #0:  + jedi==0.19.2
Step #0:  + jinja2==3.1.4
Step #0: �[0m�[91m + joblib==1.5.1
Step #0:  + json5�[0m�[91m==0.10.0
Step #0:  + jsonpickle�[0m�[91m==4.0.1
Step #0:  + jsonpointer==3.0.0
Step #0:  + jsonschema==4.23.0
Step #0:  + jsonschema-specifications==2024.10.1
Step #0:  + �[0m�[91mjupyter-client==8.6.3
Step #0: �[0m�[91m + jupyter-core==5.7.2
Step #0:  + jupyter-events==0.10.0
Step #0:  + jupyter-lsp==2.2.5
Step #0:  + jupyter-server==2.14.2
Step #0:  + jupyter-server-terminals==0.5.3
Step #0:  + jupyterlab==4.3.2�[0m�[91m
Step #0:  + jupyterlab-pygments==0.3.0
Step #0: �[0m�[91m + jupyterlab-server==2.27.3�[0m�[91m
Step #0:  + kiwisolver==1.4.8
Step #0:  + lz4==4.4.4
Step #0:  + mako==1.3.10
Step #0:  + markdown-it-py==3.0.0
Step #0:  + markupsafe�[0m�[91m==3.0.2
Step #0:  + matplotlib==3.10.3
Step #0: �[0m�[91m + matplotlib-inline==0.1.7
Step #0:  + mccabe==0.7.0
Step #0:  + mdurl==0.1.2�[0m�[91m
Step #0:  + mistune==3.0.2
Step #0:  + mlflow==3.1.1
Step #0:  + mlflow-skinny==3.1.1
Step #0:  + multidict�[0m�[91m==6.1.0�[0m�[91m
Step #0:  + mypy==1.13.0
Step #0:  + mypy-extensions==1.0.0
Step #0:  + naked==0.1.32
Step #0:  + nbclient==0.10.1
Step #0:  + nbconvert==7.16.4
Step #0:  + nbformat==5.10.4
Step #0:  + nest-asyncio==1.6.0
Step #0:  + notebook-shim==0.2.4
Step #0:  + numpy�[0m�[91m==2.2.4
Step #0:  + oauthlib==3.2.2
Step #0: �[0m�[91m + openpyxl==3.1.5�[0m�[91m
Step #0: �[0m�[91m + opentelemetry-api==1.34.1
Step #0:  + opentelemetry-sdk==1.34.1
Step #0:  + opentelemetry-semantic-conventions==0.55b1
Step #0:  + overrides==7.7.0
Step #0:  + packaging==�[0m�[91m24.2
Step #0:  + pandas==2.2.3
Step #0:  + pandera==0.24.0
Step #0:  + pandocfilters==1.5.1
Step #0: �[0m�[91m + paramiko�[0m�[91m==3.5.0
Step #0:  + parso==0.8.4
Step #0:  + passlib==1.7.4
Step #0:  + pathspec==0.12.1�[0m�[91m
Step #0:  + pexpect==4.9.0
Step #0:  + pillow==11.3.0
Step #0:  + platformdirs==4.3.6
Step #0:  + pluggy==1.5.0
Step #0:  + prometheus-client==0.21.1
Step #0:  + prompt-toolkit==3.0.48
Step #0:  + propcache==0.2.1
Step #0:  + proto-plus==1.25.0
Step #0:  + protobuf==5.29.1
Step #0:  + psutil==6.1.0
Step #0:  + ptyprocess==0.7.0
Step #0:  + pure-eval==0.2.3
Step #0:  + pyarrow==20.0.0
Step #0:  + pyasn1==0.6.1
Step #0:  �[0m�[91m+ pyasn1-modules==0.4.1
Step #0:  �[0m�[91m+ pycparser==2.22
Step #0:  +�[0m�[91m pydantic==2.10.3
Step #0: �[0m�[91m + pydantic-core==2.27.1
Step #0:  + �[0m�[91mpygments�[0m�[91m==2.18.0
S
...
[Logs truncated due to log size limitations. For full logs, see https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%223b7c81e1-b87f-44c3-9413-e645ae2b750e%22+AND+resource.labels.build_trigger_id%3D%2234b36ab0-f21d-470f-9580-8f985c6a5c87%22&project=dev-sst-02.]
...
m�[91m23.1.0�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m argon2-cffi-bindings�[0m�[91m==�[0m�[91m21.2.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91marrow�[0m�[91m==�[0m�[91m1.3.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mastroid�[0m�[91m==�[0m�[91m3.3.6�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91masttokens�[0m�[91m==�[0m�[91m3.0.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91masync-lru�[0m�[91m==�[0m�[91m2.0.4�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m async-timeout�[0m�[91m==�[0m�[91m5.0.1�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mattrs==�[0m�[91m24.2.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mbabel�[0m�[91m==�[0m�[91m2.16.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ bcrypt�[0m�[91m==�[0m�[91m4.2.0
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m beautifulsoup4�[0m�[91m==4.12.3�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mblack�[0m�[91m==25.1.0
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91mbleach�[0m�[91m==6.2.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91mblinker�[0m�[91m==1.9.0�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mcachetools�[0m�[91m==�[0m�[91m5.5.0�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mcertifi�[0m�[91m==�[0m�[91m2024.8.30�[0m�[91m
Step #0:  +�[0m�[91m �[0m�[91mcffi�[0m�[91m==�[0m�[91m1.17.1�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mcharset-normalizer==�[0m�[91m3.4.0�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m click�[0m�[91m==�[0m�[91m8.1.7�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mcloud-sql-python-connector==�[0m�[91m1.14.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mcloudpickle�[0m�[91m==�[0m�[91m3.1.1�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m comm==0.2.2�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91mcontourpy�[0m�[91m==�[0m�[91m1.3.2�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mcoverage==�[0m�[91m7.6.9�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m crypto�[0m�[91m==�[0m�[91m1.4.1�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mcryptography�[0m�[91m==�[0m�[91m43.0.3
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mcycler==0.12.1�[0m�[91m
Step #0:  + databricks-sdk==0.38.0
Step #0:  + databricks-sql-connector==4.0.3
Step #0:  + debugpy==1.8.9
Step #0:  + decorator==5.1.1
Step #0:  + defusedxml==0.7.1
Step #0:  + dill==0.3.9
Step #0:  + dnspython==2.7.0�[0m�[91m
Step #0:  + docker�[0m�[91m==7.1.0
Step #0:  + email-validator==2.2.0
Step #0:  + et-xmlfile==2.0.0�[0m�[91m
Step #0:  + exceptiongroup==1.2.2
Step #0:  + executing==2.1.0
Step #0:  + fastapi==0.115.4
Step #0:  + fastapi-cli==0.0.5
Step #0:  + fastjsonschema==2.21.1
Step #0:  + flask==3.1.1�[0m�[91m
Step #0:  + fonttools==4.58.5
Step #0:  + fqdn==1.5.1
Step #0:  + frozenlist==1.5.0
Step #0:  + fuzzywuzzy==0.18.0
Step #0:  + gitdb==4.0.12�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mgitpython==3.1.44
Step #0:  + google-api-core==2.22.0
Step #0:  + google-auth==2.36.0
Step #0:  + google-cloud==0.34.0
Step #0:  + google-cloud-core==2.4.1
Step #0:  + google-cloud-storage==2.18.2
Step #0:  + google-crc32c==1.6.0
Step #0:  + �[0m�[91mgoogle-resumable-media==2.7.2�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mgoogleapis-common-protos==�[0m�[91m1.66.0�[0m�[91m
Step #0: �[0m�[91m + graphene==3.4.3
Step #0:  + graphql-core==3.2.6
Step #0:  + graphql-relay==3.2.0
Step #0:  + greenlet==3.1.1
Step #0:  + gunicorn==23.0.0
Step #0:  + h11==0.14.0
Step #0:  + httpcore==1.0.7
Step #0:  + httptools==0.6.4�[0m�[91m
Step #0:  +�[0m�[91m �[0m�[91mhttpx==�[0m�[91m0.28.1
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91midna�[0m�[91m==�[0m�[91m3.10�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m importlib-metadata==8.7.0
Step #0:  + iniconfig==2.0.0
Step #0:  + ipykernel==6.29.5
Step #0:  + ipython==8.30.0
Step #0:  + isoduration==20.11.0
Step #0:  + isort==5.13.2
Step #0:  + itsdangerous==2.2.0
Step #0:  + jedi==0.19.2
Step #0:  + jinja2==3.1.4
Step #0: �[0m�[91m + joblib==1.5.1
Step #0:  + json5�[0m�[91m==0.10.0
Step #0:  + jsonpickle�[0m�[91m==4.0.1
Step #0:  + jsonpointer==3.0.0
Step #0:  + jsonschema==4.23.0
Step #0:  + jsonschema-specifications==2024.10.1
Step #0:  + �[0m�[91mjupyter-client==8.6.3
Step #0: �[0m�[91m + jupyter-core==5.7.2
Step #0:  + jupyter-events==0.10.0
Step #0:  + jupyter-lsp==2.2.5
Step #0:  + jupyter-server==2.14.2
Step #0:  + jupyter-server-terminals==0.5.3
Step #0:  + jupyterlab==4.3.2�[0m�[91m
Step #0:  + jupyterlab-pygments==0.3.0
Step #0: �[0m�[91m + jupyterlab-server==2.27.3�[0m�[91m
Step #0:  + kiwisolver==1.4.8
Step #0:  + lz4==4.4.4
Step #0:  + mako==1.3.10
Step #0:  + markdown-it-py==3.0.0
Step #0:  + markupsafe�[0m�[91m==3.0.2
Step #0:  + matplotlib==3.10.3
Step #0: �[0m�[91m + matplotlib-inline==0.1.7
Step #0:  + mccabe==0.7.0
Step #0:  + mdurl==0.1.2�[0m�[91m
Step #0:  + mistune==3.0.2
Step #0:  + mlflow==3.1.1
Step #0:  + mlflow-skinny==3.1.1
Step #0:  + multidict�[0m�[91m==6.1.0�[0m�[91m
Step #0:  + mypy==1.13.0
Step #0:  + mypy-extensions==1.0.0
Step #0:  + naked==0.1.32
Step #0:  + nbclient==0.10.1
Step #0:  + nbconvert==7.16.4
Step #0:  + nbformat==5.10.4
Step #0:  + nest-asyncio==1.6.0
Step #0:  + notebook-shim==0.2.4
Step #0:  + numpy�[0m�[91m==2.2.4
Step #0:  + oauthlib==3.2.2
Step #0: �[0m�[91m + openpyxl==3.1.5�[0m�[91m
Step #0: �[0m�[91m + opentelemetry-api==1.34.1
Step #0:  + opentelemetry-sdk==1.34.1
Step #0:  + opentelemetry-semantic-conventions==0.55b1
Step #0:  + overrides==7.7.0
Step #0:  + packaging==�[0m�[91m24.2
Step #0:  + pandas==2.2.3
Step #0:  + pandera==0.24.0
Step #0:  + pandocfilters==1.5.1
Step #0: �[0m�[91m + paramiko�[0m�[91m==3.5.0
Step #0:  + parso==0.8.4
Step #0:  + passlib==1.7.4
Step #0:  + pathspec==0.12.1�[0m�[91m
Step #0:  + pexpect==4.9.0
Step #0:  + pillow==11.3.0
Step #0:  + platformdirs==4.3.6
Step #0:  + pluggy==1.5.0
Step #0:  + prometheus-client==0.21.1
Step #0:  + prompt-toolkit==3.0.48
Step #0:  + propcache==0.2.1
Step #0:  + proto-plus==1.25.0
Step #0:  + protobuf==5.29.1
Step #0:  + psutil==6.1.0
Step #0:  + ptyprocess==0.7.0
Step #0:  + pure-eval==0.2.3
Step #0:  + pyarrow==20.0.0
Step #0:  + pyasn1==0.6.1
Step #0:  �[0m�[91m+ pyasn1-modules==0.4.1
Step #0:  �[0m�[91m+ pycparser==2.22
Step #0:  +�[0m�[91m pydantic==2.10.3
Step #0: �[0m�[91m + pydantic-core==2.27.1
Step #0:  + �[0m�[91mpygments�[0m�[91m==2.18.0
Step #0:  + pyjwt==2.10.1
Step #0:  + pylint==3.3.2
Step #0:  + pymysql==1.1.1
Step #0:  + pynacl==1.5.0
Step #0:  + pyparsing==3.2.3
Step #0:  + pytest==8.3.4
Step #0:  + python-dateutil==2.9.0.post0�[0m�[91m
Step #0:  + python-dotenv==1.0.1�[0m�[91m
Step #0:  + python-json-logger==�[0m�[91m2.0.7
Step #0:  + python-multipart�[0m�[91m==0.0.16
Step #0:  + pytz==2025.1
Step #0:  + pyyaml==6.0.2
Step #0:  + pyzmq==26.2.0
Step #0:  + referencing==0.35.1
Step #0:  + requests==2.32.3
Step #0:  + rfc3339-validator==0.1.4�[0m�[91m
Step #0:  + rfc3986-validator==0.1.1
Step #0:  �[0m�[91m+ rich==�[0m�[91m13.9.3
Step #0:  + rpds-py==0.22.3
Step #0:  + rsa==4.9
Step #0:  + ruff==�[0m�[91m0.8.2
Step #0:  + scikit-learn==1.7.0
Step #0:  + scipy==1.15.3
Step #0:  + send2trash==1.8.3
Step #0:  + setuptools==75.6.0
Step #0:  + shellescape==�[0m�[91m3.8.1
Step #0:  + shellingham==1.5.4
Step #0:  + six==1.17.0
Step #0:  + smmap==5.0.2
Step #0:  + sniffio==1.3.1
Step #0:  + soupsieve==2.6
Step #0: �[0m�[91m + sqlalchemy==�[0m�[91m2.0.36
Step #0:  + sqlparse==0.5.3
Step #0:  + stack-data==0.6.3
Step #0:  + starlette==0.41.2
Step #0:  + �[0m�[91mstrenum�[0m�[91m==0.4.15
Step #0:  + terminado==0.18.1
Step #0:  + threadpoolctl==3.6.0
Step #0:  + thrift==0.20.0
Step #0:  + tinycss2�[0m�[91m==1.4.0
Step #0:  + �[0m�[91mtomli==2.2.1
Step #0:  + tomlkit==0.13.2
Step #0:  + tornado==6.4.2
Step #0:  + traitlets==5.14.3
Step #0:  + typeguard�[0m�[91m==4.4.2
Step #0:  + �[0m�[91mtyper==0.12.5
Step #0:  + types-paramiko==3.5.0.20240928
Step #0:  + types-python-dateutil==2.9.0.20241206
Step #0:  + types-requests==2.32.0.20250306�[0m�[91m
Step #0:  + types-six==1.17.0.20250304
Step #0:  + typing-extensions==4.12.2
Step #0:  + typing-inspect==�[0m�[91m0.9.0
Step #0:  + tzdata==2025.2
Step #0:  + uri-template==1.3.0
Step #0:  + urllib3==2.2.3
Step #0:  + �[0m�[91muvicorn==0.32.0
Step #0:  + uvloop==0.21.0
Step #0:  + watchfiles==0.24.0
Step #0:  + wcwidth==0.2.13
Step #0:  + webcolors==24.11.1
Step #0:  + webencodings==0.5.1�[0m�[91m
Step #0: �[0m�[91m + websocket-client==1.8.0
Step #0:  + websockets==13.1
Step #0:  + werkzeug==3.1.3
Step #0:  + yarl==1.18.3
Step #0:  + �[0m�[91mzipp==3.23.0
Step #0: �[0mRemoving intermediate container c08e8501bbf5
Step #0:  ---> 23f18a867c05
Step #0: Step 8/14 : ADD . /app
Step #0:  ---> ea224fdb6358
Step #0: Step 9/14 : RUN uv sync --frozen --no-editable
Step #0:  ---> Running in b165f37e7159
Step #0: �[91m   Building src @ file:///app
Step #0: �[0m�[91m      Built src @ file:///app
Step #0: �[0m�[91mPrepared 1 package in 613ms
Step #0: �[0m�[91mInstalled 1 package in 2ms
Step #0: �[0m�[91mBytecode compiled 12056 files in 1.38s
Step #0:  + src==0.2.0.dev0 (from file:///app)
Step #0: �[0mRemoving intermediate container b165f37e7159
Step #0:  ---> 067abf11d524
Step #0: Step 10/14 : FROM python:3.10-slim-bookworm
Step #0:  ---> 563dffbdc425
Step #0: Step 11/14 : COPY --from=builder /app/.venv /app/.venv
Step #0:  ---> 510c30319faa
Step #0: Step 12/14 : COPY --from=builder /app/src /app/src
Step #0:  ---> 3375000e815d
Step #0: Step 13/14 : ENV PATH="/app/.venv/bin:$PATH"
Step #0:  ---> Running in 302ef01ac926
Step #0: Removing intermediate container 302ef01ac926
Step #0:  ---> 7ae0f4fa8094
Step #0: Step 14/14 : CMD ["fastapi", "run", "app/src/webapp", "--port", "8080", "--host", "0.0.0.0"]
Step #0:  ---> Running in 427f80af66a9
Step #0: Removing intermediate container 427f80af66a9
Step #0:  ---> 9055ffb247d0
Step #0: Successfully built 9055ffb247d0
Step #0: Successfully tagged us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp:8f2f06a9bc35d5099c05410e637380c34d7136f0
Step #0: Successfully tagged us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp:latest
Finished Step #0
Starting Step #1
Step #1: Already have image (with digest): gcr.io/cloud-builders/docker
Step #1: The push refers to repository [us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp]
Step #1: 4f2a3b4cd76e: Preparing
Step #1: 4a51c44302d9: Preparing
Step #1: 31abbb538de0: Preparing
Step #1: a2ccf7527b3c: Preparing
Step #1: abd92ba2021e: Preparing
Step #1: 1bb35e8b4de1: Preparing
Step #1: 1bb35e8b4de1: Waiting
Step #1: abd92ba2021e: Layer already exists
Step #1: 31abbb538de0: Layer already exists
Step #1: a2ccf7527b3c: Layer already exists
Step #1: 4f2a3b4cd76e: Pushed
Step #1: 1bb35e8b4de1: Pushed
Step #1: 4a51c44302d9: Pushed
Step #1: 8f2f06a9bc35d5099c05410e637380c34d7136f0: digest: sha256:5ef291913b1ff569f7c24d4cc26331c73c17da87477cf74a46dd4416c8ff84b4 size: 1581
Finished Step #1
Starting Step #2
Step #2: Already have image (with digest): gcr.io/cloud-builders/docker
Step #2: The push refers to repository [us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp]
Step #2: 4f2a3b4cd76e: Preparing
Step #2: 4a51c44302d9: Preparing
Step #2: 31abbb538de0: Preparing
Step #2: a2ccf7527b3c: Preparing
Step #2: abd92ba2021e: Preparing
Step #2: 1bb35e8b4de1: Preparing
Step #2: 1bb35e8b4de1: Waiting
Step #2: 4f2a3b4cd76e: Layer already exists
Step #2: 31abbb538de0: Layer already exists
Step #2: a2ccf7527b3c: Layer already exists
Step #2: abd92ba2021e: Layer already exists
Step #2: 4a51c44302d9: Layer already exists
Step #2: 1bb35e8b4de1: Layer already exists
Step #2: latest: digest: sha256:5ef291913b1ff569f7c24d4cc26331c73c17da87477cf74a46dd4416c8ff84b4 size: 1581
Finished Step #2
Starting Step #3
Step #3: Already have image (with digest): gcr.io/cloud-builders/gcloud
Step #3: Deploying container to Cloud Run service [dev-webapp] in project [dev-sst-02] region [us-east4]
Step #3: Deploying...

starting build "3b7c81e1-b87f-44c3-9413-e645ae2b750e"

FETCHSOURCE
hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint:
hint: 	git config --global init.defaultBranch <name>
hint:
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint:
hint: 	git branch -m <name>
Initialized empty Git repository in /workspace/.git/
From https://github.com/datakind/sst-app-api
 * branch            8f2f06a9bc35d5099c05410e637380c34d7136f0 -> FETCH_HEAD
HEAD is now at 8f2f06a Merge pull request #129 from datakind/ModelCardEndpoint
GitCommit:
8f2f06a9bc35d5099c05410e637380c34d7136f0
BUILD
Starting Step #0
Step #0: Already have image (with digest): gcr.io/cloud-builders/docker
Step #0: Sending build context to Docker daemon   1.42MB

Step #0: Step 1/14 : FROM python:3.10-slim-bookworm AS builder
Step #0: 3.10-slim-bookworm: Pulling from library/python
Step #0: 3da95a905ed5: Already exists
Step #0: 0ebcc011f0ec: Pulling fs layer
Step #0: 92d63ec5cbeb: Pulling fs layer
Step #0: 64b78282ca88: Pulling fs layer
Step #0: 0ebcc011f0ec: Verifying Checksum
Step #0: 0ebcc011f0ec: Download complete
Step #0: 64b78282ca88: Verifying Checksum
Step #0: 64b78282ca88: Download complete
Step #0: 92d63ec5cbeb: Verifying Checksum
Step #0: 92d63ec5cbeb: Download complete
Step #0: 0ebcc011f0ec: Pull complete
Step #0: 92d63ec5cbeb: Pull complete
Step #0: 64b78282ca88: Pull complete
Step #0: Digest: sha256:9dd6774a1276178f94b0cc1fb1f0edd980825d0ea7634847af9940b1b6273c13
Step #0: Status: Downloaded newer image for python:3.10-slim-bookworm
Step #0:  ---> 563dffbdc425
Step #0: Step 2/14 : COPY --from=ghcr.io/astral-sh/uv:0.5.30 /uv /uvx /bin/
Step #0: 0.5.30: Pulling from astral-sh/uv
Step #0: 110868002cfe: Pulling fs layer
Step #0: 20346dd24510: Pulling fs layer
Step #0: 20346dd24510: Verifying Checksum
Step #0: 20346dd24510: Download complete
Step #0: 110868002cfe: Verifying Checksum
Step #0: 110868002cfe: Download complete
Step #0: 110868002cfe: Pull complete
Step #0: 20346dd24510: Pull complete
Step #0: Digest: sha256:bb74263127d6451222fe7f71b330edfb189ab1c98d7898df2401fbf4f272d9b9
Step #0: Status: Downloaded newer image for ghcr.io/astral-sh/uv:0.5.30
Step #0:  ---> e355e7a041ea
Step #0: Step 3/14 : ENV UV_COMPILE_BYTECODE=1
Step #0:  ---> Running in a9d9d40a5cef
Step #0: Removing intermediate container a9d9d40a5cef
Step #0:  ---> e5185869b6c3
Step #0: Step 4/14 : ENV UV_NO_CACHE=1
Step #0:  ---> Running in 1ab219137847
Step #0: Removing intermediate container 1ab219137847
Step #0:  ---> fbe8e3435c71
Step #0: Step 5/14 : WORKDIR /app
Step #0:  ---> Running in 54cbc08d69d6
Step #0: Removing intermediate container 54cbc08d69d6
Step #0:  ---> 6a96b5b9c04a
Step #0: Step 6/14 : ADD uv.lock pyproject.toml /app/
Step #0:  ---> 12563bd13a78
Step #0: Step 7/14 : RUN uv sync --frozen --no-install-project
Step #0:  ---> Running in c08e8501bbf5
Step #0: �[91mUsing CPython �[0m�[91m3.10.18 interpreter at: �[0m�[91m/usr/local/bin/python3
Step #0: �[0m�[91mCreating virtual environment at: .venv
Step #0: �[0m�[91mDownloading babel (9.1MiB)
Step #0: �[0m�[91mDownloading�[0m�[91m jedi�[0m�[91m �[0m�[91m(1.5MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading mlflow-skinny (1.8MiB)
Step #0: �[0m�[91mDownloading scipy (35.9MiB)
Step #0: �[0m�[91mDownloading matplotlib (8.2MiB)
Step #0: �[0m�[91mDownloading lz4 �[0m�[91m(1.2MiB)
Step #0: �[0m�[91mDownloading cryptography (3.8MiB)
Step #0: �[0m�[91mDownloading scikit-learn (12.3MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading pygments (1.1MiB)
Step #0: �[0m�[91mDownloading mlflow (23.5MiB)
Step #0: �[0m�[91mDownloading jupyterlab (11.1MiB)
Step #0: �[0m�[91mDownloading pillow (6.3MiB)
Step #0: �[0m�[91mDownloading setuptools (1.2MiB)
Step #0: �[0m�[91mDownloading numpy (15.7MiB)
Step #0: �[0m�[91mDownloading �[0m�[91mpyarrow (40.3MiB)
Step #0: �[0m�[91mDownloading kiwisolver (1.6MiB)
Step #0: �[0m�[91mDownloading pandas�[0m�[91m �[0m�[91m(12.5MiB)
Step #0: �[0m�[91mDownloading uvloop (3.6MiB)
Step #0: �[0m�[91mDownloading black (1.7MiB)
Step #0: �[0m�[91mDownloading pydantic-core (2.0MiB)
Step #0: �[0m�[91mDownloading ruff (10.7MiB)
Step #0: �[0m�[91mDownloading mypy (12.0MiB)
Step #0: �[0m�[91mDownloading sqlalchemy (2.9MiB)
Step #0: Downloading fonttools �[0m�[91m(4.5MiB)
Step #0: �[0m�[91mDownloading aiohttp (1.5MiB)
Step #0: �[0m�[91mDownloading debugpy (3.4MiB)
Step #0: �[0m�[91m Downloaded lz4
Step #0: �[0m�[91m Downloaded pygments
Step #0: �[0m�[91m Downloaded kiwisolver
Step #0: �[0m�[91m Downloaded aiohttp
Step #0: �[0m�[91m Downloaded black
Step #0: �[0m�[91m Downloaded pydantic-core
Step #0: �[0m�[91m   Building thrift==0.20.0
Step #0: �[0m�[91m Downloaded setuptools
Step #0: �[0m�[91m Downloaded sqlalchemy
Step #0: �[0m�[91m Downloaded uvloop
Step #0: �[0m�[91m Downloaded debugpy
Step #0: �[0m�[91m Downloaded mlflow-skinny
Step #0: �[0m�[91m Downloaded cryptography
Step #0: �[0m�[91m Downloaded fonttools
Step #0: �[0m�[91m Downloaded pillow
Step #0: �[0m�[91m Downloaded matplotlib
Step #0: �[0m�[91m Downloaded babel
Step #0: �[0m�[91m Downloaded ruff
Step #0: �[0m�[91m Downloaded jupyterlab
Step #0: �[0m�[91m Downloaded numpy
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mscikit-learn�[0m�[91m
Step #0: �[0m�[91m Downloaded pandas
Step #0: �[0m�[91m      Built thrift==0.20.0
Step #0: �[0m�[91m Downloaded jedi
Step #0: �[0m�[91m Downloaded mlflow
Step #0: �[0m�[91m Downloaded pyarrow
Step #0: �[0m�[91m Downloaded mypy
Step #0: �[0m�[91m Downloaded scipy
Step #0: �[0m�[91mPrepared 219 packages in 10.14s
Step #0: �[0m�[91mInstalled 219 packages in 2.00s
Step #0: �[0m�[91mBytecode compiled 12022 files in 27.72s
Step #0: �[0m�[91m + aiofiles==24.1.0
Step #0:  + aiohappyeyeballs==2.4.4
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91maiohttp�[0m�[91m==�[0m�[91m3.11.10�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91maiosignal�[0m�[91m==�[0m�[91m1.3.1�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91malembic�[0m�[91m==�[0m�[91m1.16.3�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m annotated-types�[0m�[91m==�[0m�[91m0.7.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91manyio�[0m�[91m==�[0m�[91m4.7.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m argon2-cffi�[0m�[91m==�[0m�[91m23.1.0�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m argon2-cffi-bindings�[0m�[91m==�[0m�[91m21.2.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91marrow�[0m�[91m==�[0m�[91m1.3.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mastroid�[0m�[91m==�[0m�[91m3.3.6�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91masttokens�[0m�[91m==�[0m�[91m3.0.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91masync-lru�[0m�[91m==�[0m�[91m2.0.4�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m async-timeout�[0m�[91m==�[0m�[91m5.0.1�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mattrs==�[0m�[91m24.2.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mbabel�[0m�[91m==�[0m�[91m2.16.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ bcrypt�[0m�[91m==�[0m�[91m4.2.0
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m beautifulsoup4�[0m�[91m==4.12.3�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mblack�[0m�[91m==25.1.0
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91mbleach�[0m�[91m==6.2.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91mblinker�[0m�[91m==1.9.0�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mcachetools�[0m�[91m==�[0m�[91m5.5.0�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mcertifi�[0m�[91m==�[0m�[91m2024.8.30�[0m�[91m
Step #0:  +�[0m�[91m �[0m�[91mcffi�[0m�[91m==�[0m�[91m1.17.1�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mcharset-normalizer==�[0m�[91m3.4.0�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m click�[0m�[91m==�[0m�[91m8.1.7�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mcloud-sql-python-connector==�[0m�[91m1.14.0�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mcloudpickle�[0m�[91m==�[0m�[91m3.1.1�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m comm==0.2.2�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+ �[0m�[91mcontourpy�[0m�[91m==�[0m�[91m1.3.2�[0m�[91m
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91mcoverage==�[0m�[91m7.6.9�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m crypto�[0m�[91m==�[0m�[91m1.4.1�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mcryptography�[0m�[91m==�[0m�[91m43.0.3
Step #0:  �[0m�[91m+�[0m�[91m �[0m�[91mcycler==0.12.1�[0m�[91m
Step #0:  + databricks-sdk==0.38.0
Step #0:  + databricks-sql-connector==4.0.3
Step #0:  + debugpy==1.8.9
Step #0:  + decorator==5.1.1
Step #0:  + defusedxml==0.7.1
Step #0:  + dill==0.3.9
Step #0:  + dnspython==2.7.0�[0m�[91m
Step #0:  + docker�[0m�[91m==7.1.0
Step #0:  + email-validator==2.2.0
Step #0:  + et-xmlfile==2.0.0�[0m�[91m
Step #0:  + exceptiongroup==1.2.2
Step #0:  + executing==2.1.0
Step #0:  + fastapi==0.115.4
Step #0:  + fastapi-cli==0.0.5
Step #0:  + fastjsonschema==2.21.1
Step #0:  + flask==3.1.1�[0m�[91m
Step #0:  + fonttools==4.58.5
Step #0:  + fqdn==1.5.1
Step #0:  + frozenlist==1.5.0
Step #0:  + fuzzywuzzy==0.18.0
Step #0:  + gitdb==4.0.12�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mgitpython==3.1.44
Step #0:  + google-api-core==2.22.0
Step #0:  + google-auth==2.36.0
Step #0:  + google-cloud==0.34.0
Step #0:  + google-cloud-core==2.4.1
Step #0:  + google-cloud-storage==2.18.2
Step #0:  + google-crc32c==1.6.0
Step #0:  + �[0m�[91mgoogle-resumable-media==2.7.2�[0m�[91m
Step #0: �[0m�[91m +�[0m�[91m �[0m�[91mgoogleapis-common-protos==�[0m�[91m1.66.0�[0m�[91m
Step #0: �[0m�[91m + graphene==3.4.3
Step #0:  + graphql-core==3.2.6
Step #0:  + graphql-relay==3.2.0
Step #0:  + greenlet==3.1.1
Step #0:  + gunicorn==23.0.0
Step #0:  + h11==0.14.0
Step #0:  + httpcore==1.0.7
Step #0:  + httptools==0.6.4�[0m�[91m
Step #0:  +�[0m�[91m �[0m�[91mhttpx==�[0m�[91m0.28.1
Step #0: �[0m�[91m �[0m�[91m+�[0m�[91m �[0m�[91midna�[0m�[91m==�[0m�[91m3.10�[0m�[91m
Step #0:  �[0m�[91m+�[0m�[91m importlib-metadata==8.7.0
Step #0:  + iniconfig==2.0.0
Step #0:  + ipykernel==6.29.5
Step #0:  + ipython==8.30.0
Step #0:  + isoduration==20.11.0
Step #0:  + isort==5.13.2
Step #0:  + itsdangerous==2.2.0
Step #0:  + jedi==0.19.2
Step #0:  + jinja2==3.1.4
Step #0: �[0m�[91m + joblib==1.5.1
Step #0:  + json5�[0m�[91m==0.10.0
Step #0:  + jsonpickle�[0m�[91m==4.0.1
Step #0:  + jsonpointer==3.0.0
Step #0:  + jsonschema==4.23.0
Step #0:  + jsonschema-specifications==2024.10.1
Step #0:  + �[0m�[91mjupyter-client==8.6.3
Step #0: �[0m�[91m + jupyter-core==5.7.2
Step #0:  + jupyter-events==0.10.0
Step #0:  + jupyter-lsp==2.2.5
Step #0:  + jupyter-server==2.14.2
Step #0:  + jupyter-server-terminals==0.5.3
Step #0:  + jupyterlab==4.3.2�[0m�[91m
Step #0:  + jupyterlab-pygments==0.3.0
Step #0: �[0m�[91m + jupyterlab-server==2.27.3�[0m�[91m
Step #0:  + kiwisolver==1.4.8
Step #0:  + lz4==4.4.4
Step #0:  + mako==1.3.10
Step #0:  + markdown-it-py==3.0.0
Step #0:  + markupsafe�[0m�[91m==3.0.2
Step #0:  + matplotlib==3.10.3
Step #0: �[0m�[91m + matplotlib-inline==0.1.7
Step #0:  + mccabe==0.7.0
Step #0:  + mdurl==0.1.2�[0m�[91m
Step #0:  + mistune==3.0.2
Step #0:  + mlflow==3.1.1
Step #0:  + mlflow-skinny==3.1.1
Step #0:  + multidict�[0m�[91m==6.1.0�[0m�[91m
Step #0:  + mypy==1.13.0
Step #0:  + mypy-extensions==1.0.0
Step #0:  + naked==0.1.32
Step #0:  + nbclient==0.10.1
Step #0:  + nbconvert==7.16.4
Step #0:  + nbformat==5.10.4
Step #0:  + nest-asyncio==1.6.0
Step #0:  + notebook-shim==0.2.4
Step #0:  + numpy�[0m�[91m==2.2.4
Step #0:  + oauthlib==3.2.2
Step #0: �[0m�[91m + openpyxl==3.1.5�[0m�[91m
Step #0: �[0m�[91m + opentelemetry-api==1.34.1
Step #0:  + opentelemetry-sdk==1.34.1
Step #0:  + opentelemetry-semantic-conventions==0.55b1
Step #0:  + overrides==7.7.0
Step #0:  + packaging==�[0m�[91m24.2
Step #0:  + pandas==2.2.3
Step #0:  + pandera==0.24.0
Step #0:  + pandocfilters==1.5.1
Step #0: �[0m�[91m + paramiko�[0m�[91m==3.5.0
Step #0:  + parso==0.8.4
Step #0:  + passlib==1.7.4
Step #0:  + pathspec==0.12.1�[0m�[91m
Step #0:  + pexpect==4.9.0
Step #0:  + pillow==11.3.0
Step #0:  + platformdirs==4.3.6
Step #0:  + pluggy==1.5.0
Step #0:  + prometheus-client==0.21.1
Step #0:  + prompt-toolkit==3.0.48
Step #0:  + propcache==0.2.1
Step #0:  + proto-plus==1.25.0
Step #0:  + protobuf==5.29.1
Step #0:  + psutil==6.1.0
Step #0:  + ptyprocess==0.7.0
Step #0:  + pure-eval==0.2.3
Step #0:  + pyarrow==20.0.0
Step #0:  + pyasn1==0.6.1
Step #0:  �[0m�[91m+ pyasn1-modules==0.4.1
Step #0:  �[0m�[91m+ pycparser==2.22
Step #0:  +�[0m�[91m pydantic==2.10.3
Step #0: �[0m�[91m + pydantic-core==2.27.1
Step #0:  + �[0m�[91mpygments�[0m�[91m==2.18.0
Step #0:  + pyjwt==2.10.1
Step #0:  + pylint==3.3.2
Step #0:  + pymysql==1.1.1
Step #0:  + pynacl==1.5.0
Step #0:  + pyparsing==3.2.3
Step #0:  + pytest==8.3.4
Step #0:  + python-dateutil==2.9.0.post0�[0m�[91m
Step #0:  + python-dotenv==1.0.1�[0m�[91m
Step #0:  + python-json-logger==�[0m�[91m2.0.7
Step #0:  + python-multipart�[0m�[91m==0.0.16
Step #0:  + pytz==2025.1
Step #0:  + pyyaml==6.0.2
Step #0:  + pyzmq==26.2.0
Step #0:  + referencing==0.35.1
Step #0:  + requests==2.32.3
Step #0:  + rfc3339-validator==0.1.4�[0m�[91m
Step #0:  + rfc3986-validator==0.1.1
Step #0:  �[0m�[91m+ rich==�[0m�[91m13.9.3
Step #0:  + rpds-py==0.22.3
Step #0:  + rsa==4.9
Step #0:  + ruff==�[0m�[91m0.8.2
Step #0:  + scikit-learn==1.7.0
Step #0:  + scipy==1.15.3
Step #0:  + send2trash==1.8.3
Step #0:  + setuptools==75.6.0
Step #0:  + shellescape==�[0m�[91m3.8.1
Step #0:  + shellingham==1.5.4
Step #0:  + six==1.17.0
Step #0:  + smmap==5.0.2
Step #0:  + sniffio==1.3.1
Step #0:  + soupsieve==2.6
Step #0: �[0m�[91m + sqlalchemy==�[0m�[91m2.0.36
Step #0:  + sqlparse==0.5.3
Step #0:  + stack-data==0.6.3
Step #0:  + starlette==0.41.2
Step #0:  + �[0m�[91mstrenum�[0m�[91m==0.4.15
Step #0:  + terminado==0.18.1
Step #0:  + threadpoolctl==3.6.0
Step #0:  + thrift==0.20.0
Step #0:  + tinycss2�[0m�[91m==1.4.0
Step #0:  + �[0m�[91mtomli==2.2.1
Step #0:  + tomlkit==0.13.2
Step #0:  + tornado==6.4.2
Step #0:  + traitlets==5.14.3
Step #0:  + typeguard�[0m�[91m==4.4.2
Step #0:  + �[0m�[91mtyper==0.12.5
Step #0:  + types-paramiko==3.5.0.20240928
Step #0:  + types-python-dateutil==2.9.0.20241206
Step #0:  + types-requests==2.32.0.20250306�[0m�[91m
Step #0:  + types-six==1.17.0.20250304
Step #0:  + typing-extensions==4.12.2
Step #0:  + typing-inspect==�[0m�[91m0.9.0
Step #0:  + tzdata==2025.2
Step #0:  + uri-template==1.3.0
Step #0:  + urllib3==2.2.3
Step #0:  + �[0m�[91muvicorn==0.32.0
Step #0:  + uvloop==0.21.0
Step #0:  + watchfiles==0.24.0
Step #0:  + wcwidth==0.2.13
Step #0:  + webcolors==24.11.1
Step #0:  + webencodings==0.5.1�[0m�[91m
Step #0: �[0m�[91m + websocket-client==1.8.0
Step #0:  + websockets==13.1
Step #0:  + werkzeug==3.1.3
Step #0:  + yarl==1.18.3
Step #0:  + �[0m�[91mzipp==3.23.0
Step #0: �[0mRemoving intermediate container c08e8501bbf5
Step #0:  ---> 23f18a867c05
Step #0: Step 8/14 : ADD . /app
Step #0:  ---> ea224fdb6358
Step #0: Step 9/14 : RUN uv sync --frozen --no-editable
Step #0:  ---> Running in b165f37e7159
Step #0: �[91m   Building src @ file:///app
Step #0: �[0m�[91m      Built src @ file:///app
Step #0: �[0m�[91mPrepared 1 package in 613ms
Step #0: �[0m�[91mInstalled 1 package in 2ms
Step #0: �[0m�[91mBytecode compiled 12056 files in 1.38s
Step #0:  + src==0.2.0.dev0 (from file:///app)
Step #0: �[0mRemoving intermediate container b165f37e7159
Step #0:  ---> 067abf11d524
Step #0: Step 10/14 : FROM python:3.10-slim-bookworm
Step #0:  ---> 563dffbdc425
Step #0: Step 11/14 : COPY --from=builder /app/.venv /app/.venv
Step #0:  ---> 510c30319faa
Step #0: Step 12/14 : COPY --from=builder /app/src /app/src
Step #0:  ---> 3375000e815d
Step #0: Step 13/14 : ENV PATH="/app/.venv/bin:$PATH"
Step #0:  ---> Running in 302ef01ac926
Step #0: Removing intermediate container 302ef01ac926
Step #0:  ---> 7ae0f4fa8094
Step #0: Step 14/14 : CMD ["fastapi", "run", "app/src/webapp", "--port", "8080", "--host", "0.0.0.0"]
Step #0:  ---> Running in 427f80af66a9
Step #0: Removing intermediate container 427f80af66a9
Step #0:  ---> 9055ffb247d0
Step #0: Successfully built 9055ffb247d0
Step #0: Successfully tagged us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp:8f2f06a9bc35d5099c05410e637380c34d7136f0
Step #0: Successfully tagged us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp:latest
Finished Step #0
Starting Step #1
Step #1: Already have image (with digest): gcr.io/cloud-builders/docker
Step #1: The push refers to repository [us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp]
Step #1: 4f2a3b4cd76e: Preparing
Step #1: 4a51c44302d9: Preparing
Step #1: 31abbb538de0: Preparing
Step #1: a2ccf7527b3c: Preparing
Step #1: abd92ba2021e: Preparing
Step #1: 1bb35e8b4de1: Preparing
Step #1: 1bb35e8b4de1: Waiting
Step #1: abd92ba2021e: Layer already exists
Step #1: 31abbb538de0: Layer already exists
Step #1: a2ccf7527b3c: Layer already exists
Step #1: 4f2a3b4cd76e: Pushed
Step #1: 1bb35e8b4de1: Pushed
Step #1: 4a51c44302d9: Pushed
Step #1: 8f2f06a9bc35d5099c05410e637380c34d7136f0: digest: sha256:5ef291913b1ff569f7c24d4cc26331c73c17da87477cf74a46dd4416c8ff84b4 size: 1581
Finished Step #1
Starting Step #2
Step #2: Already have image (with digest): gcr.io/cloud-builders/docker
Step #2: The push refers to repository [us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp]
Step #2: 4f2a3b4cd76e: Preparing
Step #2: 4a51c44302d9: Preparing
Step #2: 31abbb538de0: Preparing
Step #2: a2ccf7527b3c: Preparing
Step #2: abd92ba2021e: Preparing
Step #2: 1bb35e8b4de1: Preparing
Step #2: 1bb35e8b4de1: Waiting
Step #2: 4f2a3b4cd76e: Layer already exists
Step #2: 31abbb538de0: Layer already exists
Step #2: a2ccf7527b3c: Layer already exists
Step #2: abd92ba2021e: Layer already exists
Step #2: 4a51c44302d9: Layer already exists
Step #2: 1bb35e8b4de1: Layer already exists
Step #2: latest: digest: sha256:5ef291913b1ff569f7c24d4cc26331c73c17da87477cf74a46dd4416c8ff84b4 size: 1581
Finished Step #2
Starting Step #3
Step #3: Already have image (with digest): gcr.io/cloud-builders/gcloud
Step #3: Deploying container to Cloud Run service [dev-webapp] in project [dev-sst-02] region [us-east4]
Step #3: Deploying...
Step #3: Creating Revision.......................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................done
Step #3: Routing traffic.....done
Step #3: Done.
Step #3: Service [dev-webapp] revision [dev-webapp-00291-nf2] has been deployed and is serving 100 percent of traffic.
Step #3: Service URL: https://dev-webapp-30046184227.us-east4.run.app
Finished Step #3
PUSH
DONE

Build Log: https://console.cloud.google.com/logs/viewer?advancedFilter=resource.type%3D%22build%22+AND+resource.labels.build_id%3D%223b7c81e1-b87f-44c3-9413-e645ae2b750e%22+AND+resource.labels.build_trigger_id%3D%2234b36ab0-f21d-470f-9580-8f985c6a5c87%22&project=dev-sst-02