name: Reusable linting workflow on: workflow_call: inputs: ref: description: GitHub ref to lint. required: false type: string default: master cacheKey: description: Cache key for modules and build artifacts. required: false default: '' type: string jobs: lint: name: Lint runs-on: blacksmith-2vcpu-ubuntu-2204 env: NODE_OPTIONS: '--max-old-space-size=4096' steps: - uses: actions/checkout@v4.1.1 with: ref: ${{ inputs.ref }} - run: corepack enable - uses: useblacksmith/setup-node@v5 with: node-version: 20.x cache: pnpm - name: Install dependencies run: pnpm install --frozen-lockfile - name: Setup build cache uses: useblacksmith/caching-for-turbo@v1 - name: Build if: ${{ inputs.cacheKey == '' }} run: pnpm build - name: Restore cached build artifacts if: ${{ inputs.cacheKey != '' }} uses: useblacksmith/cache/restore@v5 with: path: ./packages/**/dist key: ${{ inputs.cacheKey }} fail-on-cache-miss: true - name: Lint Backend run: pnpm lint:backend - name: Lint Nodes run: pnpm lint:nodes - name: Lint Frontend run: pnpm lint:frontend