35 lines
1.0 KiB
YAML
35 lines
1.0 KiB
YAML
name: API checks
|
|
|
|
on:
|
|
push:
|
|
pull_request:
|
|
|
|
jobs:
|
|
checks:
|
|
runs-on: debian-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: actions/setup-node@v4
|
|
with:
|
|
node-version: 22
|
|
- name: Validate repository documentation
|
|
run: test -f README.md && test -f AGENTS.md && test -f docs/versioning.md
|
|
- uses: actions/setup-python@v5
|
|
with:
|
|
python-version: '3.12'
|
|
- name: Validate restored-session schema and negative cases
|
|
run: |
|
|
python -m pip install jsonschema==4.26.0
|
|
python tests/session_contract.py
|
|
- name: Validate JSON contracts and fixtures
|
|
run: |
|
|
node --input-type=module <<'NODE'
|
|
import { readdir, readFile } from 'node:fs/promises';
|
|
for (const directory of ['contracts/v1', 'fixtures/v1']) {
|
|
for (const name of await readdir(directory)) {
|
|
if (!name.endsWith('.json')) continue;
|
|
JSON.parse(await readFile(`${directory}/${name}`, 'utf8'));
|
|
}
|
|
}
|
|
NODE
|