ci: align matrix with current verification gates
This commit is contained in:
@@ -44,13 +44,16 @@ jobs:
|
|||||||
run: python scripts/test-lint-a11y.py
|
run: python scripts/test-lint-a11y.py
|
||||||
|
|
||||||
- name: Verify URL SVG normalization
|
- name: Verify URL SVG normalization
|
||||||
run: python3 scripts/test-build-icons-quoted-attributes.py
|
id: url_icons
|
||||||
|
run: python scripts/test-build-icons-quoted-attributes.py
|
||||||
|
|
||||||
- name: Verify Devicon normalization
|
- name: Verify Devicon normalization
|
||||||
run: python3 scripts/test-build-icons-devicon.py
|
id: devicon
|
||||||
|
run: python scripts/test-build-icons-devicon.py
|
||||||
|
|
||||||
- name: Verify mojibake repair utility
|
- name: Verify mojibake repair utility
|
||||||
run: python3 scripts/test-fix-mojibake.py
|
id: mojibake
|
||||||
|
run: python scripts/test-fix-mojibake.py
|
||||||
|
|
||||||
- name: Run skin linter
|
- name: Run skin linter
|
||||||
id: skin
|
id: skin
|
||||||
@@ -68,35 +71,6 @@ jobs:
|
|||||||
id: mermaid
|
id: mermaid
|
||||||
run: python scripts/verify-mermaid-import.py
|
run: python scripts/verify-mermaid-import.py
|
||||||
|
|
||||||
- name: Verify onboarding CLI script (if present)
|
|
||||||
id: onboard
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ -f scripts/verify-onboarding.py ]; then
|
|
||||||
python scripts/verify-onboarding.py
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Install Playwright & Chromium (if linter present)
|
|
||||||
id: playwright_install
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ -f scripts/lint-render.py ]; then
|
|
||||||
python -m pip install playwright
|
|
||||||
if [ "${{ runner.os }}" = "Linux" ]; then
|
|
||||||
python -m playwright install --with-deps chromium
|
|
||||||
else
|
|
||||||
python -m playwright install chromium
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Verify render layout validator self-test (if present)
|
|
||||||
id: lint_render
|
|
||||||
shell: bash
|
|
||||||
run: |
|
|
||||||
if [ -f scripts/lint-render.py ]; then
|
|
||||||
python scripts/lint-render.py --self-test --screenshot-dir failure-screenshots
|
|
||||||
fi
|
|
||||||
|
|
||||||
- name: Verify generated icon assets
|
- name: Verify generated icon assets
|
||||||
id: icons
|
id: icons
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -106,16 +80,6 @@ jobs:
|
|||||||
skills/diagram-design/assets/icons.html \
|
skills/diagram-design/assets/icons.html \
|
||||||
skills/diagram-design/references/primitive-icons.md
|
skills/diagram-design/references/primitive-icons.md
|
||||||
|
|
||||||
- name: Upload linter failure artifacts
|
|
||||||
if: failure()
|
|
||||||
uses: actions/upload-artifact@v4
|
|
||||||
with:
|
|
||||||
name: linter-failure-artifacts-${{ matrix.os }}-python-${{ matrix.python-version }}
|
|
||||||
path: |
|
|
||||||
failure-screenshots/
|
|
||||||
scripts/fixtures/
|
|
||||||
skills/diagram-design/assets/
|
|
||||||
|
|
||||||
- name: Generate CI execution summary table
|
- name: Generate CI execution summary table
|
||||||
if: always()
|
if: always()
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -124,6 +88,9 @@ jobs:
|
|||||||
echo "| Verification Gate | Outcome |" >> $GITHUB_STEP_SUMMARY
|
echo "| Verification Gate | Outcome |" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "|---|---|" >> $GITHUB_STEP_SUMMARY
|
echo "|---|---|" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "| SVG Accessibility Contract | ${{ steps.a11y.outcome == 'success' && '✅ Passed' || (steps.a11y.outcome == 'skipped' && '⏭️ Skipped' || '❌ Failed') }} |" >> $GITHUB_STEP_SUMMARY
|
echo "| SVG Accessibility Contract | ${{ steps.a11y.outcome == 'success' && '✅ Passed' || (steps.a11y.outcome == 'skipped' && '⏭️ Skipped' || '❌ Failed') }} |" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "| URL SVG Normalization | ${{ steps.url_icons.outcome == 'success' && '✅ Passed' || (steps.url_icons.outcome == 'skipped' && '⏭️ Skipped' || '❌ Failed') }} |" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Devicon Normalization | ${{ steps.devicon.outcome == 'success' && '✅ Passed' || (steps.devicon.outcome == 'skipped' && '⏭️ Skipped' || '❌ Failed') }} |" >> $GITHUB_STEP_SUMMARY
|
||||||
|
echo "| Mojibake Repair Utility | ${{ steps.mojibake.outcome == 'success' && '✅ Passed' || (steps.mojibake.outcome == 'skipped' && '⏭️ Skipped' || '❌ Failed') }} |" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "| Color Palette & Skin Linter | ${{ steps.skin.outcome == 'success' && '✅ Passed' || (steps.skin.outcome == 'skipped' && '⏭️ Skipped' || '❌ Failed') }} |" >> $GITHUB_STEP_SUMMARY
|
echo "| Color Palette & Skin Linter | ${{ steps.skin.outcome == 'success' && '✅ Passed' || (steps.skin.outcome == 'skipped' && '⏭️ Skipped' || '❌ Failed') }} |" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "| Sequence Diagram Grammar | ${{ steps.oauth.outcome == 'success' && '✅ Passed' || (steps.oauth.outcome == 'skipped' && '⏭️ Skipped' || '❌ Failed') }} |" >> $GITHUB_STEP_SUMMARY
|
echo "| Sequence Diagram Grammar | ${{ steps.oauth.outcome == 'success' && '✅ Passed' || (steps.oauth.outcome == 'skipped' && '⏭️ Skipped' || '❌ Failed') }} |" >> $GITHUB_STEP_SUMMARY
|
||||||
echo "| Draw.io Import Extractor | ${{ steps.drawio.outcome == 'success' && '✅ Passed' || (steps.drawio.outcome == 'skipped' && '⏭️ Skipped' || '❌ Failed') }} |" >> $GITHUB_STEP_SUMMARY
|
echo "| Draw.io Import Extractor | ${{ steps.drawio.outcome == 'success' && '✅ Passed' || (steps.drawio.outcome == 'skipped' && '⏭️ Skipped' || '❌ Failed') }} |" >> $GITHUB_STEP_SUMMARY
|
||||||
|
|||||||
+2
-2
@@ -19,7 +19,7 @@ See [README.md](README.md) for the full picture, including the design system and
|
|||||||
- **Create an issue first** for anything non-trivial (new type, behavior change, import grammar work). Small fixes and docs can go straight to a PR.
|
- **Create an issue first** for anything non-trivial (new type, behavior change, import grammar work). Small fixes and docs can go straight to a PR.
|
||||||
- **Work on a branch** — never commit directly to `main`.
|
- **Work on a branch** — never commit directly to `main`.
|
||||||
- **Keep the scope tight.** One PR = one concern. Mixing a new diagram type with a docs rewrite makes review slow.
|
- **Keep the scope tight.** One PR = one concern. Mixing a new diagram type with a docs rewrite makes review slow.
|
||||||
- **Python 3.10+ is required** for the development scripts (CI runs 3.11).
|
- **Python 3.10+ is required** for the development scripts (CI runs 3.11 and 3.12 across Linux, Windows, and macOS).
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
@@ -133,4 +133,4 @@ A good PR:
|
|||||||
|
|
||||||
## Questions?
|
## Questions?
|
||||||
|
|
||||||
Open a discussion or comment on the relevant issue. If it's about security, use the private reporting path in [SECURITY.md](SECURITY.md).
|
Open a discussion or comment on the relevant issue. If it's about security, use the private reporting path in [SECURITY.md](SECURITY.md).
|
||||||
|
|||||||
@@ -361,7 +361,7 @@ If you touch the Mermaid import path, `python3 scripts/verify-mermaid-import.py`
|
|||||||
it covers all supported grammars, multi-block Markdown, adversarial labels, trust-boundary
|
it covers all supported grammars, multi-block Markdown, adversarial labels, trust-boundary
|
||||||
behavior, resource caps, named failures, and reference/command wiring.
|
behavior, resource caps, named failures, and reference/command wiring.
|
||||||
|
|
||||||
All pull requests and pushes are automatically validated across Linux, Windows, and macOS runners via GitHub Actions CI (`.github/workflows/ci.yml`). Failure artifacts are automatically packaged and uploaded for visual debugging.
|
All pull requests and pushes are automatically validated across Linux, Windows, and macOS runners via GitHub Actions CI (`.github/workflows/ci.yml`).
|
||||||
|
|
||||||
### What loads when
|
### What loads when
|
||||||
|
|
||||||
|
|||||||
@@ -600,11 +600,11 @@ def main() -> int:
|
|||||||
md_chunks, gallery_chunks, misses = build()
|
md_chunks, gallery_chunks, misses = build()
|
||||||
|
|
||||||
MD_OUT.parent.mkdir(parents=True, exist_ok=True)
|
MD_OUT.parent.mkdir(parents=True, exist_ok=True)
|
||||||
MD_OUT.write_bytes("".join(md_chunks).replace("\r\n", "\n").encode("utf-8"))
|
MD_OUT.write_text("".join(md_chunks), encoding="utf-8")
|
||||||
|
|
||||||
HTML_OUT.parent.mkdir(parents=True, exist_ok=True)
|
HTML_OUT.parent.mkdir(parents=True, exist_ok=True)
|
||||||
html = GALLERY_TEMPLATE.replace("{SECTIONS}", "\n".join(gallery_chunks))
|
html = GALLERY_TEMPLATE.replace("{SECTIONS}", "\n".join(gallery_chunks))
|
||||||
HTML_OUT.write_bytes(html.replace("\r\n", "\n").encode("utf-8"))
|
HTML_OUT.write_text(html, encoding="utf-8")
|
||||||
|
|
||||||
total = sum(len(items) for items in ICONS.values())
|
total = sum(len(items) for items in ICONS.values())
|
||||||
print(f"\nDone. {total - len(misses)}/{total} fetched.", file=sys.stderr)
|
print(f"\nDone. {total - len(misses)}/{total} fetched.", file=sys.stderr)
|
||||||
|
|||||||
Reference in New Issue
Block a user