creyD / prettier_action

GitHub action for running prettier on your projects pull requests
MIT License
276 stars 87 forks source link

[BUG] Error: Process completed with exit code 1 when using prettier-php #124

Open rwrj opened 1 year ago

rwrj commented 1 year ago

What exactly happened? Getting this error when running the action: Error: Process completed with exit code 1. This seems to be happening when initializing the prettier-php plugin

What should've happened? Prettier should have run successfuly

How did it look? Here is the full log from the run:-

Run creyD/prettier_action@v4.3
  with:
    prettier_options: --write **/*.{css,js,php} --print-width 120
    commit_message: Prettier Code Formatting
    prettier_plugins: @prettier/plugin-php
    same_commit: false
    file_pattern: *
    dry: false
    prettier_version: false
    working_directory: false
    only_changed: false
    github_token: ***
    clean_node_folder: true
Run PATH=$GITHUB_ACTION_PATH/node_modules/.bin:$PATH /home/runner/work/_actions/creyD/prettier_action/v4.3/entrypoint.sh
  PATH=$GITHUB_ACTION_PATH/node_modules/.bin:$PATH /home/runner/work/_actions/creyD/prettier_action/v4.3/entrypoint.sh
  shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
  env:
    INPUT_COMMIT_MESSAGE: Prettier Code Formatting
    INPUT_COMMIT_DESCRIPTION: 
    INPUT_SAME_COMMIT: false
    INPUT_COMMIT_OPTIONS: 
    INPUT_FILE_PATTERN: *
    INPUT_PRETTIER_OPTIONS: --write **/*.{css,js,php} --print-width 120
    INPUT_DRY: false
    INPUT_PRETTIER_VERSION: false
    INPUT_ONLY_CHANGED: false
    INPUT_PRETTIER_PLUGINS: @prettier/plugin-php
    INPUT_WORKING_DIRECTORY: false
    INPUT_GITHUB_TOKEN: ***
    INPUT_CLEAN_NODE_FOLDER: true
Installing prettier...
Checking plugin: @prettier/plugin-php
Error: Process completed with exit code 1.

Where did you encounter the problem? When the action ran on making a push.

Here is my full configuration file for reference:-

name: Prettier Code Formatting

on:
  push:
    branches-ignore: [ live ]
#  pull_request:
#    branches-ignore: [ live ]

jobs:
  prettier:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@v2
        with:
          # Make sure the actual branch is checked out when running on pull requests
          ref: ${{ github.head_ref }}
          # This is important to fetch the changes to the previous commit
          fetch-depth: 0

      - name: Prettify code
        uses: creyD/prettier_action@v4.3
        with:
          # This part is also where you can pass other options, for example:
          prettier_options: "--write **/*.{css,js,php} --print-width 120"
          commit_message: "Prettier Code Formatting"
          prettier_plugins: "@prettier/plugin-php"
          # only_changed: True
rstmsn commented 1 year ago

Getting similar issue here, v.4.3.

Run creyD/prettier_action@v4.3 Run PATH=$GITHUB_ACTION_PATH/node_modules/.bin:$PATH /home/runner/work/_actions/creyD/prettier_action/v4.3/entrypoint.sh Installing prettier... Checking plugin: @prettier/plugin-php Error: Process completed with exit code 1.

igitur commented 1 year ago

This is caused by breaking changes in prettier v3. Use the prettier_version option to pin the prettier version to 2.x.x.

igitur commented 1 year ago

Example at https://github.com/cwackerfuss/react-wordle/blob/5f6f622be86c40e8a46c8123cc98c3d6ca8719eb/.github/workflows/lint.yml#L17

rwrj commented 1 year ago

This is caused by breaking changes in prettier v3. Use the prettier_version option to pin the prettier version to 2.x.x.

Thanks! It works with Prettier 2.8.8, which was the last version before 3.0. Do you think this is an issue with prettier or the prettier-php plugin? I can try raising the issue at the appropriate place.

igitur commented 1 year ago

Run prettier v3 on your own source files first before looking to raise an issue elsewhere.

malteish commented 1 year ago

Pinning prettier at version 2.8.8 has solved my issues, which looked like this when prettyfying solidity:

Error:  No parser could be inferred for file "[...]".
rwrj commented 1 year ago

This worked for a while but now I'm getting the same error again even after pinning Prettier to version 2.8.

Does anyone have any workarounds or suggestions for fixing this?

igitur commented 1 year ago

@rwrj If your prettier plugins have been updated to support Prettier v3+, then you either have to pin them too, or unpin Prettier. In the end, make sure you know exactly which versions of Prettier and your plugins are running on this Github workflow and using those versions replicate the issue on your localhost. Then you'll know what to do.

rwrj commented 1 year ago

@igitur Yes, it's possible that the PHP plugin has been updated. I tried unpinning Prettier but that didn't work either. How can I pin the version of prettier/plugin-php to 0.19.7? This seems to be the last version working with prettier 2.x - https://github.com/prettier/plugin-php/releases/tag/v0.19.7

I'm sorry if this is a silly question but I can't figure out how to set the version of the plugin in the workflow config.

I've tried running this on my localhost and seem to be getting the same error but I'm not sure if I'm doing something else wrong there - I haven't worked much with node / npm before.

igitur commented 1 year ago

@rwrj Specify the plugin npm package in this format: example-package@1.2.3. To be honest, if you haven't used node / npm much before, you should upskill yourself on that first. ChatGPT is a great help.

rwrj commented 1 year ago

@igitur I got this set up and the Prettier PHP plugin is working fine on my local machine (Ubuntu 22.04 - which should be the same version being used in the GitHub Action) It's running Prettier v3.0.3 ChatGPT was a great suggestion, I was struggling getting things to work from the Prettier docs.

Any suggestions on how to proceed from here? Could this possible be an issue with the version of node being run? I see this warning on the GitHub Actions page with the failed run:- The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/

rwrj commented 1 year ago

Update: This error seems to be gone now when running on the latest version of Prettier, however it gives the error No parser could be inferred for file "/home/runner/work/.../*.php". for each PHP file.