feat(DATAGO-109578): A2A SDK Migration and Refactoring #63
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: "CI (UI)" | |
on: | |
workflow_dispatch: | |
push: | |
branches: | |
- "main" | |
paths: | |
- "client/webui/frontend/**" | |
pull_request: | |
types: [opened, synchronize] | |
branches: | |
- "main" | |
paths: | |
- "client/webui/frontend/**" | |
permissions: | |
contents: write | |
packages: write | |
id-token: write | |
pull-requests: write | |
actions: read | |
statuses: write | |
checks: write | |
repository-projects: read | |
jobs: | |
validate-conventional-commit: | |
name: "Validate Conventional Commit" | |
runs-on: ubuntu-latest | |
if: github.event_name == 'pull_request' | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Validate PR Title | |
uses: amannn/action-semantic-pull-request@v5 | |
env: | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
with: | |
types: | | |
feat | |
fix | |
docs | |
style | |
refactor | |
perf | |
test | |
build | |
ci | |
chore | |
revert | |
requireScope: false | |
disallowScopes: | | |
release | |
subjectPattern: ^.+$ | |
subjectPatternError: | | |
The subject "{subject}" found in the pull request title "{title}" | |
didn't match the configured pattern. Please ensure that the subject | |
is not empty. | |
ui-build-and-test: | |
name: "Build and Test UI" | |
runs-on: ubuntu-latest | |
defaults: | |
run: | |
working-directory: client/webui/frontend | |
steps: | |
- name: Checkout code | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
cache: "npm" | |
cache-dependency-path: client/webui/frontend/package-lock.json | |
registry-url: https://npm.pkg.github.com/ | |
scope: "@SolaceLabs" | |
- name: Configure npm for install | |
run: | | |
echo "//npm.pkg.github.com/:_authToken=${{ secrets.GITHUB_TOKEN }}" > .npmrc | |
echo "@SolaceLabs:registry=https://npm.pkg.github.com/" >> .npmrc | |
echo "legacy-peer-deps=true" >> .npmrc | |
- name: Install dependencies | |
run: npm ci | |
env: | |
NODE_AUTH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: Run lint | |
run: npm run lint | |
- name: Build UI package | |
run: npm run build-package | |
- name: Run WhiteSource Scan | |
id: whitesource_scan | |
uses: SolaceDev/solace-public-workflows/.github/actions/whitesource-scan@main | |
continue-on-error: true | |
with: | |
whitesource_api_key: ${{ secrets.WHITESOURCE_API_KEY }} | |
whitesource_product_name: "solaceai" | |
whitesource_project_name: "solace-agent-mesh-ui${{ github.event_name == 'push' && '' || github.event_name == 'pull_request' && format('-pr-{0}', github.event.pull_request.number) || '' }}" | |
whitesource_config_file: "client/webui/frontend/wss-unified-agent.config" | |
target_directory: "client/webui/frontend" | |
- name: Run WhiteSource PR Checker (Policy Violations) | |
id: whitesource-pr-policy-violation-checker | |
if: github.event_name == 'pull_request' | |
uses: docker://ghcr.io/solacedev/maas-build-actions:latest | |
continue-on-error: true | |
env: | |
WS_API_KEY: ${{ secrets.WHITESOURCE_API_KEY }} | |
WS_PRODUCT_NAME: "solaceai" | |
WS_PROJECT_NAME: "solace-agent-mesh-ui-pr-${{ github.event.pull_request.number }}" | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
AWS_REGION: ${{ secrets.AWS_DEFAULT_REGION }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.SAM_AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.SAM_AWS_SECRET_ACCESS_KEY }} | |
WS_BLOCKING_POLICY_VIOLATION_LEVELS: "Major,Minor" | |
FAIL_IF_POLICY_VIOLATIONS_FOUND: "True" | |
GH_ORG: ${{ github.repository_owner }} | |
GH_REPO: ${{ github.event.repository.name }} | |
GH_SHA: ${{ github.event.pull_request.head.sha }} | |
PR_NUMBER: ${{ github.event.pull_request.number }} | |
INCLUDE_HELPFUL_LINKS: "False" | |
STATUS_CHECK: "True" | |
with: | |
entrypoint: /bin/sh | |
args: > | |
-c " | |
. $VIRTUAL_ENV/bin/activate && | |
cd $ACTIONS_PATH/whitesource-pr-checker && | |
python whitesource_pr_checker.py | |
" | |
- name: Run WhiteSource Policy Gate | |
id: whitesource-policy-gate | |
if: github.event_name == 'push' && github.ref_name == github.event.repository.default_branch | |
uses: docker://ghcr.io/solacedev/maas-build-actions:latest | |
continue-on-error: true | |
env: | |
WS_API_KEY: ${{ secrets.WHITESOURCE_API_KEY }} | |
WS_PRODUCT_NAME: "solaceai" | |
WS_PROJECT_NAME: "solace-agent-mesh-ui" | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
AWS_ACCESS_KEY_ID: ${{ secrets.SAM_AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.SAM_AWS_SECRET_ACCESS_KEY }} | |
AWS_REGION: ${{ secrets.AWS_DEFAULT_REGION }} | |
WS_BLOCKING_POLICY_VIOLATION_LEVELS: "Major,Minor" | |
FAIL_IF_POLICY_VIOLATIONS_FOUND: "True" | |
STATUS_CHECK: "True" | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GH_ORG: ${{ github.repository_owner }} | |
GH_REPO: ${{ github.event.repository.name }} | |
GITHUB_SHA: ${{ github.sha }} | |
with: | |
entrypoint: /bin/sh | |
args: > | |
-c " | |
. $VIRTUAL_ENV/bin/activate && | |
cd $ACTIONS_PATH/whitesource-policy-violation-checker && | |
python whitesource_policy_violation_checker.py | |
" | |
- name: Run WhiteSource Vulnerability Checker | |
id: whitesource-vulnerability-checker | |
if: github.event_name == 'push' && github.ref_name == github.event.repository.default_branch | |
uses: docker://ghcr.io/solacedev/maas-build-actions:latest | |
continue-on-error: true | |
env: | |
WS_API_KEY: ${{ secrets.WHITESOURCE_API_KEY }} | |
WS_PRODUCT_NAME: "solaceai" | |
WS_PROJECT_NAME: "solace-agent-mesh-ui" | |
AWS_ACCESS_KEY_ID: ${{ secrets.SAM_AWS_ACCESS_KEY_ID }} | |
AWS_SECRET_ACCESS_KEY: ${{ secrets.SAM_AWS_SECRET_ACCESS_KEY }} | |
AWS_REGION: ${{ secrets.AWS_DEFAULT_REGION }} | |
WS_JIRA_CHECK: "True" | |
JIRA_ONLY: "True" | |
STATUS_CHECK: "True" | |
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
GH_ORG: ${{ github.repository_owner }} | |
GH_REPO: ${{ github.event.repository.name }} | |
GITHUB_SHA: ${{ github.sha }} | |
with: | |
entrypoint: /bin/sh | |
args: > | |
-c " | |
. $VIRTUAL_ENV/bin/activate && | |
cd $ACTIONS_PATH/whitesource-vulnerability-checker && | |
python whitesource_vulnerability_checker.py | |
" | |
bump-version: | |
needs: ui-build-and-test | |
name: "Bump UI Version" | |
runs-on: ubuntu-latest | |
if: github.event_name == 'push' && github.ref_name == github.event.repository.default_branch | |
outputs: | |
new-tag: ${{ steps.bump.outputs.newTag }} | |
defaults: | |
run: | |
working-directory: client/webui/frontend | |
steps: | |
- name: "Checkout source code" | |
uses: "actions/checkout@v4" | |
with: | |
ref: ${{ github.ref }} | |
token: ${{ secrets.GITHUB_TOKEN }} | |
fetch-depth: 0 | |
- name: "Current package.json" | |
run: cat ./package.json | |
- name: Setup Node.js | |
uses: actions/setup-node@v4 | |
with: | |
node-version: 20 | |
- name: "Automated Version Bump" | |
id: bump | |
uses: "phips28/gh-action-bump-version@master" | |
with: | |
minor-wording: "feat,minor" | |
major-wording: "BREAKING CHANGE,major" | |
patch-wording: "fix,patch,docs,style,refactor,perf,test,build,ci,chore,revert" | |
tag-prefix: "ui-v" | |
commit-message: "ci(ui): bump version to {{version}} [skip ci]" | |
skip-push: "true" | |
default: "patch" # default to patch bump if no bumps included in commit messages | |
bump-policy: "ignore" # always bump regardless of whether bumps included in commit messages | |
env: | |
PACKAGEJSON_DIR: client/webui/frontend | |
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} | |
- name: "Updated package.json" | |
run: cat ./package.json | |
- name: "Extract version from tag" | |
id: extract-version | |
run: | | |
if [ -n "${{ steps.bump.outputs.newTag }}" ]; then | |
TAG="${{ steps.bump.outputs.newTag }}" | |
VERSION="${TAG#ui-v}" | |
echo "version=$VERSION" >> $GITHUB_OUTPUT | |
echo "Extracted version: $VERSION from tag: $TAG" | |
else | |
echo "No new tag created" | |
echo "version=" >> $GITHUB_OUTPUT | |
fi | |
- name: Set up SSH agent | |
if: steps.bump.outputs.newTag != '' | |
uses: webfactory/ssh-agent@v0.9.1 | |
with: | |
ssh-private-key: ${{ secrets.COMMIT_KEY }} | |
- name: Push new version and tag | |
if: steps.bump.outputs.newTag != '' | |
run: | | |
git config user.name "github-actions[bot]" | |
git config user.email "41898282+github-actions[bot]@users.noreply.github.com" | |
git remote set-url origin git@github.com:${{ github.repository }}.git | |
git push origin main | |
git push origin ${{ steps.bump.outputs.newTag }} | |
release-ui: | |
needs: bump-version | |
name: "Release UI Package" | |
if: needs.bump-version.outputs.new-tag != '' | |
uses: ./.github/workflows/ui-release.yml | |
with: | |
tag: ${{ needs.bump-version.outputs.new-tag }} | |
secrets: inherit |