mirror of
https://github.com/creyD/prettier_action.git
synced 2026-04-13 03:40:31 +02:00
Compare commits
12 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c1711cdd30 | ||
|
|
bf5539213f | ||
| 6b98d6d1d4 | |||
| afbe64738b | |||
|
|
6a7b2d092f | ||
| af8ff244c5 | |||
| acebb0f4d5 | |||
| b185d84b38 | |||
| 5e54c68940 | |||
| ff6bab6030 | |||
| 22eb028766 | |||
| e2704493af |
32
README.md
32
README.md
@@ -14,23 +14,25 @@ A GitHub action for styling files with [prettier](https://prettier.io).
|
|||||||
### Parameters
|
### Parameters
|
||||||
|
|
||||||
| 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 |
|
||||||
| 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) |
|
| 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) |
|
||||||
| prettier_version | :x: | `latest` | Specific prettier version (by default use latest) |
|
| 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/` |
|
| 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 |
|
| add_options | :x: | - | Custom `git add` options, e.g. `--update` to only add already known files. |
|
||||||
|
| push_options | :x: | - | Custom `git push` options |
|
||||||
| same_commit | :x: | `false` | Update the current commit instead of creating a new one, created by [Joren Broekema](https://github.com/jorenbroekema), this command works only with the checkout action set to fetch depth '0' (see example 2) |
|
| same_commit | :x: | `false` | Update the current commit instead of creating a new one, created by [Joren Broekema](https://github.com/jorenbroekema), this command works only with the checkout action set to fetch depth '0' (see example 2) |
|
||||||
| 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"`. Must be wrapped in quotes since @ is a reserved character in YAML. |
|
| 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 |
|
| 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)
|
| 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.
|
||||||
|
|
||||||
@@ -56,10 +58,10 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
|
|
||||||
- name: Prettify code
|
- name: Prettify code
|
||||||
uses: creyD/prettier_action@v4.4
|
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 +82,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
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 +90,7 @@ jobs:
|
|||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
- name: Prettify code
|
- name: Prettify code
|
||||||
uses: creyD/prettier_action@v4.4
|
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 +112,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
ref: ${{ github.head_ref }}
|
ref: ${{ github.head_ref }}
|
||||||
@@ -118,7 +120,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Prettify code
|
- name: Prettify code
|
||||||
uses: creyD/prettier_action@v4.4
|
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 +143,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Checkout
|
- name: Checkout
|
||||||
uses: actions/checkout@v4
|
uses: actions/checkout@v5
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
ref: ${{ github.head_ref }}
|
ref: ${{ github.head_ref }}
|
||||||
@@ -149,7 +151,7 @@ jobs:
|
|||||||
persist-credentials: false
|
persist-credentials: false
|
||||||
|
|
||||||
- name: Prettify code
|
- name: Prettify code
|
||||||
uses: creyD/prettier_action@v4.4
|
uses: creyD/prettier_action@v4.6
|
||||||
with:
|
with:
|
||||||
dry: True
|
dry: True
|
||||||
github_token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
|
github_token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
|
||||||
|
|||||||
@@ -16,6 +16,9 @@ inputs:
|
|||||||
description: Update the current commit instead of creating a new one
|
description: Update the current commit instead of creating a new one
|
||||||
required: false
|
required: false
|
||||||
default: false
|
default: false
|
||||||
|
add_options:
|
||||||
|
description: Git add options
|
||||||
|
required: false
|
||||||
commit_options:
|
commit_options:
|
||||||
description: Commit options
|
description: Commit options
|
||||||
required: false
|
required: false
|
||||||
@@ -70,6 +73,10 @@ inputs:
|
|||||||
description: Which identity is used for git name/email when committing changes. Needs to be one of "actions" or "author".
|
description: Which identity is used for git name/email when committing changes. Needs to be one of "actions" or "author".
|
||||||
required: false
|
required: false
|
||||||
default: "actions"
|
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"
|
||||||
@@ -83,6 +90,7 @@ runs:
|
|||||||
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_ADD_OPTIONS: ${{ inputs.add_options }}
|
||||||
INPUT_COMMIT_OPTIONS: ${{ inputs.commit_options }}
|
INPUT_COMMIT_OPTIONS: ${{ inputs.commit_options }}
|
||||||
INPUT_PUSH_OPTIONS: ${{ inputs.push_options }}
|
INPUT_PUSH_OPTIONS: ${{ inputs.push_options }}
|
||||||
INPUT_FILE_PATTERN: ${{ inputs.file_pattern }}
|
INPUT_FILE_PATTERN: ${{ inputs.file_pattern }}
|
||||||
@@ -97,6 +105,7 @@ runs:
|
|||||||
INPUT_GITHUB_TOKEN: ${{ inputs.github_token }}
|
INPUT_GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||||
INPUT_CLEAN_NODE_FOLDER: ${{ inputs.clean_node_folder }}
|
INPUT_CLEAN_NODE_FOLDER: ${{ inputs.clean_node_folder }}
|
||||||
INPUT_GIT_IDENTITY: ${{ inputs.git_identity }}
|
INPUT_GIT_IDENTITY: ${{ inputs.git_identity }}
|
||||||
|
INPUT_ALLOW_OTHER_PLUGINS: ${{ inputs.allow_other_plugins }}
|
||||||
|
|
||||||
branding:
|
branding:
|
||||||
icon: "award"
|
icon: "award"
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ EOF
|
|||||||
# If GIT_IDENTITY="actor"
|
# If GIT_IDENTITY="actor"
|
||||||
if [ "$INPUT_GIT_IDENTITY" = "author" ]; then
|
if [ "$INPUT_GIT_IDENTITY" = "author" ]; then
|
||||||
git config --global user.name "$GITHUB_ACTOR"
|
git config --global user.name "$GITHUB_ACTOR"
|
||||||
git config --global user.email "$GITHUB_ACTOR@users.noreply.github.com"
|
git config --global user.email "$GITHUB_ACTOR_ID+$GITHUB_ACTOR@users.noreply.github.com"
|
||||||
elif [ "$INPUT_GIT_IDENTITY" = "actions" ]; then
|
elif [ "$INPUT_GIT_IDENTITY" = "actions" ]; then
|
||||||
git config --global user.email "actions@github.com"
|
git config --global user.email "actions@github.com"
|
||||||
git config --global user.name "GitHub Action"
|
git config --global user.name "GitHub Action"
|
||||||
@@ -49,6 +49,7 @@ npm install --silent prettier@$INPUT_PRETTIER_VERSION
|
|||||||
|
|
||||||
# Install plugins
|
# Install plugins
|
||||||
if [ -n "$INPUT_PRETTIER_PLUGINS" ]; then
|
if [ -n "$INPUT_PRETTIER_PLUGINS" ]; then
|
||||||
|
if [ "$INPUT_ALLOW_OTHER_PLUGINS" != "true" ]; then
|
||||||
for plugin in $INPUT_PRETTIER_PLUGINS; do
|
for plugin in $INPUT_PRETTIER_PLUGINS; do
|
||||||
echo "Checking plugin: $plugin"
|
echo "Checking plugin: $plugin"
|
||||||
# check regex against @prettier/xyz
|
# check regex against @prettier/xyz
|
||||||
@@ -57,6 +58,7 @@ if [ -n "$INPUT_PRETTIER_PLUGINS" ]; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
fi
|
||||||
npm install --silent $INPUT_PRETTIER_PLUGINS
|
npm install --silent $INPUT_PRETTIER_PLUGINS
|
||||||
fi
|
fi
|
||||||
)
|
)
|
||||||
@@ -64,7 +66,7 @@ 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; } >> $GITHUB_STEP_SUMMARY
|
|| { PRETTIER_RESULT=$?; echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS"; exit 1; } >> $GITHUB_STEP_SUMMARY
|
||||||
|
|
||||||
echo "Prettier result: $PRETTIER_RESULT"
|
echo "Prettier result: $PRETTIER_RESULT"
|
||||||
@@ -123,11 +125,11 @@ if _git_changed; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
# Calling method to configure the git environemnt
|
# Calling method to configure the git environment
|
||||||
_git_setup
|
_git_setup
|
||||||
|
|
||||||
# Add changes to git
|
# Add changes to git
|
||||||
git add "${INPUT_FILE_PATTERN}" || echo "Problem adding your files with pattern ${INPUT_FILE_PATTERN}"
|
git add ${INPUT_ADD_OPTIONS:+"$INPUT_ADD_OPTIONS"} "${INPUT_FILE_PATTERN}" || echo -e "Problem adding your files via 'git add':\n flags: ${INPUT_ADD_OPTIONS:+"$INPUT_ADD_OPTIONS"}\n pattern: ${INPUT_FILE_PATTERN}"
|
||||||
|
|
||||||
if $INPUT_NO_COMMIT; then
|
if $INPUT_NO_COMMIT; then
|
||||||
echo "There are changes that won't be commited, you can use an external job to do so."
|
echo "There are changes that won't be commited, you can use an external job to do so."
|
||||||
|
|||||||
Reference in New Issue
Block a user