47 Commits
v4.2 ... master

Author SHA1 Message Date
8c18391fdc Merge pull request #146 from creyD/dev
Minor Update
2025-06-09 23:54:26 +02:00
6b98d6d1d4 Merge branch 'master' into dev 2025-06-09 23:50:38 +02:00
afbe64738b Update README.md 2025-06-09 23:45:59 +02:00
Derek Ditch
6a7b2d092f Use npx to execute prettier (#145)
* fix: bumped version in readme

* Use npx to execute prettier

Fixes: https://github.com/creyD/prettier_action/issues/113

---------

Co-authored-by: Conrad <grosserconrad@gmail.com>
2025-06-09 23:43:18 +02:00
af8ff244c5 fix: #144 Moved to ID based noreply pattern 2025-05-09 14:39:25 +02:00
acebb0f4d5 fix: bumped version in readme 2025-05-08 13:33:09 +02:00
b185d84b38 fix: bumped version in readme 2025-05-08 13:32:56 +02:00
5e54c68940 Merge pull request #143 from creyD/dev
Fixed a bug with ONLY_CHANGED_PR and added ALLOW_OTHER_PLUGINS
2025-05-08 13:31:00 +02:00
ff6bab6030 fix: fixed a bug with INPUT_ONLY_CHANGED_PR 2025-05-08 13:28:44 +02:00
22eb028766 fix: updated docs for action 2025-05-08 13:26:14 +02:00
e2704493af feat: #98 added option to allow for other plugins 2025-05-08 13:20:52 +02:00
d7f059e30c Merge pull request #123 from creyD/dev
Different minor changes
2025-05-08 11:25:27 +02:00
b73c2bf29c fix: updated link 2025-05-08 11:14:35 +02:00
f24ab29247 fix: version bump for examples 2025-05-08 11:04:01 +02:00
9f54668ece fix: minor documentation cleanups 2025-05-08 10:32:44 +02:00
eeb940db6d fix: fixed codacy error 2025-05-08 10:24:50 +02:00
12efc36860 fix: codacy warning 2025-05-08 10:23:14 +02:00
John Jetmore
e53f331f48 Add only_changed_pr (#135)
* allow `only_changed` and `dry` to work together

Before this change, if you tried to use `dry` and `only_changed together, it acted as if `only_changed` was ignored.  There was no code specific to `only_changed` down the `dry` code path.

This commit’s solution is to run prettier on the entire code base (as was already being done) and then, before doing any comparisons, reset changes to files that were not modified in the last commit.

* add `only_changed_pr` option

This behaves similarly to only_changed, except instead of only considering files which were modified in the last commit, this option only considers files which were modified in any commit included in the current PR.
2025-05-08 10:18:46 +02:00
d5e6c388c3 added codacy badge 2024-11-24 17:19:57 +01:00
99914860a6 Merge pull request #133 from greenfiling/fix-empty-working_directory 2024-11-24 16:35:15 +01:00
John Jetmore
a3561a8976 set INPUT_WORKING_DIRECTORY if not already set 2024-01-29 12:32:01 -05:00
f32e6a975a Fixing bug #128 2024-01-10 12:43:00 +01:00
117a7a5b37 Updated Readme according to #132 2024-01-10 12:26:30 +01:00
5d0450c2bc Addede step summary in GitHub 2023-10-03 20:37:27 +02:00
57dc57f236 Added star history 2023-10-03 17:12:40 +02:00
Derek Brown
0fc0cf4723 feat: Allow overriding actor (#126)
Co-authored-by: Conrad <grosserconrad@gmail.com>
2023-08-21 21:05:34 +02:00
5b5cb513f1 Update action.yml 2023-07-20 20:55:18 +02:00
Federico M. Facca
4bd40fc486 Support not exiting the process in case of changes in dry mode (#122)
Co-authored-by: Conrad <grosserconrad@gmail.com>
2023-07-20 16:39:13 +02:00
Blake Dunson
9aba96f268 Allow amended commits to be empty (#119)
Co-authored-by: Conrad <grosserconrad@gmail.com>
2023-06-30 17:40:51 +02:00
Federico M. Facca
a1c90f8992 export push_options as env variable (#121)
Co-authored-by: Conrad <grosserconrad@gmail.com>
2023-06-30 17:23:25 +02:00
473978add9 Added default for working_directory 2023-05-24 11:05:21 +02:00
d04162ee72 Added default for prettier_version 2023-05-24 11:01:47 +02:00
9561a3f1e1 Merge pull request #118 from creyD/dev 2023-04-19 15:49:52 +02:00
4ccf35e06f Bumped version number in templates 2023-02-19 16:43:21 +01:00
31355f8eef Merge pull request #109 from creyD/dev 2023-02-19 16:38:13 +01:00
6fe86ce41d Added note for new npm 9 issue 2023-02-19 16:33:58 +01:00
a21409da47 Merge pull request #112 from tropictim/fix_path 2023-02-19 16:23:29 +01:00
Tim Talbert
191599deb6 Don't use the npm bin command to resolve the bin path 2023-02-17 17:24:11 -05:00
9436c53771 Added debug for prettier test result in the log 2023-01-23 14:16:43 +01:00
2826053f0c Added option clean_node_folder for #108 2023-01-23 12:56:23 +01:00
dc62bca389 Merge pull request #105 from creyD/dev
Minor Readme Updates
2023-01-10 22:47:52 +01:00
2e9c875edd Merge pull request #104 from AnimeAllstar/patch-1
Bumped actions/checkout to v3 in examples
2023-01-10 22:46:42 +01:00
Asad Dhorajiwala
2bf66dcd9f Bumped actions/checkout to v3 in examples
actions/checkout@v2 uses node12. GitHub gives a deprecation warning for this since node12 is out of support. actions/checkout@v3 uses node16 by default.

https://github.blog/changelog/2022-09-22-github-actions-all-actions-will-begin-running-on-node16-instead-of-node12
2023-01-10 13:45:18 -08:00
0eebd17ea5 Merge pull request #102 from JuanDa237/patch-1
Not Github Workflow Warnings
2022-12-22 09:17:34 +01:00
Juan David Gaviria Correa
360ac97374 #101 Update README.md
Use v3 as suggested here https://github.com/marketplace/actions/checkout
2022-12-21 20:09:05 -05:00
a18ea90a1c Merge pull request #99 from WesleyYue/patch-1
Add note that Prettier plugins must be wrapped in quotes
2022-12-01 13:51:13 +01:00
Wesley
30fe71e314 Update README.md 2022-11-30 15:34:05 -08:00
3 changed files with 143 additions and 74 deletions

View File

@@ -1,7 +1,7 @@
# GitHub Prettier Action # GitHub Prettier Action
[![CodeFactor](https://www.codefactor.io/repository/github/creyd/prettier_action/badge/master)](https://www.codefactor.io/repository/github/creyd/prettier_action/overview/master) [![CodeFactor](https://www.codefactor.io/repository/github/creyd/prettier_action/badge/master)](https://www.codefactor.io/repository/github/creyd/prettier_action/overview/master)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier) [![Codacy Badge](https://app.codacy.com/project/badge/Grade/ba5fa97677ee47e48efdc2e6f7493c49)](https://app.codacy.com/gh/creyD/prettier_action/dashboard?utm_source=gh&utm_medium=referral&utm_content=&utm_campaign=Badge_grade)
[![License MIT](https://img.shields.io/github/license/creyD/prettier_action)](https://github.com/creyD/prettier_action/blob/master/LICENSE) [![License MIT](https://img.shields.io/github/license/creyD/prettier_action)](https://github.com/creyD/prettier_action/blob/master/LICENSE)
[![Latest Release](https://img.shields.io/github/v/release/creyD/prettier_action)](https://github.com/creyD/prettier_action/releases) [![Latest Release](https://img.shields.io/github/v/release/creyD/prettier_action)](https://github.com/creyD/prettier_action/releases)
[![Contributors](https://img.shields.io/github/contributors-anon/creyD/prettier_action)](https://github.com/creyD/prettier_action/graphs/contributors) [![Contributors](https://img.shields.io/github/contributors-anon/creyD/prettier_action)](https://github.com/creyD/prettier_action/graphs/contributors)
@@ -16,8 +16,9 @@ A GitHub action for styling files with [prettier](https://prettier.io).
| Parameter | Required | Default | Description | | Parameter | Required | Default | Description |
| - | :-: | :-: | - | | - | :-: | :-: | - |
| dry | :x: | `false` | Runs the action in dry mode. Files wont get changed and the action fails if there are unprettified files. Recommended to use with prettier_options --check | | dry | :x: | `false` | Runs the action in dry mode. Files wont get changed and the action fails if there are unprettified files. Recommended to use with prettier_options --check |
| prettier_version | :x: | `false` | Specific prettier version (by default use latest) | | no_commit | :x: | `false` | Can be used to avoid committing the changes (useful when another workflow step commits after this one anyways; can be combined with dry mode) |
| working_directory | :x: | `false` | Specify a directory to cd into before installing prettier and running it, use relative file path to the repository root for example `app/` | | prettier_version | :x: | `latest` | Specific prettier version (by default use latest) |
| working_directory | :x: | `${{ github.action_path }}` | Specify a directory to cd into before installing prettier and running it, use relative file path to the repository root for example `app/` |
| prettier_options | :x: | `"--write **/*.js"` | Prettier options (by default it applies to the whole repository) | | prettier_options | :x: | `"--write **/*.js"` | Prettier options (by default it applies to the whole repository) |
| commit_options | :x: | - | Custom git commit options | | commit_options | :x: | - | Custom git commit options |
| push_options | :x: | - | Custom git push options | | push_options | :x: | - | Custom git push options |
@@ -25,9 +26,12 @@ A GitHub action for styling files with [prettier](https://prettier.io).
| commit_message | :x: | `"Prettified Code!"` | Custom git commit message, will be ignored if used with `same_commit` | | commit_message | :x: | `"Prettified Code!"` | Custom git commit message, will be ignored if used with `same_commit` |
| commit_description | :x: | - | Custom git extended commit message, will be ignored if used with `same_commit` | | commit_description | :x: | - | Custom git extended commit message, will be ignored if used with `same_commit` |
| file_pattern | :x: | `*` | Custom git add file pattern, can't be used with only_changed! | | file_pattern | :x: | `*` | Custom git add file pattern, can't be used with only_changed! |
| prettier_plugins | :x: | - | Install Prettier plugins, i.e. `@prettier/plugin-php @prettier/plugin-other` | | prettier_plugins | :x: | - | Install Prettier plugins, i.e. `"@prettier/plugin-php" "@prettier/plugin-other"`. Must be wrapped in quotes since @ is a reserved character in YAML. |
| clean_node_folder | :x: | `true` | Delete the node_modules folder before committing |
| only_changed | :x: | `false` | Only prettify changed files, can't be used with file_pattern! This command works only with the checkout action set to fetch depth '0' (see example 2)| | only_changed | :x: | `false` | Only prettify changed files, can't be used with file_pattern! This command works only with the checkout action set to fetch depth '0' (see example 2)|
| github_token | :x: | `${{ github.token }}` | The default [GITHUB_TOKEN](https://docs.github.com/en/actions/reference/authentication-in-a-workflow#about-the-github_token-secret) or a [Personal Access Token](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token) | github_token | :x: | `${{ github.token }}` | The default [GITHUB_TOKEN](https://docs.github.com/en/actions/reference/authentication-in-a-workflow#about-the-github_token-secret) or a [Personal Access Token](https://docs.github.com/en/github/authenticating-to-github/keeping-your-account-and-data-secure/creating-a-personal-access-token)
| git_identity | :x: | `actions` | Set to `author` to use author's user as committer. This allows triggering [further workflow runs](https://github.com/peter-evans/create-pull-request/blob/main/docs/concepts-guidelines.md#triggering-further-workflow-runs)
| allow_other_plugins | :x: | `false` | Allow other plugins to be installed (prevents the @prettier-XYZ regex check) |
> Note: using the same_commit option may lead to problems if other actions are relying on the commit being the same before and after the prettier action has ran. Keep this in mind. > Note: using the same_commit option may lead to problems if other actions are relying on the commit being the same before and after the prettier action has ran. Keep this in mind.
@@ -53,13 +57,10 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v4
with:
# Make sure the actual branch is checked out when running on pull requests
ref: ${{ github.head_ref }}
- name: Prettify code - name: Prettify code
uses: creyD/prettier_action@v4.2 uses: creyD/prettier_action@v4.6
with: with:
# This part is also where you can pass other options, for example: # This part is also where you can pass other options, for example:
prettier_options: --write **/*.{js,md} prettier_options: --write **/*.{js,md}
@@ -80,7 +81,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v4
with: with:
# Make sure the actual branch is checked out when running on pull requests # Make sure the actual branch is checked out when running on pull requests
ref: ${{ github.head_ref }} ref: ${{ github.head_ref }}
@@ -88,7 +89,7 @@ jobs:
fetch-depth: 0 fetch-depth: 0
- name: Prettify code - name: Prettify code
uses: creyD/prettier_action@v4.2 uses: creyD/prettier_action@v4.6
with: with:
# This part is also where you can pass other options, for example: # This part is also where you can pass other options, for example:
prettier_options: --write **/*.{js,md} prettier_options: --write **/*.{js,md}
@@ -110,7 +111,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
ref: ${{ github.head_ref }} ref: ${{ github.head_ref }}
@@ -118,7 +119,7 @@ jobs:
persist-credentials: false persist-credentials: false
- name: Prettify code - name: Prettify code
uses: creyD/prettier_action@v4.2 uses: creyD/prettier_action@v4.6
with: with:
prettier_options: --write **/*.{js,md} prettier_options: --write **/*.{js,md}
only_changed: True only_changed: True
@@ -141,7 +142,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v2 uses: actions/checkout@v4
with: with:
fetch-depth: 0 fetch-depth: 0
ref: ${{ github.head_ref }} ref: ${{ github.head_ref }}
@@ -149,7 +150,7 @@ jobs:
persist-credentials: false persist-credentials: false
- name: Prettify code - name: Prettify code
uses: creyD/prettier_action@v4.2 uses: creyD/prettier_action@v4.6
with: with:
dry: True dry: True
github_token: ${{ secrets.PERSONAL_GITHUB_TOKEN }} github_token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
@@ -160,3 +161,22 @@ More documentation for writing a workflow can be found [here](https://help.githu
## Issues ## Issues
Please report all bugs and feature request using the [GitHub issues function](https://github.com/creyD/prettier_action/issues/new). Thanks! Please report all bugs and feature request using the [GitHub issues function](https://github.com/creyD/prettier_action/issues/new). Thanks!
### Problem with NPM v9 (19.02.2023)
This issue was discussed in https://github.com/creyD/prettier_action/issues/113. The action until release 4 uses the npm bin command, which apparently doesn't work on npm v9. A fix is introduced with v4.3 of this action. If you need an older version of the action working it works until v3.3 and between v3.3 and v4.2 you could use the workaround described in https://github.com/creyD/prettier_action/issues/113 by adding the below to your workflow file:
```
- name: Install npm v8
run: npm i -g npm@8
```
## Star History
<a href="https://www.star-history.com/#creyD/prettier_action&Date">
<picture>
<source media="(prefers-color-scheme: dark)" srcset="https://api.star-history.com/svg?repos=creyD/prettier_action&type=Date&theme=dark" />
<source media="(prefers-color-scheme: light)" srcset="https://api.star-history.com/svg?repos=creyD/prettier_action&type=Date" />
<img alt="Star History Chart" src="https://api.star-history.com/svg?repos=creyD/prettier_action&type=Date" />
</picture>
</a>

View File

@@ -23,7 +23,7 @@ inputs:
description: Git push options description: Git push options
required: false required: false
file_pattern: file_pattern:
description: File pattern used for `git add`, can't be used with only_changed! description: File pattern used for `git add`, can't be used with only_changed or only_changed_pr!
required: false required: false
default: "*" default: "*"
prettier_options: prettier_options:
@@ -34,18 +34,26 @@ inputs:
description: Running the script in dry mode just shows whether there are files that should be prettified or not description: Running the script in dry mode just shows whether there are files that should be prettified or not
required: false required: false
default: false default: false
no_commit:
description: Can be used to avoid committing the changes (can be combined with dry mode, useful when another workflow steps commits after this commit anyways)
required: false
default: false
prettier_version: prettier_version:
description: Specific version of prettier (by default just use the latest version) description: Specific version of prettier (by default just use the latest version)
required: false required: false
default: false default: "latest"
working_directory: working_directory:
description: Specify a directory to cd into before installing prettier and running it description: Specify a directory to cd into before installing prettier and running it
required: false required: false
default: false default: ${{ github.action_path }}
only_changed: only_changed:
description: Only prettify files changed in the last commit, can't be used with file_pattern! description: Only prettify files changed in the last commit, can't be used with file_pattern!
required: false required: false
default: false default: false
only_changed_pr:
description: Only prettify files changed in the current PR. If specified with only_changed, only_changed will take precedent. Can't be used with file_pattern!
required: false
default: false
prettier_plugins: prettier_plugins:
description: Install Prettier plugins, i.e. `@prettier/plugin-php @prettier/plugin-other` description: Install Prettier plugins, i.e. `@prettier/plugin-php @prettier/plugin-other`
required: false required: false
@@ -54,6 +62,18 @@ inputs:
description: GitHub Token or PAT token used to authenticate against a repository description: GitHub Token or PAT token used to authenticate against a repository
required: false required: false
default: ${{ github.token }} default: ${{ github.token }}
clean_node_folder:
description: Remove the node_modules folder before committing changes
required: false
default: true
git_identity:
description: Which identity is used for git name/email when committing changes. Needs to be one of "actions" or "author".
required: false
default: "actions"
allow_other_plugins:
description: Allow other plugins to be installed. By default, we are checking if the plugins are actually prettier plugins.
required: false
default: false
runs: runs:
using: "composite" using: "composite"
@@ -61,21 +81,27 @@ runs:
- name: Prettify code! - name: Prettify code!
shell: bash shell: bash
run: >- run: >-
PATH=$(cd $GITHUB_ACTION_PATH; npm bin):$PATH PATH=$GITHUB_ACTION_PATH/node_modules/.bin:$PATH
${{ github.action_path }}/entrypoint.sh ${{ github.action_path }}/entrypoint.sh
env: env:
INPUT_COMMIT_MESSAGE: ${{ inputs.commit_message }} INPUT_COMMIT_MESSAGE: ${{ inputs.commit_message }}
INPUT_COMMIT_DESCRIPTION: ${{ inputs.commit_description }} INPUT_COMMIT_DESCRIPTION: ${{ inputs.commit_description }}
INPUT_SAME_COMMIT: ${{ inputs.same_commit }} INPUT_SAME_COMMIT: ${{ inputs.same_commit }}
INPUT_COMMIT_OPTIONS: ${{ inputs.commit_options }} INPUT_COMMIT_OPTIONS: ${{ inputs.commit_options }}
INPUT_PUSH_OPTIONS: ${{ inputs.push_options }}
INPUT_FILE_PATTERN: ${{ inputs.file_pattern }} INPUT_FILE_PATTERN: ${{ inputs.file_pattern }}
INPUT_PRETTIER_OPTIONS: ${{ inputs.prettier_options }} INPUT_PRETTIER_OPTIONS: ${{ inputs.prettier_options }}
INPUT_DRY: ${{ inputs.dry }} INPUT_DRY: ${{ inputs.dry }}
INPUT_NO_COMMIT: ${{ inputs.no_commit }}
INPUT_PRETTIER_VERSION: ${{ inputs.prettier_version }} INPUT_PRETTIER_VERSION: ${{ inputs.prettier_version }}
INPUT_ONLY_CHANGED: ${{ inputs.only_changed }} INPUT_ONLY_CHANGED: ${{ inputs.only_changed }}
INPUT_ONLY_CHANGED_PR: ${{ inputs.only_changed_pr }}
INPUT_PRETTIER_PLUGINS: ${{ inputs.prettier_plugins }} INPUT_PRETTIER_PLUGINS: ${{ inputs.prettier_plugins }}
INPUT_WORKING_DIRECTORY: ${{ inputs.working_directory }} INPUT_WORKING_DIRECTORY: ${{ inputs.working_directory }}
INPUT_GITHUB_TOKEN: ${{ inputs.github_token }} INPUT_GITHUB_TOKEN: ${{ inputs.github_token }}
INPUT_CLEAN_NODE_FOLDER: ${{ inputs.clean_node_folder }}
INPUT_GIT_IDENTITY: ${{ inputs.git_identity }}
INPUT_ALLOW_OTHER_PLUGINS: ${{ inputs.allow_other_plugins }}
branding: branding:
icon: "award" icon: "award"

View File

@@ -17,8 +17,17 @@ _git_setup ( ) {
EOF EOF
chmod 600 $HOME/.netrc chmod 600 $HOME/.netrc
git config --global user.email "actions@github.com" # If GIT_IDENTITY="actor"
git config --global user.name "GitHub Action" if [ "$INPUT_GIT_IDENTITY" = "author" ]; then
git config --global user.name "$GITHUB_ACTOR"
git config --global user.email "$GITHUB_ACTOR_ID+$GITHUB_ACTOR@users.noreply.github.com"
elif [ "$INPUT_GIT_IDENTITY" = "actions" ]; then
git config --global user.email "actions@github.com"
git config --global user.name "GitHub Action"
else
echo "GIT_IDENTITY must be either 'author' or 'actions'";
exit 1;
fi;
} }
# Checks if any files are changed # Checks if any files are changed
@@ -26,44 +35,30 @@ _git_changed() {
[[ -n "$(git status -s)" ]] [[ -n "$(git status -s)" ]]
} }
_git_changes() {
git diff
}
( (
# PROGRAM # PROGRAM
# Changing to the directory # Changing to the directory
cd "$GITHUB_ACTION_PATH" if [ -z "$INPUT_WORKING_DIRECTORY" ] ; then
INPUT_WORKING_DIRECTORY=$GITHUB_ACTION_PATH
fi
cd "$INPUT_WORKING_DIRECTORY"
echo "Installing prettier..." echo "Installing prettier..."
case $INPUT_WORKING_DIRECTORY in npm install --silent prettier@$INPUT_PRETTIER_VERSION
false)
;;
*)
cd $INPUT_WORKING_DIRECTORY
;;
esac
case $INPUT_PRETTIER_VERSION in
false)
npm install --silent prettier
;;
*)
npm install --silent prettier@$INPUT_PRETTIER_VERSION
;;
esac
# Install plugins # Install plugins
if [ -n "$INPUT_PRETTIER_PLUGINS" ]; then if [ -n "$INPUT_PRETTIER_PLUGINS" ]; then
for plugin in $INPUT_PRETTIER_PLUGINS; do if [ "$INPUT_ALLOW_OTHER_PLUGINS" != "true" ]; then
echo "Checking plugin: $plugin" for plugin in $INPUT_PRETTIER_PLUGINS; do
# check regex against @prettier/xyz echo "Checking plugin: $plugin"
if ! echo "$plugin" | grep -Eq '(@prettier\/plugin-|(@[a-z\-]+\/)?prettier-plugin-){1}([a-z\-]+)'; then # check regex against @prettier/xyz
echo "$plugin does not seem to be a valid @prettier/plugin-x plugin. Exiting." if ! echo "$plugin" | grep -Eq '(@prettier\/plugin-|(@[a-z\-]+\/)?prettier-plugin-){1}([a-z\-]+)'; then
exit 1 echo "$plugin does not seem to be a valid @prettier/plugin-x plugin. Exiting."
fi exit 1
done fi
done
fi
npm install --silent $INPUT_PRETTIER_PLUGINS npm install --silent $INPUT_PRETTIER_PLUGINS
fi fi
) )
@@ -71,53 +66,81 @@ fi
PRETTIER_RESULT=0 PRETTIER_RESULT=0
echo "Prettifying files..." echo "Prettifying files..."
echo "Files:" echo "Files:"
prettier $INPUT_PRETTIER_OPTIONS \ npx prettier $INPUT_PRETTIER_OPTIONS \
|| { PRETTIER_RESULT=$?; echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS"; exit 1; } || { PRETTIER_RESULT=$?; echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS"; exit 1; } >> $GITHUB_STEP_SUMMARY
# Ignore node modules and other action created files echo "Prettier result: $PRETTIER_RESULT"
if [ -d 'node_modules' ]; then
rm -r node_modules/ # Removing the node_modules folder, so it doesn't get committed if it is not added in gitignore
else if $INPUT_CLEAN_NODE_FOLDER; then
echo "No node_modules/ folder." echo "Deleting node_modules/ folder..."
if [ -d 'node_modules' ]; then
rm -r node_modules/
else
echo "No node_modules/ folder."
fi
fi fi
if [ -f 'package-lock.json' ]; then if [ -f 'package-lock.json' ]; then
git checkout -- package-lock.json git checkout -- package-lock.json || echo "No package-lock.json file tracked by git."
else else
echo "No package-lock.json file." echo "No package-lock.json file."
fi fi
# If running under only_changed, reset every modified file that wasn't also modified in the last commit
# This allows only_changed and dry to work together, and simplified the non-dry logic below
if [ $INPUT_ONLY_CHANGED = true ] || [ $INPUT_ONLY_CHANGED_PR = true ] ; then
BASE_BRANCH=origin/$GITHUB_BASE_REF
if $INPUT_ONLY_CHANGED; then
BASE_BRANCH=HEAD~1
fi
echo "Resetting changes, removing changes to files not changed since $BASE_BRANCH"
# list of all files changed in the previous commit
git diff --name-only HEAD $BASE_BRANCH > /tmp/prev.txt
# list of all files with outstanding changes
git diff --name-only HEAD > /tmp/cur.txt
OLDIFS="$IFS"
IFS=$'\n'
# get all files that are in prev.txt that aren't also in cur.txt
for file in $(comm -1 -3 /tmp/prev.txt /tmp/cur.txt)
do
echo "resetting: $file"
git restore -- "$file"
done
IFS="$OLDIFS"
fi
# To keep runtime good, just continue if something was changed # To keep runtime good, just continue if something was changed
if _git_changed; then if _git_changed; then
# case when --write is used with dry-run so if something is unpretty there will always have _git_changed # case when --write is used with dry-run so if something is unpretty there will always have _git_changed
if $INPUT_DRY; then if $INPUT_DRY; then
echo "Unpretty Files Changes:" echo "Unpretty Files Changes:"
_git_changes git diff
echo "Finishing dry-run. Exiting before committing." if $INPUT_NO_COMMIT; then
exit 1 echo "There are changes that won't be commited, you can use an external job to do so."
else
echo "Finishing dry-run. Exiting before committing."
exit 1
fi
else else
# Calling method to configure the git environemnt # Calling method to configure the git environemnt
_git_setup _git_setup
if $INPUT_ONLY_CHANGED; then # Add changes to git
# --diff-filter=d excludes deleted files git add "${INPUT_FILE_PATTERN}" || echo "Problem adding your files with pattern ${INPUT_FILE_PATTERN}"
OLDIFS="$IFS"
IFS=$'\n' if $INPUT_NO_COMMIT; then
for file in $(git diff --name-only --diff-filter=d HEAD^..HEAD) echo "There are changes that won't be commited, you can use an external job to do so."
do exit 0
git add "$file"
done
IFS="$OLDIFS"
else
# Add changes to git
git add "${INPUT_FILE_PATTERN}" || echo "Problem adding your files with pattern ${INPUT_FILE_PATTERN}"
fi fi
# Commit and push changes back # Commit and push changes back
if $INPUT_SAME_COMMIT; then if $INPUT_SAME_COMMIT; then
echo "Amending the current commit..." echo "Amending the current commit..."
git pull git pull
git commit --amend --no-edit git commit --amend --no-edit --allow-empty
git push origin -f git push origin -f
else else
if [ "$INPUT_COMMIT_DESCRIPTION" != "" ]; then if [ "$INPUT_COMMIT_DESCRIPTION" != "" ]; then