name: Test on: pull_request: branches: - main push: branches: - main permissions: contents: read jobs: test: name: Test strategy: matrix: node-version: - 20.19.x - 22.17.x os: - macos-latest - ubuntu-latest - windows-latest runs-on: "${{ matrix.os }}" steps: - run: git config --global core.autocrlf input - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Setup Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: "${{ matrix.node-version }}" cache: "yarn" - name: Install dependencies run: yarn install --immutable - name: Build run: yarn build - name: Test run: yarn lint && yarn test validate-schemas: name: Validate JSON Schemas runs-on: ubuntu-latest steps: - name: Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 - name: Setup Node.js uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4.4.0 with: node-version: "22.17.x" cache: "yarn" - name: Install dependencies run: yarn install --immutable - name: Build code (required for schema generation) run: yarn build:code - name: Generate schemas run: yarn build:schema - name: Check for schema changes run: | if ! git diff --exit-code schemas/; then echo "Error: JSON schemas in schemas/ directory are out of sync!" echo "Please run 'yarn build:schema' and commit the changes." echo "" echo "Changes detected:" git diff schemas/ exit 1 fi echo "✓ All schemas are up to date"