name: Test # Controls when the action will run. on: # Triggers the workflow on pull request events but only for the main branch pull_request: branches: [main] push: branches: [main] # Allows you to run this workflow manually from the Actions tab workflow_dispatch: permissions: contents: read # A workflow run is made up of one or more jobs that can run sequentially or in parallel jobs: test: runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] # Steps represent a sequence of tasks that will be executed as part of the job steps: - name: Checkout uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7 - name: Setup Node.js uses: actions/setup-node@820762786026740c76f36085b0efc47a31fe5020 # v7 with: node-version: 24.18.1 package-manager-cache: false - name: Install Pnpm uses: pnpm/action-setup@0977fd99725f1db4007ccb2928dbb4e90d06cc86 # v6.0.10 with: run_install: true - name: Build Packages run: node --run build - name: Run Rust Tests run: cargo test --profile ci --workspace --locked - name: Build Native Binding run: pnpm --filter rstack build:native:ci - name: Check Generated Native Files run: git diff --exit-code -- packages/rstack/binding.cjs packages/rstack/binding.d.cts - name: Run Test run: node --run test