1- name : Update example OpenUI packages
1+ name : Fix template package manager parity
22
33on :
44 workflow_dispatch :
@@ -8,44 +8,66 @@ permissions:
88 pull-requests : write
99
1010concurrency :
11- group : update-example-openui-packages
11+ group : fix-template-package-manager-parity
1212 cancel-in-progress : false
1313
1414jobs :
15- update :
15+ fix :
1616 runs-on : ubuntu-latest
1717 steps :
18- - uses : actions/checkout@v4
18+ - uses : actions/checkout@v6
1919 with :
2020 ref : ${{ github.event.repository.default_branch }}
21- - uses : actions/setup-node@v4
22- with :
23- node-version : 24
24-
25- - name : Enable pnpm
26- run : |
27- corepack enable
28- corepack prepare pnpm@9.15.4 --activate
2921
30- - name : Update OpenUI packages
31- run : pnpm examples:update
22+ - uses : pnpm/action-setup@v6
23+ with :
24+ version : 10.33.0
3225
33- - name : Install updated dependencies
34- run : pnpm examples:install
26+ - uses : actions/setup-node@v6
27+ with :
28+ node-version : 20
3529
36- - name : Verify examples
37- run : pnpm examples:verify
30+ - name : Refresh template npm lockfiles
31+ run : |
32+ set -euo pipefail
33+ for template in openui-cloud openui-self-hosted; do
34+ rm -rf "templates/${template}/node_modules"
35+ npm install --prefix "templates/${template}" --no-audit --no-fund --progress=false
36+ rm -rf "templates/${template}/node_modules"
37+ done
3838
39- - name : Create or update dependency pull request
39+ - name : Verify npm/pnpm parity
40+ run : |
41+ set -euo pipefail
42+ for template in openui-cloud openui-self-hosted; do
43+ npm_dir="${RUNNER_TEMP}/${template}-npm"
44+ pnpm_dir="${RUNNER_TEMP}/${template}-pnpm"
45+ rm -rf "$npm_dir" "$pnpm_dir"
46+ cp -R "templates/${template}" "$npm_dir"
47+ cp -R "templates/${template}" "$pnpm_dir"
48+ rm -f "${pnpm_dir}/package-lock.json"
49+ (cd "$npm_dir" && npm ci --prefer-offline --no-audit --no-fund --progress=false)
50+ (cd "$pnpm_dir" && pnpm install)
51+ node packages/openui-cli/scripts/compare-template-installs.mjs "$npm_dir" "$pnpm_dir"
52+ done
53+
54+ - name : Create or update pull request
4055 env :
4156 BASE_BRANCH : ${{ github.event.repository.default_branch }}
4257 GH_TOKEN : ${{ github.token }}
43- UPDATE_BRANCH : automation/update-example-openui-packages
58+ UPDATE_BRANCH : automation/template-package-manager-parity
4459 run : |
4560 set -euo pipefail
4661
47- if git diff --quiet -- ':(glob)examples/**/pnpm-lock.yaml' ':(glob)examples/**/package.json'; then
48- echo "OpenUI example packages are already current."
62+ paths=(
63+ templates/openui-cloud/package-lock.json
64+ templates/openui-self-hosted/package-lock.json
65+ templates/openui-cloud/package.json
66+ templates/openui-self-hosted/package.json
67+ )
68+
69+ if git diff --quiet -- "${paths[@]}"; then
70+ echo "Template lockfiles already match pnpm."
4971 exit 0
5072 fi
5173
5476 git config user.name "github-actions[bot]"
5577 git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
5678 git switch -C "$UPDATE_BRANCH"
57- git add ':(glob)examples/**/pnpm-lock.yaml' ':(glob)examples/**/package.json'
58- git commit -m "chore(examples): update OpenUI packages "
79+ git add "${paths[@]}"
80+ git commit -m "fix: refresh CLI template lockfiles for npm/pnpm parity "
5981
6082 if [[ -n "$remote_sha" ]]; then
6183 git push --force-with-lease="refs/heads/$UPDATE_BRANCH:$remote_sha" origin "HEAD:refs/heads/$UPDATE_BRANCH"
@@ -69,13 +91,16 @@ jobs:
6991 exit 0
7092 fi
7193
72- pr_body="Updates every example to the latest published versions of its \`@openuidev/*\` dependencies.
94+ pr_body='## Summary
95+ - Refresh the openui-cloud and openui-self-hosted npm lockfiles so npm ci and a fresh pnpm install resolve the same direct dependency versions.
96+ - Unblocks CLI Template Package Manager Parity on main (next 16.3.4; cloud zod 4.5.4).
7397
74- The examples were installed from their refreshed lockfiles and all credential-free verification contracts passed before this pull request was created."
98+ # # Test plan
99+ - [ ] CLI Template Package Manager Parity is green on this PR'
75100
76101 gh pr create \
77102 --repo "$GITHUB_REPOSITORY" \
78103 --base "$BASE_BRANCH" \
79104 --head "$UPDATE_BRANCH" \
80- --title "chore(examples): update OpenUI packages " \
105+ --title "fix : refresh CLI template lockfiles for npm/pnpm parity " \
81106 --body "$pr_body"
0 commit comments