chore: Clean up WASM module structure #20
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, claude/* ] | |
| pull_request: | |
| branches: [ main ] | |
| permissions: | |
| contents: read | |
| pull-requests: read | |
| jobs: | |
| test: | |
| name: Test | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| deno-version: ['1.40.x', '1.41.x'] | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Deno | |
| uses: denoland/setup-deno@v1 | |
| with: | |
| deno-version: ${{ matrix.deno-version }} | |
| - name: Setup just | |
| uses: extractions/setup-just@v1 | |
| - name: Setup Rust (for WASM) | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: wasm32-unknown-unknown | |
| - name: Install ReScript | |
| run: | | |
| curl -fsSL https://raw.githubusercontent.com/rescript-lang/rescript-compiler/master/scripts/install.sh | bash | |
| echo "$HOME/.rescript/bin" >> $GITHUB_PATH | |
| - name: Check tools | |
| run: just check-tools | |
| - name: Build | |
| run: just build | |
| - name: Run tests | |
| run: just test | |
| - name: Upload test results | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-results-deno-${{ matrix.deno-version }} | |
| path: coverage/ | |
| quality: | |
| name: Code Quality | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Deno | |
| uses: denoland/setup-deno@v1 | |
| with: | |
| deno-version: '1.x' | |
| - name: Setup just | |
| uses: extractions/setup-just@v1 | |
| - name: Install ReScript | |
| run: | | |
| curl -fsSL https://raw.githubusercontent.com/rescript-lang/rescript-compiler/master/scripts/install.sh | bash | |
| echo "$HOME/.rescript/bin" >> $GITHUB_PATH | |
| - name: Lint | |
| run: just lint | |
| - name: Format check | |
| run: just fmt-check | |
| - name: Type check | |
| run: just type-check | |
| security: | |
| name: Security Scan | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Deno | |
| uses: denoland/setup-deno@v1 | |
| with: | |
| deno-version: '1.x' | |
| - name: Setup just | |
| uses: extractions/setup-just@v1 | |
| - name: Security audit | |
| run: just security-audit | |
| - name: Check for hardcoded secrets | |
| uses: trufflesecurity/trufflehog@main | |
| with: | |
| path: ./ | |
| base: ${{ github.event.repository.default_branch }} | |
| head: HEAD | |
| - name: Verify Git SSH configuration | |
| run: just git-ssh-verify | |
| rsr-compliance: | |
| name: RSR Rhodium Compliance | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Deno | |
| uses: denoland/setup-deno@v1 | |
| with: | |
| deno-version: '1.x' | |
| - name: Setup just | |
| uses: extractions/setup-just@v1 | |
| - name: Verify RSR Rhodium compliance | |
| run: just verify-rsr | |
| - name: Check documentation requirements | |
| run: just rsr-docs | |
| - name: Check build system requirements | |
| run: just rsr-build | |
| - name: Check licensing requirements | |
| run: just rsr-license | |
| accessibility: | |
| name: Accessibility Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup just | |
| uses: extractions/setup-just@v1 | |
| - name: Check accessibility | |
| run: just a11y | |
| documentation: | |
| name: Documentation Check | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Verify required docs exist (AsciiDoc) | |
| run: | | |
| test -f README.adoc || exit 1 | |
| test -f SECURITY.md || exit 1 | |
| test -f CONTRIBUTING.adoc || exit 1 | |
| test -f CODE_OF_CONDUCT.adoc || exit 1 | |
| test -f MAINTAINERS.adoc || exit 1 | |
| test -f CHANGELOG.adoc || exit 1 | |
| test -f TPCF.adoc || exit 1 | |
| test -f LICENSE_DUAL.adoc || exit 1 | |
| test -f .well-known/security.txt || exit 1 | |
| test -f .well-known/ai.txt || exit 1 | |
| echo "All required documentation files present" | |
| - name: Verify NO TypeScript exists | |
| run: | | |
| if find . -name "*.ts" -not -path "./node_modules/*" -type f | grep -q .; then | |
| echo "❌ TypeScript files found (should not exist)" | |
| exit 1 | |
| fi | |
| echo "✅ No TypeScript files found" | |
| - name: Verify NO package.json exists | |
| run: | | |
| if [ -f package.json ]; then | |
| echo "❌ package.json found (should not exist)" | |
| exit 1 | |
| fi | |
| echo "✅ No package.json found" | |
| - name: Check documentation freshness | |
| run: | | |
| # Ensure CHANGELOG.adoc was updated (if not initial commit) | |
| if [ "${{ github.event_name }}" == "pull_request" ]; then | |
| git diff --name-only origin/main | grep -q CHANGELOG.adoc || echo "Consider updating CHANGELOG.adoc" | |
| fi | |
| philosophy: | |
| name: Philosophical Integrity | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup just | |
| uses: extractions/setup-just@v1 | |
| - name: Verify philosophical foundations | |
| run: just philosophy | |
| benchmarks: | |
| name: Performance Benchmarks | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout code | |
| uses: actions/checkout@v4 | |
| - name: Setup Deno | |
| uses: denoland/setup-deno@v1 | |
| with: | |
| deno-version: '1.x' | |
| - name: Setup just | |
| uses: extractions/setup-just@v1 | |
| - name: Setup Rust | |
| uses: dtolnay/rust-toolchain@stable | |
| with: | |
| targets: wasm32-unknown-unknown | |
| - name: Install ReScript | |
| run: | | |
| curl -fsSL https://raw.githubusercontent.com/rescript-lang/rescript-compiler/master/scripts/install.sh | bash | |
| echo "$HOME/.rescript/bin" >> $GITHUB_PATH | |
| - name: Run benchmarks | |
| run: just bench | |
| - name: Upload benchmark results | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: benchmark-results | |
| path: benchmarks/results/ |