mirror of
https://github.com/creyD/prettier_action.git
synced 2026-04-13 03:40:31 +02:00
Compare commits
34 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 31355f8eef | |||
| 6fe86ce41d | |||
| a21409da47 | |||
|
|
191599deb6 | ||
| 9436c53771 | |||
| 2826053f0c | |||
| dc62bca389 | |||
| 2e9c875edd | |||
|
|
2bf66dcd9f | ||
| 0eebd17ea5 | |||
|
|
360ac97374 | ||
| a18ea90a1c | |||
|
|
30fe71e314 | ||
| 6602189cf8 | |||
| 0bf5ce065a | |||
| ac20e98371 | |||
| 607ddfdc57 | |||
|
|
9dff813935 | ||
| 058125065f | |||
|
|
8a16fc9688 | ||
| 661230a857 | |||
| 49aca57540 | |||
| eafd91e372 | |||
|
|
13fd7a03b4 | ||
| b8440d072c | |||
|
|
89919dc836 | ||
| b305fc89f5 | |||
| 26c4892179 | |||
| 86625cc217 | |||
| fdbbee3567 | |||
| f9f10e0719 | |||
| 2b5c9a8de1 | |||
|
|
f44961013c | ||
|
|
a9474e2eb8 |
8
.github/ISSUE_TEMPLATE/bug_report.md
vendored
8
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -3,12 +3,12 @@ name: Bug report
|
||||
about: Report a problem!
|
||||
title: "[BUG]"
|
||||
labels: bug
|
||||
assignees: ''
|
||||
|
||||
assignees: ""
|
||||
---
|
||||
|
||||
**What exactly happened?**
|
||||
Steps to reproduce the behavior:
|
||||
|
||||
1. Go to '...'
|
||||
2. Click on '....'
|
||||
3. Scroll down to '....'
|
||||
@@ -21,8 +21,8 @@ A clear and concise description of what you expected to happen.
|
||||
If applicable, add screenshots to help explain your problem.
|
||||
|
||||
**Where did you encounter the problem?**
|
||||
- OS: [e.g. iOS]
|
||||
|
||||
- Repo: [e.g. URL to your repository]
|
||||
- Version [e.g. 22]
|
||||
- Version [e.g. 22]
|
||||
|
||||
<!-- If you think you can help us with that, please note it here! -->
|
||||
|
||||
5
.github/ISSUE_TEMPLATE/feature_request.md
vendored
5
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -3,12 +3,11 @@ name: Feature request
|
||||
about: Request a feature!
|
||||
title: "[FEATURE]"
|
||||
labels: enhancement
|
||||
assignees: ''
|
||||
|
||||
assignees: ""
|
||||
---
|
||||
|
||||
**What would you like to change about the program?**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
A clear and concise description of what the problem is.
|
||||
|
||||
**Why do you think this is a cool idea?**
|
||||
A clear and concise description of why your feature would improve the program.
|
||||
|
||||
118
README.md
118
README.md
@@ -7,7 +7,6 @@
|
||||
[](https://github.com/creyD/prettier_action/graphs/contributors)
|
||||
[](https://github.com/creyD/prettier_action/issues)
|
||||
|
||||
|
||||
A GitHub action for styling files with [prettier](https://prettier.io).
|
||||
|
||||
## Usage
|
||||
@@ -26,7 +25,8 @@ 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_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! |
|
||||
| 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)|
|
||||
| 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)
|
||||
|
||||
@@ -35,7 +35,9 @@ A GitHub action for styling files with [prettier](https://prettier.io).
|
||||
### Example Config
|
||||
|
||||
> Hint: if you still use the old naming convention or generally a different branch name, please replace the `main` in the following configurations.
|
||||
|
||||
#### Example 1 (run on push in branch main)
|
||||
|
||||
```yaml
|
||||
name: Continuous Integration
|
||||
|
||||
@@ -44,27 +46,28 @@ on:
|
||||
pull_request:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- main
|
||||
|
||||
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 }}
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
# Make sure the actual branch is checked out when running on pull requests
|
||||
ref: ${{ github.head_ref }}
|
||||
|
||||
- name: Prettify code
|
||||
uses: creyD/prettier_action@v4.1
|
||||
with:
|
||||
# This part is also where you can pass other options, for example:
|
||||
prettier_options: --write **/*.{js,md}
|
||||
- name: Prettify code
|
||||
uses: creyD/prettier_action@v4.2
|
||||
with:
|
||||
# This part is also where you can pass other options, for example:
|
||||
prettier_options: --write **/*.{js,md}
|
||||
```
|
||||
|
||||
#### Example 2 (using the only_changed or same_commit option on PR)
|
||||
|
||||
```yaml
|
||||
name: Continuous Integration
|
||||
|
||||
@@ -77,23 +80,24 @@ jobs:
|
||||
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: Checkout
|
||||
uses: actions/checkout@v3
|
||||
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.1
|
||||
with:
|
||||
# This part is also where you can pass other options, for example:
|
||||
prettier_options: --write **/*.{js,md}
|
||||
only_changed: True
|
||||
- name: Prettify code
|
||||
uses: creyD/prettier_action@v4.2
|
||||
with:
|
||||
# This part is also where you can pass other options, for example:
|
||||
prettier_options: --write **/*.{js,md}
|
||||
only_changed: True
|
||||
```
|
||||
|
||||
#### Example 3 (using a custom access token on PR)
|
||||
|
||||
```yaml
|
||||
name: Continuous Integration
|
||||
|
||||
@@ -106,24 +110,25 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ github.head_ref }}
|
||||
# Make sure the value of GITHUB_TOKEN will not be persisted in repo's config
|
||||
persist-credentials: false
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ github.head_ref }}
|
||||
# Make sure the value of GITHUB_TOKEN will not be persisted in repo's config
|
||||
persist-credentials: false
|
||||
|
||||
- name: Prettify code
|
||||
uses: creyD/prettier_action@v4.1
|
||||
with:
|
||||
prettier_options: --write **/*.{js,md}
|
||||
only_changed: True
|
||||
# Set your custom token
|
||||
github_token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
|
||||
- name: Prettify code
|
||||
uses: creyD/prettier_action@v4.2
|
||||
with:
|
||||
prettier_options: --write **/*.{js,md}
|
||||
only_changed: True
|
||||
# Set your custom token
|
||||
github_token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
|
||||
```
|
||||
|
||||
#### Example 4 (dry run)
|
||||
|
||||
```yaml
|
||||
name: Continuous Integration
|
||||
|
||||
@@ -136,19 +141,19 @@ jobs:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ github.head_ref }}
|
||||
# Make sure the value of GITHUB_TOKEN will not be persisted in repo's config
|
||||
persist-credentials: false
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 0
|
||||
ref: ${{ github.head_ref }}
|
||||
# Make sure the value of GITHUB_TOKEN will not be persisted in repo's config
|
||||
persist-credentials: false
|
||||
|
||||
- name: Prettify code
|
||||
uses: creyD/prettier_action@v4.1
|
||||
with:
|
||||
dry: True
|
||||
github_token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
|
||||
- name: Prettify code
|
||||
uses: creyD/prettier_action@v4.2
|
||||
with:
|
||||
dry: True
|
||||
github_token: ${{ secrets.PERSONAL_GITHUB_TOKEN }}
|
||||
```
|
||||
|
||||
More documentation for writing a workflow can be found [here](https://help.github.com/en/actions/automating-your-workflow-with-github-actions/workflow-syntax-for-github-actions).
|
||||
@@ -156,3 +161,12 @@ More documentation for writing a workflow can be found [here](https://help.githu
|
||||
## Issues
|
||||
|
||||
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.2 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
|
||||
```
|
||||
|
||||
@@ -54,6 +54,10 @@ inputs:
|
||||
description: GitHub Token or PAT token used to authenticate against a repository
|
||||
required: false
|
||||
default: ${{ github.token }}
|
||||
clean_node_folder:
|
||||
description: Remove the node_modules folder before committing changes
|
||||
required: false
|
||||
default: true
|
||||
|
||||
runs:
|
||||
using: "composite"
|
||||
@@ -61,7 +65,7 @@ runs:
|
||||
- name: Prettify code!
|
||||
shell: bash
|
||||
run: >-
|
||||
PATH=$(cd $GITHUB_ACTION_PATH; npm bin):$PATH
|
||||
PATH=$GITHUB_ACTION_PATH/node_modules/.bin:$PATH
|
||||
${{ github.action_path }}/entrypoint.sh
|
||||
env:
|
||||
INPUT_COMMIT_MESSAGE: ${{ inputs.commit_message }}
|
||||
@@ -76,6 +80,7 @@ runs:
|
||||
INPUT_PRETTIER_PLUGINS: ${{ inputs.prettier_plugins }}
|
||||
INPUT_WORKING_DIRECTORY: ${{ inputs.working_directory }}
|
||||
INPUT_GITHUB_TOKEN: ${{ inputs.github_token }}
|
||||
INPUT_CLEAN_NODE_FOLDER: ${{ inputs.clean_node_folder }}
|
||||
|
||||
branding:
|
||||
icon: "award"
|
||||
|
||||
@@ -59,12 +59,12 @@ if [ -n "$INPUT_PRETTIER_PLUGINS" ]; then
|
||||
for plugin in $INPUT_PRETTIER_PLUGINS; do
|
||||
echo "Checking plugin: $plugin"
|
||||
# check regex against @prettier/xyz
|
||||
if ! echo "$plugin" | grep -Eq '(@prettier\/)+(plugin-[a-z\-]+)'; then
|
||||
if ! echo "$plugin" | grep -Eq '(@prettier\/plugin-|(@[a-z\-]+\/)?prettier-plugin-){1}([a-z\-]+)'; then
|
||||
echo "$plugin does not seem to be a valid @prettier/plugin-x plugin. Exiting."
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
npm install --silent --global $INPUT_PRETTIER_PLUGINS
|
||||
npm install --silent $INPUT_PRETTIER_PLUGINS
|
||||
fi
|
||||
)
|
||||
|
||||
@@ -74,11 +74,16 @@ echo "Files:"
|
||||
prettier $INPUT_PRETTIER_OPTIONS \
|
||||
|| { PRETTIER_RESULT=$?; echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS"; exit 1; }
|
||||
|
||||
# Ignore node modules and other action created files
|
||||
if [ -d 'node_modules' ]; then
|
||||
rm -r node_modules/
|
||||
else
|
||||
echo "No node_modules/ folder."
|
||||
echo "Prettier result: $PRETTIER_RESULT"
|
||||
|
||||
# Removing the node_modules folder, so it doesn't get committed if it is not added in gitignore
|
||||
if $INPUT_CLEAN_NODE_FOLDER; then
|
||||
echo "Deleting node_modules/ folder..."
|
||||
if [ -d 'node_modules' ]; then
|
||||
rm -r node_modules/
|
||||
else
|
||||
echo "No node_modules/ folder."
|
||||
fi
|
||||
fi
|
||||
|
||||
if [ -f 'package-lock.json' ]; then
|
||||
@@ -120,7 +125,11 @@ if _git_changed; then
|
||||
git commit --amend --no-edit
|
||||
git push origin -f
|
||||
else
|
||||
git commit -m "$INPUT_COMMIT_MESSAGE" if [ "$INPUT_COMMIT_DESCRIPTION" != "" ]; then echo '-m "$INPUT_COMMIT_DESCRIPTION"' fi --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"} || echo "No files added to commit"
|
||||
if [ "$INPUT_COMMIT_DESCRIPTION" != "" ]; then
|
||||
git commit -m "$INPUT_COMMIT_MESSAGE" -m "$INPUT_COMMIT_DESCRIPTION" --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"} || echo "No files added to commit"
|
||||
else
|
||||
git commit -m "$INPUT_COMMIT_MESSAGE" --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"} || echo "No files added to commit"
|
||||
fi
|
||||
git push origin ${INPUT_PUSH_OPTIONS:-}
|
||||
fi
|
||||
echo "Changes pushed successfully."
|
||||
|
||||
Reference in New Issue
Block a user