name: Lint and Format Check on: push: branches: [ main ] pull_request: branches: [ '*' ] jobs: lint-and-format: runs-on: ubuntu-latest steps: - name: Checkout repository uses: actions/checkout@v6 - name: Setup Node.js uses: actions/setup-node@v6 with: node-version: '20' cache: 'npm' - name: Install dependencies run: npm ci - name: Check insforge-dev skill copies are in sync run: scripts/sync-skills.sh --check - name: Get changed files id: changed-files uses: tj-actions/changed-files@v45 with: files: | **/*.{ts,tsx,js,jsx,mjs,cjs} - name: Run ESLint on changed files if: steps.changed-files.outputs.any_changed == 'true' run: npx eslint ${{ steps.changed-files.outputs.all_changed_files }} - name: Get changed files for Prettier id: changed-files-prettier uses: tj-actions/changed-files@v45 - name: Check Prettier formatting on changed files if: steps.changed-files-prettier.outputs.any_changed == 'true' run: npx prettier --check --ignore-unknown ${{ steps.changed-files-prettier.outputs.all_changed_files }} - name: Run TypeScript type checking run: npm run typecheck