name: Dev Package Test

on:
  schedule:
    # “At 00:00 on Sunday.” https://crontab.guru/#0_0_*_*_SUN
    - cron: "0 0 * * SUN"
  pull_request:
    paths:
      - "package.json"
      - "yarn.lock"
      # This workflow file
      - ".github/workflows/dev-package-test.yml"
      - "tests/config/install-prettier.js"

permissions:
  contents: read

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

jobs:
  test:
    if: github.event_name != 'schedule' || github.repository == 'prettier/prettier'
    timeout-minutes: 15
    strategy:
      fail-fast: false
      matrix:
        os:
          - "ubuntu-latest"
        node:
          # Minimal version for development
          - "22"
        NPM_CLIENT:
          - "yarn"
          - "npm"
          - "pnpm"
    env:
      INSTALL_PACKAGE: true
      PRETTIER_INSTALL_NPM_CLIENT: ${{ matrix.NPM_CLIENT }}
    name: Test with ${{ matrix.NPM_CLIENT }}
    runs-on: ${{ matrix.os }}
    steps:
      - name: Checkout
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0

      - name: Setup Node.js
        uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
        with:
          node-version: ${{ matrix.node }}
          cache: "yarn"

      - name: Install Dependencies
        run: yarn install --immutable

      - name: Install Client Package
        if: ${{ matrix.NPM_CLIENT == 'pnpm' }}
        run: npm install --global pnpm

      - name: Run Tests
        run: yarn test:dev-package
