Repository navigation
docs(wind): require uni-stream fallback when the peer cannot receive … #52
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 and Pages | |
| on: | |
| pull_request: | |
| push: | |
| branches: | |
| - main | |
| workflow_dispatch: | |
| permissions: | |
| contents: read | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: ${{ github.event_name == 'pull_request' }} | |
| env: | |
| CARGO_TERM_COLOR: always | |
| UV_PYTHON: '3.13' | |
| jobs: | |
| check: | |
| name: Rust and XML DSL checks | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 20 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@nightly | |
| with: | |
| components: rustfmt | |
| - name: Check formatting | |
| run: cargo +nightly fmt --all --check | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: wasm32-unknown-unknown | |
| components: clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Check native Rust | |
| run: cargo clippy --workspace --all-targets --locked -- -D warnings | |
| - name: Check WASM bridge | |
| run: cargo clippy --target wasm32-unknown-unknown --lib --locked -- -D warnings | |
| - name: Test XML DSL and configuration generation | |
| run: cargo test --workspace --locked | |
| - name: Verify TOML, JSON and YAML round trips | |
| run: | | |
| cargo run --locked --example fixtures -- .cache/config-editor-fixtures | |
| cargo +nightly -Zscript tests/config-editor/roundtrip.rs .cache/config-editor-fixtures/roundtrip.json | |
| build: | |
| name: Build and test standalone SPA | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 30 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: wasm32-unknown-unknown | |
| - name: Install nightly for cargo script checks | |
| run: rustup toolchain install nightly --profile minimal | |
| - uses: Swatinem/rust-cache@v2 | |
| with: | |
| key: svelte-wasm | |
| - uses: astral-sh/setup-uv@v5 | |
| with: | |
| enable-cache: true | |
| - uses: actions/setup-node@v4 | |
| with: | |
| node-version: '24' | |
| cache: npm | |
| cache-dependency-path: | | |
| config-editor/package-lock.json | |
| tests/config-editor/package-lock.json | |
| - uses: extractions/setup-just@v4 | |
| - name: Install frontend dependencies | |
| run: npm ci --prefix config-editor | |
| - name: Build documentation and standalone editor | |
| run: | | |
| just build | |
| cargo +nightly -Zscript tests/config-editor/check-site.rs | |
| - name: Install browser test dependencies | |
| run: npm ci --prefix tests/config-editor | |
| - name: Install Chromium and Firefox | |
| working-directory: tests/config-editor | |
| run: npx --no-install playwright install --with-deps chromium firefox | |
| - name: Test the assembled WASM application | |
| run: npm run test:site --prefix tests/config-editor | |
| - name: Test Svelte components in real browsers | |
| run: npm run test:browser --prefix config-editor | |
| - name: Verify application reuse with a different XML description | |
| env: | |
| CONFIG_SCHEMA: schema/example.xml | |
| run: | | |
| npm run build --prefix config-editor -- --outDir "$PWD/.cache/generic-site" | |
| npm run test:generic --prefix tests/config-editor | |
| - name: Upload Playwright report | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: playwright-report | |
| path: | | |
| tests/config-editor/playwright-report/ | |
| tests/config-editor/test-results/ | |
| retention-days: 7 | |
| - name: Assemble Pages artifact | |
| run: | | |
| mkdir -p "$RUNNER_TEMP/pages" | |
| cp -a site/. "$RUNNER_TEMP/pages/" | |
| - name: Upload Pages artifact | |
| uses: actions/upload-pages-artifact@v3 | |
| with: | |
| path: ${{ runner.temp }}/pages | |
| deploy: | |
| name: Deploy to GitHub Pages | |
| if: github.ref == 'refs/heads/main' && github.event_name != 'pull_request' | |
| needs: [check, build] | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 10 | |
| permissions: | |
| contents: read | |
| pages: write | |
| id-token: write | |
| concurrency: | |
| group: pages | |
| cancel-in-progress: false | |
| environment: | |
| name: github-pages | |
| url: ${{ steps.deployment.outputs.page_url }} | |
| steps: | |
| - name: Setup Pages | |
| uses: actions/configure-pages@v5 | |
| - name: Deploy to GitHub Pages | |
| id: deployment | |
| uses: actions/deploy-pages@v5 |