name: Compressed Size

on:
    pull_request:
        paths:
            # Any change to a CSS, Sass, or JavaScript file should run checks.
            - '**.js'
            - '**.css'
            - '**.scss'
            # Changes to any NPM related files could affect the outcome.
            - '**package*.json'
            # These files configures ESLint. Changes could affect the outcome.
            - '**.eslint*'
            # These files configures JSHint. Changes could affect the outcome.
            - '**.jshint*'
            # These files configures Prettier. Changes could affect the outcome.
            - '**.prettier*'
            # These files configures stylelint. Changes could affect the outcome.
            - '**.stylelint*'
            # These files configures TypeScript. Changes could affect the outcome.
            - '**.tsconfig*'
            # This file configures Webpack. Changes could affect the outcome.
            - 'webpack.config.js'
            # Changes to this workflow file should always verify the changes are successful.
            - '.github/workflows/bundle-size.yml'

# Cancels all previous workflow runs for pull requests that have not completed.
concurrency:
    # The concurrency group contains the workflow name and the branch name for pull requests
    # or the commit hash for any other events.
    group: ${{ github.workflow }}-${{ github.event_name == 'pull_request' && github.head_ref || github.sha }}
    cancel-in-progress: true

jobs:
    build:
        name: Check
        runs-on: ubuntu-latest

        steps:
            - uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
              with:
                  fetch-depth: 1
                  show-progress: ${{ runner.debug == '1' && 'true' || 'false' }}

            - name: Use desired version of Node.js
              uses: actions/setup-node@39370e3970a6d050c480ffad4ff0ed4d3fdee5af # v4.1.0
              with:
                  node-version-file: '.nvmrc'
                  check-latest: true
                  cache: npm

            - uses: preactjs/compressed-size-action@6fa0e7ca017120c754863b31123c5ee2860fd434 # v2.7.0
              with:
                  repo-token: '${{ secrets.GITHUB_TOKEN }}'
                  pattern: '{build/**/*.min.js,build/**/*.css,build-module/**/*.min.js}'
                  clean-script: 'distclean'