Skip to content

Commit

Permalink
VertexAI: add support for mock responses versioning system (#8361)
Browse files Browse the repository at this point in the history
  • Loading branch information
tanzimfh authored Jul 15, 2024
1 parent 84fe880 commit 4b4db85
Show file tree
Hide file tree
Showing 3 changed files with 90 additions and 1 deletion.
54 changes: 54 additions & 0 deletions .github/workflows/check-vertexai-responses.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

name: Check Vertex AI Responses

on: pull_request

jobs:
check-version:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Clone mock responses
run: scripts/update_vertexai_responses.sh
- name: Find cloned and latest versions
run: |
CLONED=$(git describe --tags)
LATEST=$(git tag --sort=v:refname | tail -n1)
echo "cloned_tag=$CLONED" >> $GITHUB_ENV
echo "latest_tag=$LATEST" >> $GITHUB_ENV
working-directory: packages/vertexai/test-utils/vertexai-sdk-test-data
- name: Find comment from previous run if exists
uses: peter-evans/find-comment@3eae4d37986fb5a8592848f6a574fdf654e61f9e
id: fc
with:
issue-number: ${{github.event.number}}
body-includes: Vertex AI Mock Responses Check
- name: Comment on PR if newer version is available
if: ${{env.cloned_tag != env.latest_tag && !steps.fc.outputs.comment-id}}
uses: peter-evans/create-or-update-comment@71345be0265236311c031f5c7866368bd1eff043
with:
issue-number: ${{github.event.number}}
body: >
### Vertex AI Mock Responses Check :warning:
A newer major version of the mock responses for Vertex AI unit tests is available.
[update_vertexai_responses.sh](https://github.com/firebase/firebase-js-sdk/blob/main/scripts/update_vertexai_responses.sh)
should be updated to clone the latest version of the responses: `${{env.latest_tag}}`
- name: Delete comment when version gets updated
if: ${{env.cloned_tag == env.latest_tag && steps.fc.outputs.comment-id}}
uses: detomarco/delete-comment@850734dd44d8b15fef55b45252613b903ceb06f0
with:
comment-id: ${{ steps.fc.outputs.comment-id }}
2 changes: 1 addition & 1 deletion packages/vertexai/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@
"build": "rollup -c && yarn api-report",
"build:deps": "lerna run --scope @firebase/vertexai --include-dependencies build",
"dev": "rollup -c -w",
"update-responses": "cd test-utils && rm -rf vertexai-sdk-test-data && git clone --depth 1 https://github.com/FirebaseExtended/vertexai-sdk-test-data.git",
"update-responses": "../../scripts/update_vertexai_responses.sh",
"testsetup": "yarn update-responses && yarn ts-node ./test-utils/convert-mocks.ts",
"test": "run-p --npm-path npm lint test:browser",
"test:ci": "yarn testsetup && node ../../scripts/run_tests_in_ci.js -s test",
Expand Down
35 changes: 35 additions & 0 deletions scripts/update_vertexai_responses.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
#!/bin/bash

# Copyright 2024 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This script replaces mock response files for Vertex AI unit tests with a fresh
# clone of the shared repository of Vertex AI test data.

RESPONSES_VERSION='v1.*' # The major version of mock responses to use
REPO_NAME="vertexai-sdk-test-data"
REPO_LINK="https://github.com/FirebaseExtended/$REPO_NAME.git"

cd "$(dirname "$0")/../packages/vertexai/test-utils" || exit
rm -rf "$REPO_NAME"
git clone "$REPO_LINK" --quiet || exit
cd "$REPO_NAME" || exit

# Find and checkout latest tag matching major version
TAG=$(git tag -l "$RESPONSES_VERSION" --sort=v:refname | tail -n1)
if [ -z "$TAG" ]; then
echo "Error: No tag matching '$RESPONSES_VERSION' found in $REPO_NAME"
exit
fi
git checkout "$TAG" --quiet

0 comments on commit 4b4db85

Please sign in to comment.