name: Node.js on: push: paths: - "**.js" - "**.ts" - "package.json" - "src/packages/**" - "turbo.json" - ".github/workflows/node.yml" - ".syncpackrc" - "**.svelte" pull_request: paths: - "**.js" - "**.ts" - "package.json" - "src/packages/**" - "turbo.json" - ".github/workflows/node.yml" - ".syncpackrc" - "**.svelte" jobs: build-and-test: name: Build and Test runs-on: ${{ matrix.os }} strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] steps: - uses: actions/checkout@v4 - name: Cache turborepo uses: actions/cache@v4 with: path: .turbo key: ${{ runner.os }}-turbo-${{ github.sha }} restore-keys: | ${{ runner.os }}-turbo- - name: Install pnpm and dependencies uses: pnpm/action-setup@v4 with: run_install: true - name: Set up Node.js uses: actions/setup-node@v4 with: node-version: "latest" cache: "pnpm" - name: Check formatting run: pnpm lint - name: Build and Test run: pnpm build && pnpm test