Skip to content

feat: support multi speaker for Vertex AI #1358

feat: support multi speaker for Vertex AI

feat: support multi speaker for Vertex AI #1358

Workflow file for this run

---
name: apidiff
on:
pull_request:
permissions:
contents: read
pull-requests: write
env:
GOTOOLCHAIN: local
jobs:
scan_changes:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
ref: main
- name: Get main commit
id: main
run: echo "hash=$(git rev-parse HEAD)" >> $GITHUB_OUTPUT
- uses: actions/checkout@v4
- uses: actions/setup-go@v5
with:
go-version: '1.24.x'
- name: Get changed directories
id: changed_dirs
# Ignore changes to the internal and root directories.
# Ignore added files with --diff-filter=a.
run: |
dirs=$(go run ./internal/changefinder/main.go --diff-filter=a)
if [ -z "$dirs" ]
then
echo "skip=1" >> $GITHUB_OUTPUT
echo "No changes worth diffing!"
else
for d in $dirs; do list=${list},\"${d}\"; done
echo "changed={\"changed\":[${list#,}]}" >> $GITHUB_OUTPUT
echo "skip=" >> $GITHUB_OUTPUT
fi
outputs:
changed_dirs: ${{ steps.changed_dirs.outputs.changed }}
skip: ${{ steps.changed_dirs.outputs.skip }}
apidiff:
needs: scan_changes
runs-on: ubuntu-latest
if: ${{ !needs.scan_changes.outputs.skip && !contains(github.event.pull_request.labels.*.name, 'breaking change allowed') }}
continue-on-error: true
permissions:
pull-requests: write
steps:
- uses: actions/setup-go@v5
with:
go-version: '1.24.x'
- name: Install latest apidiff
run: go install golang.org/x/exp/cmd/apidiff@latest
- uses: actions/checkout@v4
with:
ref: main
- name: Create baseline
id: baseline
run: |
export CHANGED=${{ fromJson(needs.scan_changes.outputs.changed_dirs).changed[0] }}
echo pkg="${CHANGED//\//_}_pkg.main" >> $GITHUB_OUTPUT
- name: Create Go package baseline
run: cd ${{ fromJson(needs.scan_changes.outputs.changed_dirs).changed[0] }} && apidiff -m -w ${{ steps.baseline.outputs.pkg }} .
- name: Upload baseline package data
uses: actions/upload-artifact@v4
with:
name: ${{ steps.baseline.outputs.pkg }}
path: ${{ fromJson(needs.scan_changes.outputs.changed_dirs).changed[0] }}/${{ steps.baseline.outputs.pkg }}
retention-days: 1
- uses: actions/checkout@v4
- name: Download baseline package data
uses: actions/download-artifact@v4
with:
name: ${{ steps.baseline.outputs.pkg }}
path: ${{ fromJson(needs.scan_changes.outputs.changed_dirs).changed[0] }}
- name: Compare regenerated code to baseline
# Only ignore Go interface additions when the PR is from OwlBot as it is
# likely a new method added to the gRPC client stub interface, which is
# non-breaking.
env:
PR_HEAD_REF: ${{ github.event.pull_request.head.ref }}
run: |
cd ${{ fromJson(needs.scan_changes.outputs.changed_dirs).changed[0] }} && apidiff -m -incompatible ${{ steps.baseline.outputs.pkg }} . > diff.txt
if [[ "$PR_HEAD_REF" == owl-bot-copy ]]; then
sed -i '/: added/d' ./diff.txt
fi
# Ignore struct comparability changes, as they are common and accepted.
sed -i '/: old is comparable, new is not/d' ./diff.txt
sed -i '/VideoGenerationMask.MaskMode: changed from string to VideoGenerationMaskMode/d' ./diff.txt
sed -i '/ToolComputerUse: removed/d' ./diff.txt
cat diff.txt && ! [ -s diff.txt ]
# TODO(b/425394445): figure out how to solve permission issue.
# - name: Add breaking change label
# if: ${{ failure() && !github.event.pull_request.head.repo.fork }}
# uses: actions/github-script@v7
# with:
# script: |
# github.rest.issues.addLabels({
# issue_number: ${{ github.event.number }},
# owner: context.repo.owner,
# repo: context.repo.repo,
# labels: ['breaking change']
# })