Repository navigation
fix(tooling): adding a new workflow to uprade the SDK version every W… #754
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: next
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,123 @@ | ||
| name: Update Contact Center SDK | ||
|
|
||
| on: | ||
| schedule: | ||
| - cron: "30 12 * * 3" | ||
| workflow_dispatch: | ||
|
|
||
| permissions: | ||
| contents: write | ||
| pull-requests: write | ||
|
|
||
| jobs: | ||
| update-sdk: | ||
| runs-on: ubuntu-latest | ||
|
|
||
| steps: | ||
| - name: Checkout | ||
| uses: actions/checkout@v6 | ||
| with: | ||
| persist-credentials: false | ||
|
|
||
| - name: Setup Node | ||
| uses: actions/setup-node@v6 | ||
| with: | ||
| node-version-file: .nvmrc | ||
| registry-url: https://registry.npmjs.org | ||
| cache: yarn | ||
|
|
||
| - name: Enable Corepack | ||
| run: corepack enable | ||
|
|
||
| - name: Install dependencies | ||
| run: yarn install --immutable | ||
|
|
||
| - name: Update SDK | ||
| id: sdk | ||
| run: | | ||
| current_version="$(node -p "require('./packages/contact-center/store/package.json').dependencies['@webex/contact-center']")" | ||
| version="$(npm view @webex/contact-center@next version)" | ||
| webex_version="$(npm view webex@next version)" | ||
| webex_sdk_version="$(npm view "webex@$webex_version" dependencies.@webex/contact-center)" | ||
|
|
||
| if [ "$webex_sdk_version" != "$version" ]; then | ||
| echo "::error::webex@$webex_version bundles @webex/contact-center@$webex_sdk_version, not @$version" | ||
| exit 1 | ||
| fi | ||
|
|
||
| echo "version=$version" >> "$GITHUB_OUTPUT" | ||
| echo "webex_version=$webex_version" >> "$GITHUB_OUTPUT" | ||
| yarn workspace @webex/cc-store add "@webex/contact-center@$version" | ||
| yarn workspace samples-cc-react-app add "@webex/contact-center@$version" | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Whenever the fetched version differs from Useful? React with 👍 / 👎.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can we also update the
Contributor
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Done |
||
| yarn workspace samples-cc-react-app add "webex@$webex_version" | ||
|
|
||
| perl -pi -e "s/\\Q$current_version\\E/$version/g" \ | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When AGENTS.md reference: AGENTS.md:L68-L68 Useful? React with 👍 / 👎. |
||
| packages/contact-center/store/ai-docs/store-spec.md \ | ||
| ai-docs/CONTRACTS.md | ||
|
|
||
| - name: Build workspace dependencies | ||
| run: yarn build:dev | ||
|
|
||
| - name: Validate SDK update | ||
| run: | | ||
| yarn workspace @webex/cc-store test:unit | ||
| yarn workspace samples-cc-react-app build | ||
|
Comment on lines
+63
to
+64
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
On every fresh scheduled runner, this block runs the store test before any topological workspace build. AGENTS.md reference: AGENTS.md:L84-L85 Useful? React with 👍 / 👎. |
||
|
|
||
| - name: Create pull request | ||
| uses: peter-evans/create-pull-request@v7 | ||
| with: | ||
| token: ${{ secrets.AUTOMATION_ACCOUNT_TOKEN }} | ||
| branch: automation/update-contact-center-sdk | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
When an automated PR remains open for a second scheduled or manual run, Useful? React with 👍 / 👎. |
||
| delete-branch: true | ||
| title: "chore(cc): update SDK to ${{ steps.sdk.outputs.version }}" | ||
| commit-message: "chore(cc): update SDK to ${{ steps.sdk.outputs.version }}" | ||
| body: | | ||
| # COMPLETES N/A (automated weekly dependency update, no linked issue) | ||
|
|
||
| ## This pull request addresses | ||
|
|
||
| Keeping `@webex/contact-center` in sync with the latest `next` pre-release so the widgets keep building against a current, compatible SDK contract. | ||
|
|
||
| ## by making the following changes | ||
|
|
||
| Automated weekly update of the Contact Center SDK from the npm `next` dist-tag: | ||
|
|
||
| - `@webex/contact-center`: `${{ steps.sdk.outputs.version }}` | ||
| - `webex`: `${{ steps.sdk.outputs.webex_version }}` | ||
|
|
||
| ### Change Type | ||
|
|
||
| - [ ] Bug fix (non-breaking change which fixes an issue) | ||
| - [ ] New feature (non-breaking change which adds functionality) | ||
| - [ ] Breaking change (fix or feature that would cause existing functionality to change) | ||
| - [ ] Documentation update | ||
| - [x] Tooling change | ||
| - [ ] Internal code refactor | ||
|
|
||
| ## The following scenarios were tested | ||
|
|
||
| - [ ] The testing is done with the amplify link | ||
| - `yarn workspace @webex/cc-store test:unit` and `yarn workspace samples-cc-react-app build` both passed in this workflow run before the PR was opened. | ||
|
|
||
| ## The GAI Coding Policy And Copyright Annotation Best Practices ## | ||
|
|
||
| - [x] GAI was not used (or, no additional notation is required) | ||
| - [ ] Code was generated entirely by GAI | ||
| - [ ] GAI was used to create a draft that was subsequently customized or modified | ||
| - [ ] Coder created a draft manually that was non-substantively modified by GAI (e.g., refactoring was performed by GAI on manually written code) | ||
| - [ ] Tool used for AI assistance (GitHub Copilot / Other - specify) | ||
| - [ ] Github Copilot | ||
| - [ ] Other - Please Specify | ||
| - [x] This PR is related to | ||
| - [ ] Feature | ||
| - [ ] Defect fix | ||
| - [ ] Tech Debt | ||
| - [x] Automation | ||
|
|
||
| ### Checklist before merging | ||
|
|
||
| - [x] I have not skipped any automated checks | ||
| - [x] All existing and new tests passed | ||
| - [ ] I have updated the testing document | ||
| - [ ] I have tested the functionality with amplify link | ||
| labels: dependencies,contact-center | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Whenever the
nexttag advances, this command changes the store manifest and lockfile, but the generated branch never updates the exact SDK versions recorded inpackages/contact-center/store/ai-docs/store-spec.md:51,97,473orai-docs/CONTRACTS.md:29. Every automated PR therefore immediately leaves the repository's contract/spec documentation claiming the old SDK; update those claims as part of the automation (or remove the version snapshots).AGENTS.md reference: AGENTS.md:L68-L68
Useful? React with 👍 / 👎.