Skip to content

fetch cache bucket name from gcp env

35b254b
Select commit
Loading
Failed to load commit list.
Merged

fetch cache bucket name from gcp env #175

fetch cache bucket name from gcp env
35b254b
Select commit
Loading
Failed to load commit list.
Google Cloud Build / dev-webapp (dev-sst-02) succeeded Oct 14, 2025 in 3m 34s

Summary

Build Information

Trigger dev-webapp
Build 67f8254b-46ed-4527-9663-f0e93cf6b3e7
Start 2025-10-13T19:04:55-07:00
Duration 3m32.358s
Status SUCCESS

Steps

Step Status Duration
gcr.io/cloud-builders/docker SUCCESS 1m46.91s
gcr.io/cloud-builders/docker SUCCESS 58.497s
gcr.io/cloud-builders/docker SUCCESS 991ms
gcr.io/cloud-builders/gcloud SUCCESS 42.942s

Details


starting build "67f8254b-46ed-4527-9663-f0e93cf6b3e7"

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            35b254bd43d1aa6c3ad5e3d81ce3a769f8497daa -> FETCH_HEAD
HEAD is now at 35b254b fetch cache bucket name from gcp env
GitCommit:
35b254bd43d1aa6c3ad5e3d81ce3a769f8497daa
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.682MB

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: 5c32499ab806: Pulling fs layer
Step #0: 3fdcdb666c93: Pulling fs layer
Step #0: b8c6737fb7ec: Pulling fs layer
Step #0: cf7c760df656: Pulling fs layer
Step #0: cf7c760df656: Waiting
Step #0: b8c6737fb7ec: Verifying Checksum
Step #0: b8c6737fb7ec: Download complete
Step #0: 5c32499ab806: Verifying Checksum
Step #0: 5c32499ab806: Download complete
Step #0: 3fdcdb666c93: Verifying Checksum
Step #0: 3fdcdb666c93: Download complete
Step #0: cf7c760df656: Verifying Checksum
Step #0: cf7c760df656: Download complete
Step #0: 5c32499ab806: Pull complete
Step #0: 3fdcdb666c93: Pull complete
Step #0: b8c6737fb7ec: Pull complete
Step #0: cf7c760df656: Pull complete
Step #0: Digest: sha256:cda0e2fa3894f9ada2c652534e6de6b2fe65687c63208a77e9e8d88231547902
Step #0: Status: Downloaded newer image for python:3.10-slim-bookworm
Step #0:  ---> 1dbe112d274e
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:  ---> 3e821726c86f
Step #0: Step 3/14 : ENV UV_COMPILE_BYTECODE=1
Step #0:  ---> Running in 64965ee49475
Step #0: Removing intermediate container 64965ee49475
Step #0:  ---> 6a77d72d6f5d
Step #0: Step 4/14 : ENV UV_NO_CACHE=1
Step #0:  ---> Running in 05f5c7cf03e6
Step #0: Removing intermediate container 05f5c7cf03e6
Step #0:  ---> 963433c33746
Step #0: Step 5/14 : WORKDIR /app
Step #0:  ---> Running in 5fcb93458e2b
Step #0: Removing intermediate container 5fcb93458e2b
Step #0:  ---> 9b1109747d9e
Step #0: Step 6/14 : ADD uv.lock pyproject.toml /app/
Step #0:  ---> 28887f197716
Step #0: Step 7/14 : RUN uv sync --frozen --no-install-project
Step #0:  ---> Running in 937c27f7ca5b
Step #0: �[91mUsing CPython 3.10.19 interpreter at: /usr/local/bin/python3
Step #0: Creating virtual environment at: .venv
Step #0: �[0m�[91mDownloading jedi (1.5MiB)
Step #0: �[0m�[91mDownloading setuptools (1.1MiB)
Step #0: �[0m�[91mDownloading�[0m�[91m pycryptodome (2.0MiB)
Step #0: �[0m�[91mDownloading pygments (1.2MiB)
Step #0: �[0m�[91mDownloading pydantic-core (1.9MiB)
Step #0: �[0m�[91mDownloading�[0m�[91m mypy (12.1MiB)
Step #0: �[0m�[91mDownloading pillow (6.3MiB)
Step #0: �[0m�[91mDownloading lz4 (1.2MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading rapidfuzz �[0m�[91m(2.9MiB)
Step #0: �[0m�[91mDownloading aiohttp (1.6MiB)
Step #0: �[0m�[91mDownloading uvloop �[0m�[91m(3.6MiB)
Step #0: �[0m�[91mDownloading scikit-learn (9.2MiB)
Step #0: �[0m�[91mDownloading debugpy (3.4MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading jupyterlab (11.7MiB)
Step #0: �[0m�[91mDownloading pandas (12.5MiB)
Step #0: �[0m�[91mDownloading numpy (17.4MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading black (1.7MiB)
Step #0: �[0m�[91mDownloading ruff (12.3MiB)
Step #0: �[0m�[91mDownloading scipy (35.9MiB)
Step #0: �[0m�[91mDownloading babel (9.7MiB)
Step #0: �[0m�[91mDownloading kiwisolver (1.6MiB)
Step #0: �[0m�[91mDownloading fonttools (4.6MiB)
Step #0: �[0m�[91mDownloading sqlalchemy (3.1MiB)
Step #0: �[0m�[91mDownloading matplotlib (8.3MiB)
Step #0: �[0m�[91mDownloading cryptography (4.2MiB)
Step #0: �[0m�[91mDownloading pyarrow (36.6MiB)
Step #0: �[0m�[91mDownloading mlflow-skinny (5.2MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading mlflow (25.1MiB)
Step #0: �[0m�[91m Downloaded lz4
Step #0: �[0m�[91m Downloaded kiwisolver
Step #0: �[0m�[91m Downloaded aiohttp
Step #0: �[0m�[91m Downloaded pydantic-core
Step #0: �[0m�[91m Downloaded pygments
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m black
Step #0: �[0m�[91m Downloaded pycryptodome
Step #0: �[0m�[91m Downloaded setuptools
Step #0: �[0m�[91m   Building thrift==0.20.0
Step #0: �[0m�[91m Downloaded sqlalchemy
Step #0: �[0m�[91m Downloaded rapidfuzz
Step #0: �[0m�[91m �[0m�[91mDownloaded �[0m�[91mdebugpy
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91muvloop�[0m�[91m
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mcryptography�[0m�[91m
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mfonttools�[0m�[91m
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mpillow�[0m�[91m
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mmlflow-skinny�[0m�[91m
Step #0: �[0m�[91m      Built thrift==0.20.0
Step #0: �[0m�[91m Downloaded matplotlib
Step #0: �[0m�[91m Downloaded babel
Step #0: �[0m�[91m Downloaded scikit-learn
Step #0: �[0m�[91m Downloaded ruff
Step #0: �[0m�[91m Downloaded jupyterlab
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m numpy
Step #0: �[0m�[91m Downloaded pandas�[0m�[91m
Step #0: �[0m�[91m Downloaded jedi�[0m�[91m
Step #0: �[0m�[91m Downloaded mlflow
Step #0: �[0m�[91m Downloaded pyarrow
Step #0: �[0m�[91m Downloaded scipy
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mmypy�[0m�[91m
Step #0: �[0m�[91mPrepared �[0m�[91m226 packages�[0m�[91m �[0m�[91min 10.05s�[0m�[91m
Step #0: �[0m�[91mInstalled 226 packages in 2.13s
Step #0: �[0m�[91mBytecode compiled 12443 files in 26.56s
Step #0: �[0m�[91m + aiofiles==24.1.0�[0m�[91m
Step #0:  + aiohappyeyeballs==2.6.1
Step #0:  + aiohttp�[0m�[91m==3.12.15
Step #0:  + aiosignal�[0m�[91m==1.4.0
Step #0:  + alembic�[0m�[91m==1.16.4
Step #0:  �[0m�[91m+ annotated-types==0.7.0
Step #0:  +�[0m�[91m anyio==4.10.0�[0m�[91m
Step #0:  + argon2-cffi==25.1.0
Step #0: �[0m�[91m + argon2-cffi-bindings==25.1.0�[0m�[91m
Step #0:  + arrow==1.3.0�[0m�[91m
Step #0:  + astroid==3.3.11�[0m�[91m
Step #0:  + asttokens==3.0.0�[0m�[91m
Step #0:  �[0m�[91m+ async-lru==2.0.5
Step #0:  + async-timeout�[0m�[91m==5.0.1�[0m�[91m
Step #0:  + attrs==25.3.0
Step #0: �[0m�[91m + babel==�[0m�[91m2.17.0
Step #0:  + bcrypt==�[0m�[91m4.2.1
Step #0:  + beautifulsoup4==�[0m�[91m4.13.4
Step #0:  + black==25.1.0�[0m�[91m
Step #0:  + �[0m�[91mbleach==6.2.0
Step #0:  + blinker==�[0m�[91m1.9.0�[0m�[91m
Step #0:  + cachetools==5.5.2
Step #0:  +�[0m�[91m certifi==2025.8.3�[0m�[91m
Step #0:  + cffi==1.17.1�[0m�[91m
Step #0:  + charset-normalizer==3.4.3�[0m�[91m
Step #0:  + click==8.2.1
Step #0:  �[0m�[91m+ cloud-sql-python-connector==�[0m�[91m1.14.0
Step #0:  + cloudpickle==3.1.1�[0m�[91m
Step #0:  +�[0m�[91m comm==0.2.3
Step #0:  + �[0m�[91mcontourpy==1.3.2�[0m�[91m
Step #0:  + coverage==7.6.12�[0m�[91m
Step #0: �[0m�[91m + cryptography==45.0.6
Step #0:  + �[0m�[91mcycler==0.12.1
Step #0:  �[0m�[91m+ databricks-sdk==0.38.0�[0m�[91m
Step #0:  + databricks-sql-connector==3.5.0�[0m�[91m
Step #0:  + debugpy�[0m�[91m==1.8.16
Step #0:  + decorator==�[0m�[91m5.2.1
Step #0:  + �[0m�[91mdefusedxml==0.7.1
Step #0:  �[0m�[91m+ dill==0.4.0
Step #0: �[0m�[91m + dnspython==2.7.0�[0m�[91m
Step #0:  + docker==7.1.0
Step #0: �[0m�[91m + email-validator==2.2.0
Step #0:  �[0m�[91m+ entrypoints==�[0m�[91m0.4
Step #0:  + et-xmlfile==2.0.0�[0m�[91m
Step #0:  + exceptiongroup�[0m�[91m==1.3.0
Step #0:  +�[0m�[91m executing==2.2.0
Step #0:  + �[0m�[91mfastapi==0.115.14
Step #0: �[0m�[91m + fastapi-cli==0.0.8
Step #0: �[0m�[91m + fastapi-cloud-cli==0.1.5�[0m�[91m
Step #0:  + fastjsonschema�[0m�[91m==2.21.1
Step #0:  + flask�[0m�[91m==3.1.1
Step #0: �[0m�[91m + fonttools==4.59.0
Step #0:  +�[0m�[91m fqdn==1.5.1�[0m�[91m
Step #0:  + frozenlist==1.7.0�[0m�[91m
Step #0:  + gitdb==�[0m�[91m4.0.12
Step #0:  + �[0m�[91mgitpython==3.1.45
Step #0:  + �[0m�[91mgoogle-api-core==2.25.1
Step #0:  + �[0m�[91mgoogle-auth==2.40.3
Step #0:  �[0m�[91m+ google-cloud-core==2.4.3
Step #0:  +�[0m�[91m google-cloud-storage==2.18.2�[0m�[91m
Step #0:  + google-crc32c==1.7.1�[0m�[91m
Step #0:  + �[0m�[91mgoogle-resumable-media==2.7.2
Step #0:  +�[0m�[91m googleapis-common-protos==1.70.0
Step #0:  �[0m�[91m+ graphene==3.4.3�[0m�[91m
Step #0:  + graphql-core==3.2.6�[0m�[91m
Step #0:  + graphql-relay==�[0m�[91m3.2.0
Step #0:  + greenlet�[0m�[91m==3.2.4
Step #0:  + gunicorn==�[0m�[91m22.0.0
Step #0:  �[0m�[91m+ h11==0.16.0
Step #0:  + �[0m�[91mhttpcore==1.0.9�[0m�[91m
Step #0:  + httptools==0.6.4�[0m�[91m
Step #0:  + httpx==0.28.1�[0m�[91m
Step #0:  + idna==3.10�[0m�[91m
Step #0:  + importlib-metadata==�[0m�[91m7.2.1
Step #0:  + iniconfig==2.1.0
Step #0: �[0m�[91m + ipykernel==6.30.1�[0m�[91m
Step #0:  + ipython==8.37.0�[0m�[91m
Step #0:  + isoduration==20.11.0�[0m�[91m
Step #0:  + isort==6.0.1
Step #0:  �[0m�[91m+ itsdangerous==2.2.0
Step #0: �[0m�[91m + jedi==0.19.2�[0m�[91m
Step #0:  + jinja2==3.1.6�[0m�[91m
Step #0:  + joblib==1.5.1
Step #0:  �[0m�[91m+ json5==0.12.0
Step #0:  �[0m�[91m+ jsonpickle==4.0.5
Step #0:  + �[0m�[91mjsonpointer==3.0.0
Step #0:  + jsonschema�[0m�[91m==4.25.0
Step #0:  + jsonschema-specifications==2025.4.1�[0m�[91m
Step #0:  + jupyter-client==8.6.3�[0m�[91m
Step #0:  + jupyter-core==5.8.1�[0m�[91m
Step #0:  + jupyter-events==0.12.0�[0m�[91m
Step #0:  + jupyter-lsp==2.2.6�[0m�[91m
Step #0:  + jupyter-server==2.16.0
Step #0: �[0m�[91m + jupyter-server-terminals==0.5.3
Step #0:  +�[0m�[91m jupyterlab==4.4.5
Step #0:  +�[0m�[91m jupyterlab-pygments==0.3.0
Step #0:  + jupyterlab-server�[0m�[91m==2.27.3
Step #0:  + kiwisolver==�[0m�[91m1.4.9
Step #0:  + lark==1.2.2
Step #0:  +�[0m�[91m lz4==4.4.4
Step #0:  +�[0m�[91m mako==1.3.10
Step #0:  + markdown�[0m�[91m==3.8.2
Step #0:  + markdown-it-py==4.0.0
Step #0:  + markupsafe==3.0.2�[0m�[91m
Step #0:  + matplotlib==�[0m�[91m3.10.5
Step #0:  + matplotlib-inline==0.1.7
Step #0:  + mccabe==0.7.0
Step #0:  + mdurl==0.1.2
Step #0:  + mistune==3.1.3
Step #0:  + mlflow==2.15.1�[0m�[91m
Step #0:  + mlflow-skinny==2.15.1
Step #0:  + multidict==6.6.4�[0m�[91m
Step #0:  + mypy==1.17.1
Step #0:  + mypy-extensions==1.1.0�[0m�[91m
Step #0:  + nbclient==0.10.2
Step #0:  + nbconvert==7.16.6�[0m�[91m
Step #0:  + nbformat==5.10.4
Step #0:  + nest-asyncio==1.6.0�[0m�[91m
Step #0:  + notebook-shim==0.2.4
Step #0:  + numpy==1.26.4�[0m�[91m
Step #0:  + oauthlib==3.3.1
Step #0:  + openpyxl==3.1.5�[0m�[91m
Step #0:  + opentelemetry-api==1.36.0
Step #0:  + opentelemetry-sdk==1.36.0�[0m�[91m
Step #0:  + opentelemetry-semantic-conventions==0.57b0
Step #0:  + overrides==7.7.0�[0m�[91m
Step #0:  + packaging==24.2
Step #0:  + pandas==2.2.3
Step #0:  + pandera==0.25.0�[0m�[91m
Step #0:  + pandocfilters==1.5.1
Step #0:  + paramiko==3.5.1
Step #0:  + parso==0.8.4
Step #0:  + passlib==1.7.4
Step #0:  + pathspec==0.12.1
Step #0:  + pexpect==4.9.0
Step #0:  + pillow==11.3.0
Step #0:  + platformdirs==4.3.8
Step #0:  + pluggy==1.6.0
Step #0:  + prometheus-client==0.22.1
Step #0:  + prompt-toolkit==3.0.51
Step #0:  + propcache==0.3.2
Step #0:  + proto-plus==1.26.1
Step #0:  + protobuf==5.29.5
Step #0:  + psutil==7.0.0
Step #0:  + ptyprocess==0.7.0
Step #0:  + pure-eval==0.2.3
Step #0:  + pyarrow==15.0.2
Step #0:  + pyasn1==0.6.1
Step #0:  + pyasn1-modules==0.4.2
Step #0:  + pycparser==2.22
Step #0:  + pycryptodome==3.20.0
Step #0:  + pydantic==2.11.7
Step #0:  + pydantic-core==2.33.2
Step #0:  + pygments==2.19.2
Step #0:  + pyjwt==2.10.1
Step #0:  + pylint==3.3.8
Step #0:  + pymysql==1.1.1
Step #0:  +�[0m�[91m pynacl==1.5.0
Step #0:  + pyparsing==3.2.3
Step #0:  + pytest==8.4.1
Step #0:  + python-dateutil==2.9.0.post0
Step #0:  + python-dotenv==1.0.1
Step #0:  + python-json-logger==3.3.0
Step #0:  + python-multipart==0.0.20
Step #0:  + pytz==2024.2
Step #0:  + pyyaml==6.0.2
Step #0:  + pyzmq==27.0.1
Step #0:  + querystring-parser==1.2.4
Step #0:  + rapidfuzz==3.13.0
Step #0:  + referencing==0.36.2
Step #0:  + requests==2.32.4
Step #0:  + rfc3339-validator==0.1.4
Step #0:  + rfc3986-validator==0.1.1�[0m�[91m
Step #0:  + rfc3987-syntax==1.1.0
Step #0:  + rich==14.1.0
Step #0:  + rich-toolkit==0.15.0
Step #0:  + rignore==0.6.4
Step #0:  �[0m�[91m+�[0m�[91m rpds-py==0.27.0�[0m�[91m
Step #0:  + rsa==�[0m�[91m4.9.1�[0m�[91m
Step #0:  + ruff==0.12.8
Step #0:  + scikit-learn==�[0m�[91m1.7.1�[0m�[91m
Step #0:  + scipy==�[0m�[91m1.15.3
Step #0:  + send2trash==1.8.3
Step #0:  + sentry-sdk�[0m�[91m==2.34.1
Step #0:  + setuptools==80.9.0
Step #0:  + shellingham==1.5.4�[0m�[91m
Step #0:  + six==1.16.0
Step #0:  + smmap==5.0.2�[0m�[91m
Step #0:  + sniffio==1.3.1�[0m�[91m
Step #0:  + soupsieve==�[0m�[91m2.7�[0m�[91m
Step #0:  + sqlalchemy==2.0.43
Step #0:  + sqlparse==0.5.3
Step #0:  +�[0m�[91m stack-data==0.6.3
Step #0:  + starlette==0.46.2
Step #0:  + strenum==0.4.15
Step #0:  +�[0m�[91m terminado==0.18.1
Step #0:  + thefuzz==0.22.1
Step #0:  + threadpoolctl==�[0m�[91m3.6.0
Step #0:  + thrift==0.20.0
Step #0:  + tinycss2==1.4.0
Step #0:  �[0m�[91m+ tomli==2.2.1
Step #0: �[0m�[91m + tomlkit==0.13.3
Step #0:  + tornado==6.5.2�[0m�[91m
Step #0:  + traitlets==5.14.3
Step #0:  + typeguard==4.4.4
Step #0:  + typer==0.16.0
Step #0:  + types-paramiko==3.5.0.20250801�[0m�[91m
Step #0:  + types-python-dateutil==2.9.0.20250809
Step #0:  + types-requests==2.32.0.20250602
Step #0:  + typing-extensions==4.14.1
Step #0:  + typing-inspect==0.9.0
Step #0:  �[0m�[91m+ typing-inspection==0.4.1
Step #0:  + tzdata==2025.2
Step #0:  + uri-template==1.3.0
Step #0:  + urllib3==2.5.0
Step #0:  + uvicorn==0.35.0�[0m�[91m
Step #0:  + uvloop==0.21.0
Step #0:  + watchfiles==1.1.0
Step #0:  + wcwidth==0.2.13
Step #0:  + webcolors==24.11.1
Step #0:  +�[0m�[91m webencodings==0.5.1
Step #0:  + �[0m�[91mwebsocket-client==1.8.0
Step #0:  + websockets==15.0.1
Step #0:  + werkzeug==3.1.3
Step #0:  + yarl==1.20.1
Step #0:  + zipp==3.23.0�[0m�[91m
Step #0: �[0mRemoving intermediate container 937c27f7ca5b
Step #0:  ---> 1df968b4ca8e
Step #0: Step 8/14 : ADD . /app
Step #0:  ---> 7feb955f9b5d
Step #0: Step 9/14 : RUN uv sync --frozen --no-editable
Step #0:  ---> Running in ea3b539c6a42
Step #0: �[91m   Building src @ file:///app
Step #0: �[0m�[91m      Built src @ file:///app
Step #0: �[0m�[91mPrepared 1 package in 485ms
Step #0: �[0m�[91mInstalled 1 package in 2ms
Step #0: �[0m�[91mBytecode compiled 12479 files in 1.44s
Step #0:  + src==0.2.0.dev0�[0m�[91m (from �[0m�[91mfile:///app)
Step #0: �[0mRemoving intermediate container ea3b539c6a42
Step #0:  ---> cf70e3c524dc
Step #0: Step 10/14 : FROM python:3.10-slim-bookworm
Step #0:  ---> 1dbe112d274e
Step #0: Step 11/14 : COPY --from=builder /app/.venv /app/.venv
Step #0:  ---> 2a0e129f7131
Step #0: Step 12/14 : COPY --from=builder /app/src /app/src
Step #0:  ---> 6030f9611053
Step #0: Step 13/14 : ENV PATH="/app/.venv/bin:$PATH"
Step #0:  ---> Running in 3e2bd3d44a6d
Step #0: Removing intermediate container 3e2bd3d44a6d
Step #0:  ---> 9c7f9611776e
Step #0: Step 14/14 : CMD ["fastapi", "run", "app/src/webapp", "--port", "8080", "--host", "0.0.0.0"]
Step #0:  ---> Running in 14e89f42ab2f
Step #0: Removing intermediate container 14e89f42ab2f
Step #0:  ---> 46218540bfda
Step #0: Successfully built 46218540bfda
Step #0: Successfully tagged us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp:35b254bd43d1aa6c3ad5e3d81ce3a769f8497daa
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: b201fccc40e3: Preparing
Step #1: 3b15299d14bb: Preparing
Step #1: cb573af979fc: Preparing
Step #1: 4480d237a726: Preparing
Step #1: 1ffff31dfa8e: Preparing
Step #1: aca836066730: Preparing
Step #1: aca836066730: Waiting
Step #1: 1ffff31dfa8e: Layer already exists
Step #1: 4480d237a726: Layer already exists
Step #1: cb573af979fc: Layer already exists
Step #1: b201fccc40e3: Pushed
Step #1: aca836066730: Pushed
Step #1: 3b15299d14bb: Pushed
Step #1: 35b254bd43d1aa6c3ad5e3d81ce3a769f8497daa: digest: sha256:229d4e86e77af2b89522e4a319273ff5cb85bc8e8a708315b5ab8ef99971511c 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: b201fccc40e3: Preparing
Step #2: 3b15299d14bb: Preparing
Step #2: cb573af979fc: Preparing
Step #2: 4480d237a726: Preparing
Step #2: 1ffff31dfa8e: Preparing
Step #2: aca836066730: Preparing
Step #2: aca836066730: Waiting
Step #2: 4480d237a726: Layer already exists
Step #2: 1ffff31dfa8e: Layer already exists
Step #2: 3b15299d14bb: Layer already exists
Step #2: b201fccc40e3: Layer already exists
Step #2: aca836066730: Layer already exists
Step #2: cb573af979fc: Layer already exists
Step #2: latest: digest: sha256:229d4e86e77af2b89522e4a319273ff5cb85bc8e8a708315b5ab8ef99971511c 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 "67f8254b-46ed-4527-9663-f0e93cf6b3e7"

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            35b254bd43d1aa6c3ad5e3d81ce3a769f8497daa -> FETCH_HEAD
HEAD is now at 35b254b fetch cache bucket name from gcp env
GitCommit:
35b254bd43d1aa6c3ad5e3d81ce3a769f8497daa
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.682MB

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: 5c32499ab806: Pulling fs layer
Step #0: 3fdcdb666c93: Pulling fs layer
Step #0: b8c6737fb7ec: Pulling fs layer
Step #0: cf7c760df656: Pulling fs layer
Step #0: cf7c760df656: Waiting
Step #0: b8c6737fb7ec: Verifying Checksum
Step #0: b8c6737fb7ec: Download complete
Step #0: 5c32499ab806: Verifying Checksum
Step #0: 5c32499ab806: Download complete
Step #0: 3fdcdb666c93: Verifying Checksum
Step #0: 3fdcdb666c93: Download complete
Step #0: cf7c760df656: Verifying Checksum
Step #0: cf7c760df656: Download complete
Step #0: 5c32499ab806: Pull complete
Step #0: 3fdcdb666c93: Pull complete
Step #0: b8c6737fb7ec: Pull complete
Step #0: cf7c760df656: Pull complete
Step #0: Digest: sha256:cda0e2fa3894f9ada2c652534e6de6b2fe65687c63208a77e9e8d88231547902
Step #0: Status: Downloaded newer image for python:3.10-slim-bookworm
Step #0:  ---> 1dbe112d274e
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:  ---> 3e821726c86f
Step #0: Step 3/14 : ENV UV_COMPILE_BYTECODE=1
Step #0:  ---> Running in 64965ee49475
Step #0: Removing intermediate container 64965ee49475
Step #0:  ---> 6a77d72d6f5d
Step #0: Step 4/14 : ENV UV_NO_CACHE=1
Step #0:  ---> Running in 05f5c7cf03e6
Step #0: Removing intermediate container 05f5c7cf03e6
Step #0:  ---> 963433c33746
Step #0: Step 5/14 : WORKDIR /app
Step #0:  ---> Running in 5fcb93458e2b
Step #0: Removing intermediate container 5fcb93458e2b
Step #0:  ---> 9b1109747d9e
Step #0: Step 6/14 : ADD uv.lock pyproject.toml /app/
Step #0:  ---> 28887f197716
Step #0: Step 7/14 : RUN uv sync --frozen --no-install-project
Step #0:  ---> Running in 937c27f7ca5b
Step #0: �[91mUsing CPython 3.10.19 interpreter at: /usr/local/bin/python3
Step #0: Creating virtual environment at: .venv
Step #0: �[0m�[91mDownloading jedi (1.5MiB)
Step #0: �[0m�[91mDownloading setuptools (1.1MiB)
Step #0: �[0m�[91mDownloading�[0m�[91m pycryptodome (2.0MiB)
Step #0: �[0m�[91mDownloading pygments (1.2MiB)
Step #0: �[0m�[91mDownloading pydantic-core (1.9MiB)
Step #0: �[0m�[91mDownloading�[0m�[91m mypy (12.1MiB)
Step #0: �[0m�[91mDownloading pillow (6.3MiB)
Step #0: �[0m�[91mDownloading lz4 (1.2MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading rapidfuzz �[0m�[91m(2.9MiB)
Step #0: �[0m�[91mDownloading aiohttp (1.6MiB)
Step #0: �[0m�[91mDownloading uvloop �[0m�[91m(3.6MiB)
Step #0: �[0m�[91mDownloading scikit-learn (9.2MiB)
Step #0: �[0m�[91mDownloading debugpy (3.4MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading jupyterlab (11.7MiB)
Step #0: �[0m�[91mDownloading pandas (12.5MiB)
Step #0: �[0m�[91mDownloading numpy (17.4MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading black (1.7MiB)
Step #0: �[0m�[91mDownloading ruff (12.3MiB)
Step #0: �[0m�[91mDownloading scipy (35.9MiB)
Step #0: �[0m�[91mDownloading babel (9.7MiB)
Step #0: �[0m�[91mDownloading kiwisolver (1.6MiB)
Step #0: �[0m�[91mDownloading fonttools (4.6MiB)
Step #0: �[0m�[91mDownloading sqlalchemy (3.1MiB)
Step #0: �[0m�[91mDownloading matplotlib (8.3MiB)
Step #0: �[0m�[91mDownloading cryptography (4.2MiB)
Step #0: �[0m�[91mDownloading pyarrow (36.6MiB)
Step #0: �[0m�[91mDownloading mlflow-skinny (5.2MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading mlflow (25.1MiB)
Step #0: �[0m�[91m Downloaded lz4
Step #0: �[0m�[91m Downloaded kiwisolver
Step #0: �[0m�[91m Downloaded aiohttp
Step #0: �[0m�[91m Downloaded pydantic-core
Step #0: �[0m�[91m Downloaded pygments
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m black
Step #0: �[0m�[91m Downloaded pycryptodome
Step #0: �[0m�[91m Downloaded setuptools
Step #0: �[0m�[91m   Building thrift==0.20.0
Step #0: �[0m�[91m Downloaded sqlalchemy
Step #0: �[0m�[91m Downloaded rapidfuzz
Step #0: �[0m�[91m �[0m�[91mDownloaded �[0m�[91mdebugpy
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91muvloop�[0m�[91m
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mcryptography�[0m�[91m
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mfonttools�[0m�[91m
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mpillow�[0m�[91m
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mmlflow-skinny�[0m�[91m
Step #0: �[0m�[91m      Built thrift==0.20.0
Step #0: �[0m�[91m Downloaded matplotlib
Step #0: �[0m�[91m Downloaded babel
Step #0: �[0m�[91m Downloaded scikit-learn
Step #0: �[0m�[91m Downloaded ruff
Step #0: �[0m�[91m Downloaded jupyterlab
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m numpy
Step #0: �[0m�[91m Downloaded pandas�[0m�[91m
Step #0: �[0m�[91m Downloaded jedi�[0m�[91m
Step #0: �[0m�[91m Downloaded mlflow
Step #0: �[0m�[91m Downloaded pyarrow
Step #0: �[0m�[91m Downloaded scipy
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mmypy�[0m�[91m
Step #0: �[0m�[91mPrepared �[0m�[91m226 packages�[0m�[91m �[0m�[91min 10.05s�[0m�[91m
Step #0: �[0m�[91mInstalled 226 packages in 2.13s
Step #0: �[0m�[91mBytecode compiled 12443 files in 26.56s
Step #0: �[0m�[91m + aiofiles==24.1.0�[0m�[91m
Step #0:  + aiohappyeyeballs==2.6.1
Step #0:  + aiohttp�[0m�[91m==3.12.15
Step #0:  + aiosignal�[0m�[91m==1.4.0
Step #0:  + alembic�[0m�[91m==1.16.4
Step #0:  �[0m�[91m+ annotated-types==0.7.0
Step #0:  +�[0m�[91m anyio==4.10.0�[0m�[91m
Step #0:  + argon2-cffi==25.1.0
Step #0: �[0m�[91m + argon2-cffi-bindings==25.1.0�[0m�[91m
Step #0:  + arrow==1.3.0�[0m�[91m
Step #0:  + astroid==3.3.11�[0m�[91m
Step #0:  + asttokens==3.0.0�[0m�[91m
Step #0:  �[0m�[91m+ async-lru==2.0.5
Step #0:  + async-timeout�[0m�[91m==5.0.1�[0m�[91m
Step #0:  + attrs==25.3.0
Step #0: �[0m�[91m + babel==�[0m�[91m2.17.0
Step #0:  + bcrypt==�[0m�[91m4.2.1
Step #0:  + beautifulsoup4==�[0m�[91m4.13.4
Step #0:  + black==25.1.0�[0m�[91m
Step #0:  + �[0m�[91mbleach==6.2.0
Step #0:  + blinker==�[0m�[91m1.9.0�[0m�[91m
Step #0:  + cachetools==5.5.2
Step #0:  +�[0m�[91m certifi==2025.8.3�[0m�[91m
Step #0:  + cffi==1.17.1�[0m�[91m
Step #0:  + charset-normalizer==3.4.3�[0m�[91m
Step #0:  + click==8.2.1
Step #0:  �[0m�[91m+ cloud-sql-python-connector==�[0m�[91m1.14.0
Step #0:  + cloudpickle==3.1.1�[0m�[91m
Step #0:  +�[0m�[91m comm==0.2.3
Step #0:  + �[0m�[91mcontourpy==1.3.2�[0m�[91m
Step #0:  + coverage==7.6.12�[0m�[91m
Step #0: �[0m�[91m + cryptography==45.0.6
Step #0:  + �[0m�[91mcycler==0.12.1
Step #0:  �[0m�[91m+ databricks-sdk==0.38.0�[0m�[91m
Step #0:  + databricks-sql-connector==3.5.0�[0m�[91m
Step #0:  + debugpy�[0m�[91m==1.8.16
Step #0:  + decorator==�[0m�[91m5.2.1
Step #0:  + �[0m�[91mdefusedxml==0.7.1
Step #0:  �[0m�[91m+ dill==0.4.0
Step #0: �[0m�[91m + dnspython==2.7.0�[0m�[91m
Step #0:  + docker==7.1.0
Step #0: �[0m�[91m + email-validator==2.2.0
Step #0:  �[0m�[91m+ entrypoints==�[0m�[91m0.4
Step #0:  + et-xmlfile==2.0.0�[0m�[91m
Step #0:  + exceptiongroup�[0m�[91m==1.3.0
Step #0:  +�[0m�[91m executing==2.2.0
Step #0:  + �[0m�[91mfastapi==0.115.14
Step #0: �[0m�[91m + fastapi-cli==0.0.8
Step #0: �[0m�[91m + fastapi-cloud-cli==0.1.5�[0m�[91m
Step #0:  + fastjsonschema�[0m�[91m==2.21.1
Step #0:  + flask�[0m�[91m==3.1.1
Step #0: �[0m�[91m + fonttools==4.59.0
Step #0:  +�[0m�[91m fqdn==1.5.1�[0m�[91m
Step #0:  + frozenlist==1.7.0�[0m�[91m
Step #0:  + gitdb==�[0m�[91m4.0.12
Step #0:  + �[0m�[91mgitpython==3.1.45
Step #0:  + �[0m�[91mgoogle-api-core==2.25.1
Step #0:  + �[0m�[91mgoogle-auth==2.40.3
Step #0:  �[0m�[91m+ google-cloud-core==2.4.3
Step #0:  +�[0m�[91m google-cloud-storage==2.18.2�[0m�[91m
Step #0:  + google-crc32c==1.7.1�[0m�[91m
Step #0:  + �[0m�[91mgoogle-resumable-media==2.7.2
Step #0:  +�[0m�[91m googleapis-common-protos==1.70.0
Step #0:  �[0m�[91m+ graphene==3.4.3�[0m�[91m
Step #0:  + graphql-core==3.2.6�[0m�[91m
Step #0:  + graphql-relay==�[0m�[91m3.2.0
Step #0:  + greenlet�[0m�[91m==3.2.4
Step #0:  + gunicorn==�[0m�[91m22.0.0
Step #0:  �[0m�[91m+ h11==0.16.0
Step #0:  + �[0m�[91mhttpcore==1.0.9�[0m�[91m
Step #0:  + httptools==0.6.4�[0m�[91m
Step #0:  + httpx==0.28.1�[0m�[91m
Step #0:  + idna==3.10�[0m�[91m
Step #0:  + importlib-metadata==�[0m�[91m7.2.1
Step #0:  + iniconfig==2.1.0
Step #0: �[0m�[91m + ipykernel==6.30.1�[0m�[91m
Step #0:  + ipython==8.37.0�[0m�[91m
Step #0:  + isoduration==20.11.0�[0m�[91m
Step #0:  + isort==6.0.1
Step #0:  �[0m�[91m+ itsdangerous==2.2.0
Step #0: �[0m�[91m + jedi==0.19.2�[0m�[91m
Step #0:  + jinja2==3.1.6�[0m�[91m
Step #0:  + joblib==1.5.1
Step #0:  �[0m�[91m+ json5==0.12.0
Step #0:  �[0m�[91m+ jsonpickle==4.0.5
Step #0:  + �[0m�[91mjsonpointer==3.0.0
Step #0:  + jsonschema�[0m�[91m==4.25.0
Step #0:  + jsonschema-specifications==2025.4.1�[0m�[91m
Step #0:  + jupyter-client==8.6.3�[0m�[91m
Step #0:  + jupyter-core==5.8.1�[0m�[91m
Step #0:  + jupyter-events==0.12.0�[0m�[91m
Step #0:  + jupyter-lsp==2.2.6�[0m�[91m
Step #0:  + jupyter-server==2.16.0
Step #0: �[0m�[91m + jupyter-server-terminals==0.5.3
Step #0:  +�[0m�[91m jupyterlab==4.4.5
Step #0:  +�[0m�[91m jupyterlab-pygments==0.3.0
Step #0:  + jupyterlab-server�[0m�[91m==2.27.3
Step #0:  + kiwisolver==�[0m�[91m1.4.9
Step #0:  + lark==1.2.2
Step #0:  +�[0m�[91m lz4==4.4.4
Step #0:  +�[0m�[91m mako==1.3.10
Step #0:  + markdown�[0m�[91m==3.8.2
Step #0:  + markdown-it-py==4.0.0
Step #0:  + markupsafe==3.0.2�[0m�[91m
Step #0:  + matplotlib==�[0m�[91m3.10.5
Step #0:  + matplotlib-inline==0.1.7
Step #0:  + mccabe==0.7.0
Step #0:  + mdurl==0.1.2
Step #0:  + mistune==3.1.3
Step #0:  + mlflow==2.15.1�[0m�[91m
Step #0:  + mlflow-skinny==2.15.1
Step #0:  + multidict==6.6.4�[0m�[91m
Step #0:  + mypy==1.17.1
Step #0:  + mypy-extensions==1.1.0�[0m�[91m
Step #0:  + nbclient==0.10.2
Step #0:  + nbconvert==7.16.6�[0m�[91m
Step #0:  + nbformat==5.10.4
Step #0:  + nest-asyncio==1.6.0�[0m�[91m
Step #0:  + notebook-shim==0.2.4
Step #0:  + numpy==1.26.4�[0m�[91m
Step #0:  + oauthlib==3.3.1
Step #0:  + openpyxl==3.1.5�[0m�[91m
Step #0:  + opentelemetry-api==1.36.0
Step #0:  + opentelemetry-sdk==1.36.0�[0m�[91m
Step #0:  + opentelemetry-semantic-conventions==0.57b0
Step #0:  + overrides==7.7.0�[0m�[91m
Step #0:  + packaging==24.2
Step #0:  + pandas==2.2.3
Step #0:  + pandera==0.25.0�[0m�[91m
Step #0:  + pandocfilters==1.5.1
Step #0:  + paramiko==3.5.1
Step #0:  + parso==0.8.4
Step #0:  + passlib==1.7.4
Step #0:  + pathspec==0.12.1
Step #0:  + pexpect==4.9.0
Step #0:  + pillow==11.3.0
Step #0:  + platformdirs==4.3.8
Step #0:  + pluggy==1.6.0
Step #0:  + prometheus-client==0.22.1
Step #0:  + prompt-toolkit==3.0.51
Step #0:  + propcache==0.3.2
Step #0:  + proto-plus==1.26.1
Step #0:  + protobuf==5.29.5
Step #0:  + psutil==7.0.0
Step #0:  + ptyprocess==0.7.0
Step #0:  + pure-eval==0.2.3
Step #0:  + pyarrow==15.0.2
Step #0:  + pyasn1==0.6.1
Step #0:  + pyasn1-modules==0.4.2
Step #0:  + pycparser==2.22
Step #0:  + pycryptodome==3.20.0
Step #0:  + pydantic==2.11.7
Step #0:  + pydantic-core==2.33.2
Step #0:  + pygments==2.19.2
Step #0:  + pyjwt==2.10.1
Step #0:  + pylint==3.3.8
Step #0:  + pymysql==1.1.1
Step #0:  +�[0m�[91m pynacl==1.5.0
Step #0:  + pyparsing==3.2.3
Step #0:  + pytest==8.4.1
Step #0:  + python-dateutil==2.9.0.post0
Step #0:  + python-dotenv==1.0.1
Step #0:  + python-json-logger==3.3.0
Step #0:  + python-multipart==0.0.20
Step #0:  + pytz==2024.2
Step #0:  + pyyaml==6.0.2
Step #0:  + pyzmq==27.0.1
Step #0:  + querystring-parser==1.2.4
Step #0:  + rapidfuzz==3.13.0
Step #0:  + referencing==0.36.2
Step #0:  + requests==2.32.4
Step #0:  + rfc3339-validator==0.1.4
Step #0:  + rfc3986-validator==0.1.1�[0m�[91m
Step #0:  + rfc3987-syntax==1.1.0
Step #0:  + rich==14.1.0
Step #0:  + rich-toolkit==0.15.0
Step #0:  + rignore==0.6.4
Step #0:  �[0m�[91m+�[0m�[91m rpds-py==0.27.0�[0m�[91m
Step #0:  + rsa==�[0m�[91m4.9.1�[0m�[91m
Step #0:  + ruff==0.12.8
Step #0:  + scikit-learn==�[0m�[91m1.7.1�[0m�[91m
Step #0:  + scipy==�[0m�[91m1.15.3
Step #0:  + send2trash==1.8.3
Step #0:  + sentry-sdk�[0m�[91m==2.34.1
Step #0:  + setuptools==80.9.0
Step #0:  + shellingham==1.5.4�[0m�[91m
Step #0:  + six==1.16.0
Step #0:  + smmap==5.0.2�[0m�[91m
Step #0:  + sniffio==1.3.1�[0m�[91m
Step #0:  + soupsieve==�[0m�[91m2.7�[0m�[91m
Step #0:  + sqlalchemy==2.0.43
Step #0:  + sqlparse==0.5.3
Step #0:  +�[0m�[91m stack-data==0.6.3
Step #0:  + starlette==0.46.2
Step #0:  + strenum==0.4.15
Step #0:  +�[0m�[91m terminado==0.18.1
Step #0:  + thefuzz==0.22.1
Step #0:  + threadpoolctl==�[0m�[91m3.6.0
Step #0:  + thrift==0.20.0
Step #0:  + tinycss2==1.4.0
Step #0:  �[0m�[91m+ tomli==2.2.1
Step #0: �[0m�[91m + tomlkit==0.13.3
Step #0:  + tornado==6.5.2�[0m�[91m
Step #0:  + traitlets==5.14.3
Step #0:  + typeguard==4.4.4
Step #0:  + typer==0.16.0
Step #0:  + types-paramiko==3.5.0.20250801�[0m�[91m
Step #0:  + types-python-dateutil==2.9.0.20250809
Step #0:  + types-requests==2.32.0.20250602
Step #0:  + typing-extensions==4.14.1
Step #0:  + typing-inspect==0.9.0
Step #0:  �[0m�[91m+ typing-inspection==0.4.1
Step #0:  + tzdata==2025.2
Step #0:  + uri-template==1.3.0
Step #0:  + urllib3==2.5.0
Step #0:  + uvicorn==0.35.0�[0m�[91m
Step #0:  + uvloop==0.21.0
Step #0:  + watchfiles==1.1.0
Step #0:  + wcwidth==0.2.13
Step #0:  + webcolors==24.11.1
Step #0:  +�[0m�[91m webencodings==0.5.1
Step #0:  + �[0m�[91mwebsocket-client==1.8.0
Step #0:  + websockets==15.0.1
Step #0:  + werkzeug==3.1.3
Step #0:  + yarl==1.20.1
Step #0:  + zipp==3.23.0�[0m�[91m
Step #0: �[0mRemoving intermediate container 937c27f7ca5b
Step #0:  ---> 1df968b4ca8e
Step #0: Step 8/14 : ADD . /app
Step #0:  ---> 7feb955f9b5d
Step #0: Step 9/14 : RUN uv sync --frozen --no-editable
Step #0:  ---> Running in ea3b539c6a42
Step #0: �[91m   Building src @ file:///app
Step #0: �[0m�[91m      Built src @ file:///app
Step #0: �[0m�[91mPrepared 1 package in 485ms
Step #0: �[0m�[91mInstalled 1 package in 2ms
Step #0: �[0m�[91mBytecode compiled 12479 files in 1.44s
Step #0:  + src==0.2.0.dev0�[0m�[91m (from �[0m�[91mfile:///app)
Step #0: �[0mRemoving intermediate container ea3b539c6a42
Step #0:  ---> cf70e3c524dc
Step #0: Step 10/14 : FROM python:3.10-slim-bookworm
Step #0:  ---> 1dbe112d274e
Step #0: Step 11/14 : COPY --from=builder /app/.venv /app/.venv
Step #0:  ---> 2a0e129f7131
Step #0: Step 12/14 : COPY --from=builder /app/src /app/src
Step #0:  ---> 6030f9611053
Step #0: Step 13/14 : ENV PATH="/app/.venv/bin:$PATH"
Step #0:  ---> Running in 3e2bd3d44a6d
Step #0: Removing intermediate container 3e2bd3d44a6d
Step #0:  ---> 9c7f9611776e
Step #0: Step 14/14 : CMD ["fastapi", "run", "app/src/webapp", "--port", "8080", "--host", "0.0.0.0"]
Step #0:  ---> Running in 14e89f42ab2f
Step #0: Removing intermediate container 14e89f42ab2f
Step #0:  ---> 46218540bfda
Step #0: Successfully built 46218540bfda
Step #0: Successfully tagged us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp:35b254bd43d1aa6c3ad5e3d81ce3a769f8497daa
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: b201fccc40e3: Preparing
Step #1: 3b15299d14bb: Preparing
Step #1: cb573af979fc: Preparing
Step #1: 4480d237a726: Preparing
Step #1: 1ffff31dfa8e: Preparing
Step #1: aca836066730: Preparing
Step #1: aca836066730: Waiting
Step #1: 1ffff31dfa8e: Layer already exists
Step #1: 4480d237a726: Layer already exists
Step #1: cb573af979fc: Layer already exists
Step #1: b201fccc40e3: Pushed
Step #1: aca836066730: Pushed
Step #1: 3b15299d14bb: Pushed
Step #1: 35b254bd43d1aa6c3ad5e3d81ce3a769f8497daa: digest: sha256:229d4e86e77af2b89522e4a319273ff5cb85bc8e8a708315b5ab8ef99971511c 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: b201fccc40e3: Preparing
Step #2: 3b15299d14bb: Preparing
Step #2: cb573af979fc: Preparing
Step #2: 4480d237a726: Preparing
Step #2: 1ffff31dfa8e: Preparing
Step #2: aca836066730: Preparing
Step #2: aca836066730: Waiting
Step #2: 4480d237a726: Layer already exists
Step #2: 1ffff31dfa8e: Layer already exists
Step #2: 3b15299d14bb: Layer already exists
Step #2: b201fccc40e3: Layer already exists
Step #2: aca836066730: Layer already exists
Step #2: cb573af979fc: Layer already exists
Step #2: latest: digest: sha256:229d4e86e77af2b89522e4a319273ff5cb85bc8e8a708315b5ab8ef99971511c 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 "67f8254b-46ed-4527-9663-f0e93cf6b3e7"

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            35b254bd43d1aa6c3ad5e3d81ce3a769f8497daa -> FETCH_HEAD
HEAD is now at 35b254b fetch cache bucket name from gcp env
GitCommit:
35b254bd43d1aa6c3ad5e3d81ce3a769f8497daa
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.682MB

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: 5c32499ab806: Pulling fs layer
Step #0: 3fdcdb666c93: Pulling fs layer
Step #0: b8c6737fb7ec: Pulling fs layer
Step #0: cf7c760df656: Pulling fs layer
Step #0: cf7c760df656: Waiting
Step #0: b8c6737fb7ec: Verifying Checksum
Step #0: b8c6737fb7ec: Download complete
Step #0: 5c32499ab806: Verifying Checksum
Step #0: 5c32499ab806: Download complete
Step #0: 3fdcdb666c93: Verifying Checksum
Step #0: 3fdcdb666c93: Download complete
Step #0: cf7c760df656: Verifying Checksum
Step #0: cf7c760df656: Download complete
Step #0: 5c32499ab806: Pull complete
Step #0: 3fdcdb666c93: Pull complete
Step #0: b8c6737fb7ec: Pull complete
Step #0: cf7c760df656: Pull complete
Step #0: Digest: sha256:cda0e2fa3894f9ada2c652534e6de6b2fe65687c63208a77e9e8d88231547902
Step #0: Status: Downloaded newer image for python:3.10-slim-bookworm
Step #0:  ---> 1dbe112d274e
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:  ---> 3e821726c86f
Step #0: Step 3/14 : ENV UV_COMPILE_BYTECODE=1
Step #0:  ---> Running in 64965ee49475
Step #0: Removing intermediate container 64965ee49475
Step #0:  ---> 6a77d72d6f5d
Step #0: Step 4/14 : ENV UV_NO_CACHE=1
Step #0:  ---> Running in 05f5c7cf03e6
Step #0: Removing intermediate container 05f5c7cf03e6
Step #0:  ---> 963433c33746
Step #0: Step 5/14 : WORKDIR /app
Step #0:  ---> Running in 5fcb93458e2b
Step #0: Removing intermediate container 5fcb93458e2b
Step #0:  ---> 9b1109747d9e
Step #0: Step 6/14 : ADD uv.lock pyproject.toml /app/
Step #0:  ---> 28887f197716
Step #0: Step 7/14 : RUN uv sync --frozen --no-install-project
Step #0:  ---> Running in 937c27f7ca5b
Step #0: �[91mUsing CPython 3.10.19 interpreter at: /usr/local/bin/python3
Step #0: Creating virtual environment at: .venv
Step #0: �[0m�[91mDownloading jedi (1.5MiB)
Step #0: �[0m�[91mDownloading setuptools (1.1MiB)
Step #0: �[0m�[91mDownloading�[0m�[91m pycryptodome (2.0MiB)
Step #0: �[0m�[91mDownloading pygments (1.2MiB)
Step #0: �[0m�[91mDownloading pydantic-core (1.9MiB)
Step #0: �[0m�[91mDownloading�[0m�[91m mypy (12.1MiB)
Step #0: �[0m�[91mDownloading pillow (6.3MiB)
Step #0: �[0m�[91mDownloading lz4 (1.2MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading rapidfuzz �[0m�[91m(2.9MiB)
Step #0: �[0m�[91mDownloading aiohttp (1.6MiB)
Step #0: �[0m�[91mDownloading uvloop �[0m�[91m(3.6MiB)
Step #0: �[0m�[91mDownloading scikit-learn (9.2MiB)
Step #0: �[0m�[91mDownloading debugpy (3.4MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading jupyterlab (11.7MiB)
Step #0: �[0m�[91mDownloading pandas (12.5MiB)
Step #0: �[0m�[91mDownloading numpy (17.4MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading black (1.7MiB)
Step #0: �[0m�[91mDownloading ruff (12.3MiB)
Step #0: �[0m�[91mDownloading scipy (35.9MiB)
Step #0: �[0m�[91mDownloading babel (9.7MiB)
Step #0: �[0m�[91mDownloading kiwisolver (1.6MiB)
Step #0: �[0m�[91mDownloading fonttools (4.6MiB)
Step #0: �[0m�[91mDownloading sqlalchemy (3.1MiB)
Step #0: �[0m�[91mDownloading matplotlib (8.3MiB)
Step #0: �[0m�[91mDownloading cryptography (4.2MiB)
Step #0: �[0m�[91mDownloading pyarrow (36.6MiB)
Step #0: �[0m�[91mDownloading mlflow-skinny (5.2MiB)�[0m�[91m
Step #0: �[0m�[91mDownloading mlflow (25.1MiB)
Step #0: �[0m�[91m Downloaded lz4
Step #0: �[0m�[91m Downloaded kiwisolver
Step #0: �[0m�[91m Downloaded aiohttp
Step #0: �[0m�[91m Downloaded pydantic-core
Step #0: �[0m�[91m Downloaded pygments
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m black
Step #0: �[0m�[91m Downloaded pycryptodome
Step #0: �[0m�[91m Downloaded setuptools
Step #0: �[0m�[91m   Building thrift==0.20.0
Step #0: �[0m�[91m Downloaded sqlalchemy
Step #0: �[0m�[91m Downloaded rapidfuzz
Step #0: �[0m�[91m �[0m�[91mDownloaded �[0m�[91mdebugpy
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91muvloop�[0m�[91m
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mcryptography�[0m�[91m
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mfonttools�[0m�[91m
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mpillow�[0m�[91m
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mmlflow-skinny�[0m�[91m
Step #0: �[0m�[91m      Built thrift==0.20.0
Step #0: �[0m�[91m Downloaded matplotlib
Step #0: �[0m�[91m Downloaded babel
Step #0: �[0m�[91m Downloaded scikit-learn
Step #0: �[0m�[91m Downloaded ruff
Step #0: �[0m�[91m Downloaded jupyterlab
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m numpy
Step #0: �[0m�[91m Downloaded pandas�[0m�[91m
Step #0: �[0m�[91m Downloaded jedi�[0m�[91m
Step #0: �[0m�[91m Downloaded mlflow
Step #0: �[0m�[91m Downloaded pyarrow
Step #0: �[0m�[91m Downloaded scipy
Step #0: �[0m�[91m �[0m�[91mDownloaded�[0m�[91m �[0m�[91mmypy�[0m�[91m
Step #0: �[0m�[91mPrepared �[0m�[91m226 packages�[0m�[91m �[0m�[91min 10.05s�[0m�[91m
Step #0: �[0m�[91mInstalled 226 packages in 2.13s
Step #0: �[0m�[91mBytecode compiled 12443 files in 26.56s
Step #0: �[0m�[91m + aiofiles==24.1.0�[0m�[91m
Step #0:  + aiohappyeyeballs==2.6.1
Step #0:  + aiohttp�[0m�[91m==3.12.15
Step #0:  + aiosignal�[0m�[91m==1.4.0
Step #0:  + alembic�[0m�[91m==1.16.4
Step #0:  �[0m�[91m+ annotated-types==0.7.0
Step #0:  +�[0m�[91m anyio==4.10.0�[0m�[91m
Step #0:  + argon2-cffi==25.1.0
Step #0: �[0m�[91m + argon2-cffi-bindings==25.1.0�[0m�[91m
Step #0:  + arrow==1.3.0�[0m�[91m
Step #0:  + astroid==3.3.11�[0m�[91m
Step #0:  + asttokens==3.0.0�[0m�[91m
Step #0:  �[0m�[91m+ async-lru==2.0.5
Step #0:  + async-timeout�[0m�[91m==5.0.1�[0m�[91m
Step #0:  + attrs==25.3.0
Step #0: �[0m�[91m + babel==�[0m�[91m2.17.0
Step #0:  + bcrypt==�[0m�[91m4.2.1
Step #0:  + beautifulsoup4==�[0m�[91m4.13.4
Step #0:  + black==25.1.0�[0m�[91m
Step #0:  + �[0m�[91mbleach==6.2.0
Step #0:  + blinker==�[0m�[91m1.9.0�[0m�[91m
Step #0:  + cachetools==5.5.2
Step #0:  +�[0m�[91m certifi==2025.8.3�[0m�[91m
Step #0:  + cffi==1.17.1�[0m�[91m
Step #0:  + charset-normalizer==3.4.3�[0m�[91m
Step #0:  + click==8.2.1
Step #0:  �[0m�[91m+ cloud-sql-python-connector==�[0m�[91m1.14.0
Step #0:  + cloudpickle==3.1.1�[0m�[91m
Step #0:  +�[0m�[91m comm==0.2.3
Step #0:  + �[0m�[91mcontourpy==1.3.2�[0m�[91m
Step #0:  + coverage==7.6.12�[0m�[91m
Step #0: �[0m�[91m + cryptography==45.0.6
Step #0:  + �[0m�[91mcycler==0.12.1
Step #0:  �[0m�[91m+ databricks-sdk==0.38.0�[0m�[91m
Step #0:  + databricks-sql-connector==3.5.0�[0m�[91m
Step #0:  + debugpy�[0m�[91m==1.8.16
Step #0:  + decorator==�[0m�[91m5.2.1
Step #0:  + �[0m�[91mdefusedxml==0.7.1
Step #0:  �[0m�[91m+ dill==0.4.0
Step #0: �[0m�[91m + dnspython==2.7.0�[0m�[91m
Step #0:  + docker==7.1.0
Step #0: �[0m�[91m + email-validator==2.2.0
Step #0:  �[0m�[91m+ entrypoints==�[0m�[91m0.4
Step #0:  + et-xmlfile==2.0.0�[0m�[91m
Step #0:  + exceptiongroup�[0m�[91m==1.3.0
Step #0:  +�[0m�[91m executing==2.2.0
Step #0:  + �[0m�[91mfastapi==0.115.14
Step #0: �[0m�[91m + fastapi-cli==0.0.8
Step #0: �[0m�[91m + fastapi-cloud-cli==0.1.5�[0m�[91m
Step #0:  + fastjsonschema�[0m�[91m==2.21.1
Step #0:  + flask�[0m�[91m==3.1.1
Step #0: �[0m�[91m + fonttools==4.59.0
Step #0:  +�[0m�[91m fqdn==1.5.1�[0m�[91m
Step #0:  + frozenlist==1.7.0�[0m�[91m
Step #0:  + gitdb==�[0m�[91m4.0.12
Step #0:  + �[0m�[91mgitpython==3.1.45
Step #0:  + �[0m�[91mgoogle-api-core==2.25.1
Step #0:  + �[0m�[91mgoogle-auth==2.40.3
Step #0:  �[0m�[91m+ google-cloud-core==2.4.3
Step #0:  +�[0m�[91m google-cloud-storage==2.18.2�[0m�[91m
Step #0:  + google-crc32c==1.7.1�[0m�[91m
Step #0:  + �[0m�[91mgoogle-resumable-media==2.7.2
Step #0:  +�[0m�[91m googleapis-common-protos==1.70.0
Step #0:  �[0m�[91m+ graphene==3.4.3�[0m�[91m
Step #0:  + graphql-core==3.2.6�[0m�[91m
Step #0:  + graphql-relay==�[0m�[91m3.2.0
Step #0:  + greenlet�[0m�[91m==3.2.4
Step #0:  + gunicorn==�[0m�[91m22.0.0
Step #0:  �[0m�[91m+ h11==0.16.0
Step #0:  + �[0m�[91mhttpcore==1.0.9�[0m�[91m
Step #0:  + httptools==0.6.4�[0m�[91m
Step #0:  + httpx==0.28.1�[0m�[91m
Step #0:  + idna==3.10�[0m�[91m
Step #0:  + importlib-metadata==�[0m�[91m7.2.1
Step #0:  + iniconfig==2.1.0
Step #0: �[0m�[91m + ipykernel==6.30.1�[0m�[91m
Step #0:  + ipython==8.37.0�[0m�[91m
Step #0:  + isoduration==20.11.0�[0m�[91m
Step #0:  + isort==6.0.1
Step #0:  �[0m�[91m+ itsdangerous==2.2.0
Step #0: �[0m�[91m + jedi==0.19.2�[0m�[91m
Step #0:  + jinja2==3.1.6�[0m�[91m
Step #0:  + joblib==1.5.1
Step #0:  �[0m�[91m+ json5==0.12.0
Step #0:  �[0m�[91m+ jsonpickle==4.0.5
Step #0:  + �[0m�[91mjsonpointer==3.0.0
Step #0:  + jsonschema�[0m�[91m==4.25.0
Step #0:  + jsonschema-specifications==2025.4.1�[0m�[91m
Step #0:  + jupyter-client==8.6.3�[0m�[91m
Step #0:  + jupyter-core==5.8.1�[0m�[91m
Step #0:  + jupyter-events==0.12.0�[0m�[91m
Step #0:  + jupyter-lsp==2.2.6�[0m�[91m
Step #0:  + jupyter-server==2.16.0
Step #0: �[0m�[91m + jupyter-server-terminals==0.5.3
Step #0:  +�[0m�[91m jupyterlab==4.4.5
Step #0:  +�[0m�[91m jupyterlab-pygments==0.3.0
Step #0:  + jupyterlab-server�[0m�[91m==2.27.3
Step #0:  + kiwisolver==�[0m�[91m1.4.9
Step #0:  + lark==1.2.2
Step #0:  +�[0m�[91m lz4==4.4.4
Step #0:  +�[0m�[91m mako==1.3.10
Step #0:  + markdown�[0m�[91m==3.8.2
Step #0:  + markdown-it-py==4.0.0
Step #0:  + markupsafe==3.0.2�[0m�[91m
Step #0:  + matplotlib==�[0m�[91m3.10.5
Step #0:  + matplotlib-inline==0.1.7
Step #0:  + mccabe==0.7.0
Step #0:  + mdurl==0.1.2
Step #0:  + mistune==3.1.3
Step #0:  + mlflow==2.15.1�[0m�[91m
Step #0:  + mlflow-skinny==2.15.1
Step #0:  + multidict==6.6.4�[0m�[91m
Step #0:  + mypy==1.17.1
Step #0:  + mypy-extensions==1.1.0�[0m�[91m
Step #0:  + nbclient==0.10.2
Step #0:  + nbconvert==7.16.6�[0m�[91m
Step #0:  + nbformat==5.10.4
Step #0:  + nest-asyncio==1.6.0�[0m�[91m
Step #0:  + notebook-shim==0.2.4
Step #0:  + numpy==1.26.4�[0m�[91m
Step #0:  + oauthlib==3.3.1
Step #0:  + openpyxl==3.1.5�[0m�[91m
Step #0:  + opentelemetry-api==1.36.0
Step #0:  + opentelemetry-sdk==1.36.0�[0m�[91m
Step #0:  + opentelemetry-semantic-conventions==0.57b0
Step #0:  + overrides==7.7.0�[0m�[91m
Step #0:  + packaging==24.2
Step #0:  + pandas==2.2.3
Step #0:  + pandera==0.25.0�[0m�[91m
Step #0:  + pandocfilters==1.5.1
Step #0:  + paramiko==3.5.1
Step #0:  + parso==0.8.4
Step #0:  + passlib==1.7.4
Step #0:  + pathspec==0.12.1
Step #0:  + pexpect==4.9.0
Step #0:  + pillow==11.3.0
Step #0:  + platformdirs==4.3.8
Step #0:  + pluggy==1.6.0
Step #0:  + prometheus-client==0.22.1
Step #0:  + prompt-toolkit==3.0.51
Step #0:  + propcache==0.3.2
Step #0:  + proto-plus==1.26.1
Step #0:  + protobuf==5.29.5
Step #0:  + psutil==7.0.0
Step #0:  + ptyprocess==0.7.0
Step #0:  + pure-eval==0.2.3
Step #0:  + pyarrow==15.0.2
Step #0:  + pyasn1==0.6.1
Step #0:  + pyasn1-modules==0.4.2
Step #0:  + pycparser==2.22
Step #0:  + pycryptodome==3.20.0
Step #0:  + pydantic==2.11.7
Step #0:  + pydantic-core==2.33.2
Step #0:  + pygments==2.19.2
Step #0:  + pyjwt==2.10.1
Step #0:  + pylint==3.3.8
Step #0:  + pymysql==1.1.1
Step #0:  +�[0m�[91m pynacl==1.5.0
Step #0:  + pyparsing==3.2.3
Step #0:  + pytest==8.4.1
Step #0:  + python-dateutil==2.9.0.post0
Step #0:  + python-dotenv==1.0.1
Step #0:  + python-json-logger==3.3.0
Step #0:  + python-multipart==0.0.20
Step #0:  + pytz==2024.2
Step #0:  + pyyaml==6.0.2
Step #0:  + pyzmq==27.0.1
Step #0:  + querystring-parser==1.2.4
Step #0:  + rapidfuzz==3.13.0
Step #0:  + referencing==0.36.2
Step #0:  + requests==2.32.4
Step #0:  + rfc3339-validator==0.1.4
Step #0:  + rfc3986-validator==0.1.1�[0m�[91m
Step #0:  + rfc3987-syntax==1.1.0
Step #0:  + rich==14.1.0
Step #0:  + rich-toolkit==0.15.0
Step #0:  + rignore==0.6.4
Step #0:  �[0m�[91m+�[0m�[91m rpds-py==0.27.0�[0m�[91m
Step #0:  + rsa==�[0m�[91m4.9.1�[0m�[91m
Step #0:  + ruff==0.12.8
Step #0:  + scikit-learn==�[0m�[91m1.7.1�[0m�[91m
Step #0:  + scipy==�[0m�[91m1.15.3
Step #0:  + send2trash==1.8.3
Step #0:  + sentry-sdk�[0m�[91m==2.34.1
Step #0:  + setuptools==80.9.0
Step #0:  + shellingham==1.5.4�[0m�[91m
Step #0:  + six==1.16.0
Step #0:  + smmap==5.0.2�[0m�[91m
Step #0:  + sniffio==1.3.1�[0m�[91m
Step #0:  + soupsieve==�[0m�[91m2.7�[0m�[91m
Step #0:  + sqlalchemy==2.0.43
Step #0:  + sqlparse==0.5.3
Step #0:  +�[0m�[91m stack-data==0.6.3
Step #0:  + starlette==0.46.2
Step #0:  + strenum==0.4.15
Step #0:  +�[0m�[91m terminado==0.18.1
Step #0:  + thefuzz==0.22.1
Step #0:  + threadpoolctl==�[0m�[91m3.6.0
Step #0:  + thrift==0.20.0
Step #0:  + tinycss2==1.4.0
Step #0:  �[0m�[91m+ tomli==2.2.1
Step #0: �[0m�[91m + tomlkit==0.13.3
Step #0:  + tornado==6.5.2�[0m�[91m
Step #0:  + traitlets==5.14.3
Step #0:  + typeguard==4.4.4
Step #0:  + typer==0.16.0
Step #0:  + types-paramiko==3.5.0.20250801�[0m�[91m
Step #0:  + types-python-dateutil==2.9.0.20250809
Step #0:  + types-requests==2.32.0.20250602
Step #0:  + typing-extensions==4.14.1
Step #0:  + typing-inspect==0.9.0
Step #0:  �[0m�[91m+ typing-inspection==0.4.1
Step #0:  + tzdata==2025.2
Step #0:  + uri-template==1.3.0
Step #0:  + urllib3==2.5.0
Step #0:  + uvicorn==0.35.0�[0m�[91m
Step #0:  + uvloop==0.21.0
Step #0:  + watchfiles==1.1.0
Step #0:  + wcwidth==0.2.13
Step #0:  + webcolors==24.11.1
Step #0:  +�[0m�[91m webencodings==0.5.1
Step #0:  + �[0m�[91mwebsocket-client==1.8.0
Step #0:  + websockets==15.0.1
Step #0:  + werkzeug==3.1.3
Step #0:  + yarl==1.20.1
Step #0:  + zipp==3.23.0�[0m�[91m
Step #0: �[0mRemoving intermediate container 937c27f7ca5b
Step #0:  ---> 1df968b4ca8e
Step #0: Step 8/14 : ADD . /app
Step #0:  ---> 7feb955f9b5d
Step #0: Step 9/14 : RUN uv sync --frozen --no-editable
Step #0:  ---> Running in ea3b539c6a42
Step #0: �[91m   Building src @ file:///app
Step #0: �[0m�[91m      Built src @ file:///app
Step #0: �[0m�[91mPrepared 1 package in 485ms
Step #0: �[0m�[91mInstalled 1 package in 2ms
Step #0: �[0m�[91mBytecode compiled 12479 files in 1.44s
Step #0:  + src==0.2.0.dev0�[0m�[91m (from �[0m�[91mfile:///app)
Step #0: �[0mRemoving intermediate container ea3b539c6a42
Step #0:  ---> cf70e3c524dc
Step #0: Step 10/14 : FROM python:3.10-slim-bookworm
Step #0:  ---> 1dbe112d274e
Step #0: Step 11/14 : COPY --from=builder /app/.venv /app/.venv
Step #0:  ---> 2a0e129f7131
Step #0: Step 12/14 : COPY --from=builder /app/src /app/src
Step #0:  ---> 6030f9611053
Step #0: Step 13/14 : ENV PATH="/app/.venv/bin:$PATH"
Step #0:  ---> Running in 3e2bd3d44a6d
Step #0: Removing intermediate container 3e2bd3d44a6d
Step #0:  ---> 9c7f9611776e
Step #0: Step 14/14 : CMD ["fastapi", "run", "app/src/webapp", "--port", "8080", "--host", "0.0.0.0"]
Step #0:  ---> Running in 14e89f42ab2f
Step #0: Removing intermediate container 14e89f42ab2f
Step #0:  ---> 46218540bfda
Step #0: Successfully built 46218540bfda
Step #0: Successfully tagged us-east4-docker.pkg.dev/dev-sst-02/student-success-tool/webapp:35b254bd43d1aa6c3ad5e3d81ce3a769f8497daa
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: b201fccc40e3: Preparing
Step #1: 3b15299d14bb: Preparing
Step #1: cb573af979fc: Preparing
Step #1: 4480d237a726: Preparing
Step #1: 1ffff31dfa8e: Preparing
Step #1: aca836066730: Preparing
Step #1: aca836066730: Waiting
Step #1: 1ffff31dfa8e: Layer already exists
Step #1: 4480d237a726: Layer already exists
Step #1: cb573af979fc: Layer already exists
Step #1: b201fccc40e3: Pushed
Step #1: aca836066730: Pushed
Step #1: 3b15299d14bb: Pushed
Step #1: 35b254bd43d1aa6c3ad5e3d81ce3a769f8497daa: digest: sha256:229d4e86e77af2b89522e4a319273ff5cb85bc8e8a708315b5ab8ef99971511c 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: b201fccc40e3: Preparing
Step #2: 3b15299d14bb: Preparing
Step #2: cb573af979fc: Preparing
Step #2: 4480d237a726: Preparing
Step #2: 1ffff31dfa8e: Preparing
Step #2: aca836066730: Preparing
Step #2: aca836066730: Waiting
Step #2: 4480d237a726: Layer already exists
Step #2: 1ffff31dfa8e: Layer already exists
Step #2: 3b15299d14bb: Layer already exists
Step #2: b201fccc40e3: Layer already exists
Step #2: aca836066730: Layer already exists
Step #2: cb573af979fc: Layer already exists
Step #2: latest: digest: sha256:229d4e86e77af2b89522e4a319273ff5cb85bc8e8a708315b5ab8ef99971511c 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-00385-b87] 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%2267f8254b-46ed-4527-9663-f0e93cf6b3e7%22+AND+resource.labels.build_trigger_id%3D%2234b36ab0-f21d-470f-9580-8f985c6a5c87%22&project=dev-sst-02