Skip to content

Commit 5676813

Browse files
tanzimfhtom-andersen
authored andcommitted
VertexAI: add support for mock responses versioning system (#8361)
1 parent 04fa109 commit 5676813

File tree

3 files changed

+90
-1
lines changed

3 files changed

+90
-1
lines changed

Diff for: .github/workflows/check-vertexai-responses.yml

+54
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
# Copyright 2024 Google LLC
2+
#
3+
# Licensed under the Apache License, Version 2.0 (the "License");
4+
# you may not use this file except in compliance with the License.
5+
# You may obtain a copy of the License at
6+
#
7+
# http://www.apache.org/licenses/LICENSE-2.0
8+
#
9+
# Unless required by applicable law or agreed to in writing, software
10+
# distributed under the License is distributed on an "AS IS" BASIS,
11+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12+
# See the License for the specific language governing permissions and
13+
# limitations under the License.
14+
15+
name: Check Vertex AI Responses
16+
17+
on: pull_request
18+
19+
jobs:
20+
check-version:
21+
runs-on: ubuntu-latest
22+
steps:
23+
- uses: actions/checkout@v4
24+
- name: Clone mock responses
25+
run: scripts/update_vertexai_responses.sh
26+
- name: Find cloned and latest versions
27+
run: |
28+
CLONED=$(git describe --tags)
29+
LATEST=$(git tag --sort=v:refname | tail -n1)
30+
echo "cloned_tag=$CLONED" >> $GITHUB_ENV
31+
echo "latest_tag=$LATEST" >> $GITHUB_ENV
32+
working-directory: packages/vertexai/test-utils/vertexai-sdk-test-data
33+
- name: Find comment from previous run if exists
34+
uses: peter-evans/find-comment@3eae4d37986fb5a8592848f6a574fdf654e61f9e
35+
id: fc
36+
with:
37+
issue-number: ${{github.event.number}}
38+
body-includes: Vertex AI Mock Responses Check
39+
- name: Comment on PR if newer version is available
40+
if: ${{env.cloned_tag != env.latest_tag && !steps.fc.outputs.comment-id}}
41+
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043
42+
with:
43+
issue-number: ${{github.event.number}}
44+
body: >
45+
### Vertex AI Mock Responses Check :warning:
46+
47+
A newer major version of the mock responses for Vertex AI unit tests is available.
48+
[update_vertexai_responses.sh](https://github.com/firebase/firebase-js-sdk/blob/main/scripts/update_vertexai_responses.sh)
49+
should be updated to clone the latest version of the responses: `${{env.latest_tag}}`
50+
- name: Delete comment when version gets updated
51+
if: ${{env.cloned_tag == env.latest_tag && steps.fc.outputs.comment-id}}
52+
uses: detomarco/delete-comment@850734dd44d8b15fef55b45252613b903ceb06f0
53+
with:
54+
comment-id: ${{ steps.fc.outputs.comment-id }}

Diff for: packages/vertexai/package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@
3333
"build": "rollup -c && yarn api-report",
3434
"build:deps": "lerna run --scope @firebase/vertexai --include-dependencies build",
3535
"dev": "rollup -c -w",
36-
"update-responses": "cd test-utils && rm -rf vertexai-sdk-test-data && git clone --depth 1 https://github.com/FirebaseExtended/vertexai-sdk-test-data.git",
36+
"update-responses": "../../scripts/update_vertexai_responses.sh",
3737
"testsetup": "yarn update-responses && yarn ts-node ./test-utils/convert-mocks.ts",
3838
"test": "run-p --npm-path npm lint test:browser",
3939
"test:ci": "yarn testsetup && node ../../scripts/run_tests_in_ci.js -s test",

Diff for: scripts/update_vertexai_responses.sh

+35
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
#!/bin/bash
2+
3+
# Copyright 2024 Google LLC
4+
#
5+
# Licensed under the Apache License, Version 2.0 (the "License");
6+
# you may not use this file except in compliance with the License.
7+
# You may obtain a copy of the License at
8+
#
9+
# http://www.apache.org/licenses/LICENSE-2.0
10+
#
11+
# Unless required by applicable law or agreed to in writing, software
12+
# distributed under the License is distributed on an "AS IS" BASIS,
13+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
# See the License for the specific language governing permissions and
15+
# limitations under the License.
16+
17+
# This script replaces mock response files for Vertex AI unit tests with a fresh
18+
# clone of the shared repository of Vertex AI test data.
19+
20+
RESPONSES_VERSION='v1.*' # The major version of mock responses to use
21+
REPO_NAME="vertexai-sdk-test-data"
22+
REPO_LINK="https://github.com/FirebaseExtended/$REPO_NAME.git"
23+
24+
cd "$(dirname "$0")/../packages/vertexai/test-utils" || exit
25+
rm -rf "$REPO_NAME"
26+
git clone "$REPO_LINK" --quiet || exit
27+
cd "$REPO_NAME" || exit
28+
29+
# Find and checkout latest tag matching major version
30+
TAG=$(git tag -l "$RESPONSES_VERSION" --sort=v:refname | tail -n1)
31+
if [ -z "$TAG" ]; then
32+
echo "Error: No tag matching '$RESPONSES_VERSION' found in $REPO_NAME"
33+
exit
34+
fi
35+
git checkout "$TAG" --quiet

0 commit comments

Comments
 (0)