@@ -143,7 +143,7 @@ jobs:
143143 echo 'module.exports = {};' > tooling/sanctifier-wasm/pkg/index.js
144144
145145 - name : Install frontend dependencies
146- run : cd frontend && npm ci
146+ run : cd frontend && npm install
147147
148148 - name : Run unit tests
149149 run : cd frontend && npm test
@@ -223,7 +223,7 @@ jobs:
223223 echo 'module.exports = {};' > tooling/sanctifier-wasm/pkg/index.js
224224
225225 - name : Install frontend dependencies
226- run : cd frontend && npm ci
226+ run : cd frontend && npm install
227227
228228 - name : Install Playwright browsers
229229 run : cd frontend && npx playwright install --with-deps chromium
@@ -263,14 +263,63 @@ jobs:
263263 echo 'module.exports = {};' > tooling/sanctifier-wasm/pkg/index.js
264264
265265 - name : Install frontend dependencies
266- run : cd frontend && npm ci
266+ run : cd frontend && npm install
267267
268268 - name : Install Playwright browsers
269269 run : cd frontend && npx playwright install --with-deps chromium
270270
271271 - name : Run schema rendering e2e suite
272272 run : cd frontend && npm run test:e2e:schema
273273
274+ contract-docs :
275+ name : Contract ABI / Interface Docs
276+ runs-on : ubuntu-latest
277+
278+ steps :
279+ - name : Checkout repository
280+ uses : actions/checkout@v4
281+
282+ - name : Install stable Rust toolchain
283+ uses : dtolnay/rust-toolchain@stable
284+
285+ - name : Cache cargo registry & build artifacts
286+ uses : actions/cache@v4
287+ with :
288+ path : |
289+ ~/.cargo/bin/
290+ ~/.cargo/registry/index/
291+ ~/.cargo/registry/cache/
292+ ~/.cargo/git/db/
293+ target/
294+ key : ${{ runner.os }}-contract-docs-${{ hashFiles('**/Cargo.lock') }}
295+ restore-keys : |
296+ ${{ runner.os }}-contract-docs-
297+
298+ - name : Generate contract docs and interface summary
299+ run : make contract-docs
300+
301+ - name : Verify interface summary is up-to-date
302+ run : |
303+ # Run extraction-only check (rustdoc already generated above)
304+ SKIP_RUSTDOC=1 bash scripts/gen-contract-docs.sh --check
305+
306+ - name : Run ABI surface stability tests (amm-pool)
307+ run : cargo test -p amm-pool --test integration_tests abi_ -- --nocapture
308+
309+ - name : Upload rustdoc artifact
310+ uses : actions/upload-artifact@v4
311+ with :
312+ name : contract-rustdoc
313+ path : target/doc/
314+ retention-days : 14
315+
316+ - name : Upload interface JSON artifact
317+ uses : actions/upload-artifact@v4
318+ with :
319+ name : contract-interfaces-json
320+ path : docs/generated/contract-interfaces.json
321+ retention-days : 14
322+
274323 commitlint :
275324 name : Lint Commit Messages
276325 runs-on : ubuntu-latest
0 commit comments