fix: SPA navigation full mount, client-replay macros, rate-limit & CS… #38
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, master] | |
| pull_request: | |
| branches: [main, master] | |
| env: | |
| CARGO_TERM_COLOR: always | |
| jobs: | |
| check: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| with: | |
| components: rustfmt, clippy | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: Format | |
| run: cargo fmt --all -- --check | |
| - name: Clippy | |
| run: cargo clippy --workspace --all-targets -- -D warnings | |
| - name: Test | |
| run: cargo test --workspace | |
| - name: Check workspace | |
| run: cargo check --workspace | |
| - name: Build JS runtime | |
| working-directory: runtime | |
| run: | | |
| npm ci | |
| npm run build | |
| npm run size | |
| - name: Install E2E browser | |
| run: | | |
| npm ci | |
| npx playwright install --with-deps chromium | |
| - name: Browser E2E | |
| run: npm run e2e | |
| publish-dry-run: | |
| runs-on: ubuntu-latest | |
| needs: check | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: dtolnay/rust-toolchain@stable | |
| - uses: Swatinem/rust-cache@v2 | |
| - name: cargo publish --dry-run (macros first) | |
| run: cargo publish -p resuma-macros --dry-run | |
| - name: cargo publish --dry-run (resuma) | |
| shell: bash | |
| run: | | |
| VERSION=$(python - <<'PY' | |
| import pathlib, re | |
| text = pathlib.Path("Cargo.toml").read_text() | |
| match = re.search(r'(?m)^version = "([^"]+)"', text) | |
| if not match: | |
| raise SystemExit("workspace version not found") | |
| print(match.group(1)) | |
| PY | |
| ) | |
| if cargo search resuma-macros --limit 1 | grep -q "resuma-macros = \"$VERSION\""; then | |
| cargo publish -p resuma --dry-run | |
| else | |
| echo "resuma-macros $VERSION is not on crates.io yet; publish macros first, then dry-run/publish resuma." | |
| fi |