Skip to content

fix(mcp-catalog): remove host-incompatible regex constraints #91

fix(mcp-catalog): remove host-incompatible regex constraints

fix(mcp-catalog): remove host-incompatible regex constraints #91

Workflow file for this run

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