fix(macros): inject handler params for js!(async () => { state... }) #99
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: Supply chain (cargo-deny) | |
| run: | | |
| cargo install cargo-deny --locked | |
| cargo deny check bans licenses sources | |
| - 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:all | |
| - name: SQLx (ephemeral SQLite) | |
| run: cargo test -p example-resuma-audit sqlx_ci | |
| - name: Benchmark (Resuma only) | |
| run: node benchmark/run.mjs --skip-build | |
| 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 |