Skip to content

Commit ea5696a

Browse files
committed
ci(pages): upgrade Node to LTS and migrate WASM build pipeline from cdd-ctl to cdd-browser-sdk
- Upgrade actions/setup-node from Node 20 to lts/* (Node 22+) to provide native fs.globSync required by html-validate@11.17.0, eslint-plugin-jsdoc@65.4.2, and Angular 22. - Replace deprecated SamuelMarks/cdd-ctl and SamuelMarks/cdd-openapi-test-harness checkouts with SamuelMarks/cdd-browser-sdk to match cdd-web-ui's file:../cdd-browser-sdk dependency after the cdd-ctl monolith split. - Delegate 13-ecosystem WASM release resolution, asset verification, C# bundle extraction, GraalVM WasmGC wrapper fetching, Rust Salsa async-drop patching, and wasm-support.json generation to cdd-web-ui's build:wasm script with GITHUB_TOKEN authentication, followed by in-place Binaryen wasm-opt -O3 optimization.
1 parent f8ecfb6 commit ea5696a

1 file changed

Lines changed: 23 additions & 64 deletions

File tree

‎.github/workflows/deploy-cdd-web-ui.yml‎

Lines changed: 23 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -28,29 +28,22 @@ jobs:
2828
repository: SamuelMarks/cdd-web-ui
2929
path: cdd-web-ui
3030

31-
- name: Checkout cdd-docs-ui
31+
- name: Checkout cdd-browser-sdk
3232
uses: actions/checkout@v7
3333
with:
34-
repository: SamuelMarks/cdd-docs-ui
35-
path: cdd-docs-ui
34+
repository: SamuelMarks/cdd-browser-sdk
35+
path: cdd-browser-sdk
3636

37-
- name: Checkout cdd-ctl
38-
uses: actions/checkout@v7
39-
with:
40-
repository: SamuelMarks/cdd-ctl
41-
path: cdd-ctl
42-
43-
- name: Checkout cdd-openapi-test-harness
37+
- name: Checkout cdd-docs-ui
4438
uses: actions/checkout@v7
4539
with:
46-
repository: SamuelMarks/cdd-openapi-test-harness
47-
path: cdd-openapi-test-harness
48-
submodules: recursive
40+
repository: SamuelMarks/cdd-docs-ui
41+
path: cdd-docs-ui
4942

5043
- name: Setup Node.js
5144
uses: actions/setup-node@v7
5245
with:
53-
node-version: 20
46+
node-version: 'lts/*'
5447

5548
- name: Validate and Test Main Site (offscale.github.io)
5649
working-directory: ./main-site
@@ -63,68 +56,34 @@ jobs:
6356
- name: Install Binaryen
6457
run: sudo apt-get update && sudo apt-get install -y binaryen
6558

66-
- name: Build cdd-java-cli
67-
working-directory: ./cdd-openapi-test-harness/cdd-java
59+
- name: Build cdd-browser-sdk
60+
working-directory: ./cdd-browser-sdk
6861
run: |
69-
git checkout master
70-
git pull origin master
71-
cd package
72-
npm install --ignore-scripts
73-
npm run build
74-
75-
- name: Build WASM SDK
76-
working-directory: ./cdd-ctl/cdd-ctl-wasm-sdk
77-
run: |
78-
npm install --ignore-scripts
62+
npm ci --ignore-scripts
7963
npm run build
8064
81-
- name: Fetch and Optimize WASM Binaries
82-
working-directory: ./cdd-ctl
83-
run: |
84-
chmod +x ./scripts/fetch_wasm.sh
85-
./scripts/fetch_wasm.sh
86-
87-
mkdir -p ./optimized-wasm
88-
for wasm_file in cdd-ctl-wasm-sdk/assets/wasm/*.wasm; do
89-
filename=$(basename "$wasm_file")
90-
echo "Optimizing $filename..."
91-
wasm-opt -O3 "$wasm_file" -o "./optimized-wasm/$filename" || cp "$wasm_file" "./optimized-wasm/$filename"
92-
done
93-
94-
# Download JS Wrappers and C# Zip with explicit failure reporting and retries
95-
curl -fsSL --retry 3 -o ./optimized-wasm/cdd-ts.js "https://github.com/offscale/cdd-ts/releases/latest/download/cdd-ts.js"
96-
curl -fsSL --retry 3 -o ./optimized-wasm/cdd-ts-javy.wasm "https://github.com/offscale/cdd-ts/releases/latest/download/cdd-ts-javy.wasm"
97-
curl -fsSL --retry 3 -o ./optimized-wasm/cdd-java.js "https://github.com/SamuelMarks/cdd-java/releases/latest/download/cdd-java.js"
98-
curl -fsSL --retry 3 -o ./cdd-csharp-wasm.zip "https://github.com/SamuelMarks/cdd-csharp/releases/latest/download/cdd-csharp-wasm.zip"
99-
curl -fsSL --retry 3 -o ./optimized-wasm/openapi_python_client-0.0.1-py3-none-any.whl "https://github.com/offscale/cdd-python-all/releases/latest/download/openapi_python_client-0.0.1-py3-none-any.whl"
100-
101-
# Enable python-all, java, and ts in wasm-support.json only after verifying downloads succeeded
102-
test -s ./optimized-wasm/openapi_python_client-0.0.1-py3-none-any.whl
103-
test -s ./optimized-wasm/cdd-java.js
104-
test -s ./optimized-wasm/cdd-ts.js
105-
test -s ./optimized-wasm/cdd-ts-javy.wasm
106-
sed -i 's/"python-all": false/"python-all": true/g' cdd-ctl-wasm-sdk/assets/wasm-support.json
107-
sed -i 's/"java": false/"java": true/g' cdd-ctl-wasm-sdk/assets/wasm-support.json
108-
sed -i 's/"ts": false/"ts": true/g' cdd-ctl-wasm-sdk/assets/wasm-support.json
109-
11065
- name: Build cdd-docs-ui
11166
working-directory: ./cdd-docs-ui
11267
run: |
113-
npm install --ignore-scripts
68+
npm ci --ignore-scripts
11469
npm run build
11570
11671
- name: Install UI Dependencies
11772
working-directory: ./cdd-web-ui
118-
run: npm ci --ignore-scripts
73+
run: npm install --ignore-scripts
11974

120-
- name: Copy WASM Binaries to Web UI
75+
- name: Fetch and Optimize WASM Binaries
76+
working-directory: ./cdd-web-ui
77+
env:
78+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
12179
run: |
122-
mkdir -p cdd-web-ui/public/assets/wasm/
123-
cp cdd-ctl/optimized-wasm/*.wasm cdd-web-ui/public/assets/wasm/
124-
cp cdd-ctl/optimized-wasm/*.js cdd-web-ui/public/assets/wasm/
125-
cp cdd-ctl/optimized-wasm/*.whl cdd-web-ui/public/assets/wasm/
126-
unzip -q -o cdd-ctl/cdd-csharp-wasm.zip -d cdd-web-ui/public/assets/wasm/
127-
cp cdd-ctl/cdd-ctl-wasm-sdk/assets/wasm-support.json cdd-web-ui/public/assets/wasm-support.json
80+
npm run build:wasm
81+
for wasm_file in public/assets/wasm/*.wasm; do
82+
[ -f "$wasm_file" ] || continue
83+
filename=$(basename "$wasm_file")
84+
echo "Optimizing $filename..."
85+
wasm-opt -O3 "$wasm_file" -o "${wasm_file}.opt" && mv "${wasm_file}.opt" "$wasm_file" || rm -f "${wasm_file}.opt"
86+
done
12887
12988
- name: Compute base-href and Build Angular App
13089
working-directory: ./cdd-web-ui

0 commit comments

Comments
 (0)