fix(mcp-catalog): remove host-incompatible regex constraints #91
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main] | |
| pull_request: | |
| branches: [main] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| CARGO_PROFILE_DEV_DEBUG: line-tables-only | |
| CARGO_PROFILE_TEST_DEBUG: line-tables-only | |
| jobs: | |
| check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Validate POSIX installer | |
| run: | | |
| sh -n install.sh | |
| sh -n scripts/test-posix-installer.sh | |
| ./scripts/test-posix-installer.sh | |
| - name: Validate PowerShell installer | |
| shell: pwsh | |
| run: | | |
| foreach ($path in @('install.ps1', 'scripts/test-windows-installer.ps1')) { | |
| $tokens = $null | |
| $errors = $null | |
| [System.Management.Automation.Language.Parser]::ParseFile( | |
| (Resolve-Path $path), | |
| [ref]$tokens, | |
| [ref]$errors | |
| ) > $null | |
| if ($errors.Count) { | |
| $errors | ForEach-Object { Write-Error "${path}: $_" } | |
| exit 1 | |
| } | |
| } | |
| - name: Test release notarization orchestration | |
| run: python3 -m unittest scripts.test_release_notarization -v | |
| - name: Test notarization webhook relay | |
| run: node --test scripts/test-cloudflare-notary-webhook.mjs | |
| - name: Format | |
| run: | | |
| cargo fmt --all --check | |
| rustfmt --edition 2024 --check src/server_markdown_chat_tests.rs src/server_markdown_chat_widget_tests.rs | |
| - name: Clippy | |
| run: cargo clippy --all-targets -- -D warnings | |
| - name: Test | |
| run: cargo test --all | |
| - uses: actions/setup-python@v7 | |
| id: notification-python | |
| with: | |
| python-version: '3.12' | |
| cache: pip | |
| cache-dependency-path: scripts/requirements-notifications.txt | |
| - name: Install notification test dependencies | |
| run: python -m pip install -r scripts/requirements-notifications.txt | |
| - name: Test real notification adapters without external delivery | |
| run: python -m unittest scripts.test_apprise_notifications -v | |
| - name: Test notification subprocesses with a local HTTP receiver | |
| env: | |
| CODEXIFY_TEST_APPRISE_PYTHON: ${{ steps.notification-python.outputs.python-path }} | |
| run: cargo test --test markdown_chat_notifications --test markdown_chat_tools -- --include-ignored | |
| - name: Test setup widget transitions | |
| run: node --test scripts/test-setup-widget.mjs | |
| diff-widget: | |
| name: Diff widget layout (Chromium and WebKit) | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - name: Install browser test dependencies | |
| run: | | |
| npm install --no-save --package-lock=false --ignore-scripts playwright@1.62.1 | |
| # Playwright only needs Ubuntu packages here. The runner's optional | |
| # Chrome repository can be mid-publish and make apt reject unrelated | |
| # dependency installs with a transient hash mismatch. | |
| sudo rm -f \ | |
| /etc/apt/sources.list.d/google-chrome.list \ | |
| /etc/apt/sources.list.d/google-chrome.sources | |
| npx --no-install playwright install --with-deps chromium webkit | |
| - name: Test diff layout on mobile and desktop | |
| run: node --test scripts/test-diff-widget.mjs | |
| - name: Test Markdown chat composer, synchronization, and receipts | |
| run: node --test scripts/test-markdown-chat-widget.mjs | |
| service-platforms: | |
| name: Service integration (${{ matrix.os }}) | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| os: [macos-14, windows-latest] | |
| runs-on: ${{ matrix.os }} | |
| steps: | |
| - uses: actions/checkout@v5 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Test POSIX installer on macOS | |
| if: runner.os == 'macOS' | |
| run: ./scripts/test-posix-installer.sh | |
| - name: Test Windows installer | |
| if: runner.os == 'Windows' | |
| shell: pwsh | |
| run: ./scripts/test-windows-installer.ps1 | |
| - name: Test service contracts | |
| run: cargo test --all-targets service | |
| - name: Test self-update contracts | |
| run: cargo test self_update | |
| - name: Test Markdown chat storage and tools | |
| run: cargo test --test markdown_chat --test markdown_chat_tools --test markdown_chat_timestamps | |
| - name: Test legacy configuration migration against startup validation | |
| run: cargo test --test legacy_migration | |
| - name: Test Markdown chat dispatch, watching, and schemas | |
| run: cargo test --lib markdown_chat | |
| - uses: actions/setup-python@v7 | |
| id: notification-python | |
| with: | |
| python-version: '3.12' | |
| cache: pip | |
| cache-dependency-path: scripts/requirements-notifications.txt | |
| - name: Install notification test dependencies | |
| run: python -m pip install -r scripts/requirements-notifications.txt | |
| - name: Test real notification adapters without external delivery | |
| run: python -m unittest scripts.test_apprise_notifications -v | |
| - name: Test notification subprocesses with a local HTTP receiver | |
| env: | |
| CODEXIFY_TEST_APPRISE_PYTHON: ${{ steps.notification-python.outputs.python-path }} | |
| run: cargo test --test markdown_chat_notifications --test markdown_chat_tools -- --include-ignored |