# Bundler Friendly workflow (prettier/prettier)

> The Bundler Friendly workflow from prettier/prettier, explained and optimized by Latchkey.

Source: https://latchkey.dev/workflows/prettier-prettier-bundler-friendly  
Upstream: [prettier/prettier](https://github.com/prettier/prettier/blob/main/.github/workflows/bundler-friendly.yml) (.github/workflows/bundler-friendly.yml), licence MIT

## What it does

This is the Bundler Friendly workflow from the prettier/prettier repository, a real project running GitHub Actions. It is shown here with attribution under its MIT license.

Below, Latchkey shows a faster, safer version produced by its optimization engine.

## The workflow

```yaml
name: Bundler Friendly

on:
  schedule:
    # “At 00:00 on Sunday.” https://crontab.guru/#0_0_*_*_SUN
    - cron: "0 0 * * SUN"
  pull_request:
    paths:
      - "scripts/tools/bundle-test/**"
      # This workflow file
      - ".github/workflows/bundler-friendly.yml"

permissions:
  contents: read

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

jobs:
  build:
    if: github.event_name != 'schedule' || github.repository == 'prettier/prettier'
    name: Build
    uses: ./.github/workflows/_build.yml

  webpack:
    if: github.event_name != 'schedule' || github.repository == 'prettier/prettier'
    name: Bundle Prettier with webpack
    runs-on: ubuntu-latest
    needs: [build]
    steps:
      - name: Checkout
        uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0

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

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

      - name: Download Artifact
        uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
        with:
          name: dist
          path: dist

      - name: Install Dependencies
        working-directory: scripts/tools/bundle-test
        run: yarn install --immutable

      - name: Test
        working-directory: scripts/tools/bundle-test
        run: yarn test
```

## FAQ

### What does the Bundler Friendly workflow (prettier/prettier) workflow do?

This is the Bundler Friendly workflow from the prettier/prettier repository, a real project running GitHub Actions. It is shown here with attribution under its MIT license.

### What CI health grade does this workflow get?

This Node.js workflow grades A. Paste your own workflow into the Latchkey grader to see its grade and the exact fixes.

### How can I improve this Node.js workflow?

Add job timeouts. Latchkey applies these automatically on managed runners when you point runs-on at Latchkey.

---

Latchkey runs CI/CD that repairs its own failures. Agent entry points: https://latchkey.dev/agent.txt, https://latchkey.dev/openapi.json, https://latchkey.dev/llms.txt
