name: CI on: push: branches: [ main ] pull_request: branches: [ main ] permissions: contents: read jobs: validate: name: Lint & Verify (${{ matrix.os }}, Python ${{ matrix.python-version }}) strategy: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] python-version: ["3.11", "3.12"] runs-on: ${{ matrix.os }} timeout-minutes: 10 steps: - name: Checkout repository uses: actions/checkout@v4 with: persist-credentials: false - name: Set up Python uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Verify accessible SVG contract run: python scripts/test-lint-a11y.py - name: Run skin linter run: python scripts/lint-skin.py --all --baseline - name: Verify sequence OAuth specs run: python scripts/verify-sequence-oauth.py - name: Verify draw.io import script run: python scripts/verify-drawio-import.py - name: Verify Mermaid import script run: python scripts/verify-mermaid-import.py - name: Install Playwright & Chromium shell: bash run: | python -m pip install playwright if [ "${{ runner.os }}" = "Linux" ]; then python -m playwright install --with-deps chromium else python -m playwright install chromium fi - name: Verify generated icon assets shell: bash run: | python scripts/build-icons.py git diff --ignore-space-at-eol --exit-code -- \ skills/diagram-design/assets/icons.html \ skills/diagram-design/references/primitive-icons.md