145 Commits
v3.0 ... v4.1.1

Author SHA1 Message Date
b305fc89f5 Merge pull request #76 from creyD/dev
Bugfix for #74
2021-12-06 12:26:52 +01:00
26c4892179 Fixed a bug with missing " 2021-12-06 12:22:36 +01:00
86625cc217 Merged the input commit description if statement 2021-12-06 12:18:46 +01:00
fdbbee3567 Bugfix for the commit description 2021-12-06 12:15:24 +01:00
f9f10e0719 Added spacing for commit description 2021-12-06 12:11:52 +01:00
2b5c9a8de1 Merge pull request #75 from insyri/dev
Fix for #74
2021-12-06 12:02:31 +01:00
insyri
f44961013c Variable assignment fix, issued via CodeFactor 2021-12-04 18:58:13 -05:00
insyri
a9474e2eb8 Corrected if/else for INPUT_COMMIT_DESCRIPTION. 2021-12-04 18:46:31 -05:00
dbdc55734e Merge pull request #73 from creyD/dev
v4.1 Deployment
2021-11-30 18:42:58 +01:00
9accc7b9f5 Added further context for the working_directory 2021-11-30 18:03:30 +01:00
41bf601bb6 Merge pull request #71 from sksat/handle-space-in-fname
handle space in file name
2021-11-30 17:58:28 +01:00
fabe625ef2 Bumped versions 2021-11-30 17:52:15 +01:00
b072432b6b Added slight explanation to the readme 2021-11-30 17:22:11 +01:00
aecd8574c0 Merge pull request #65 from JLHasson/patch-1
Use 'main' instead of 'master' for examples
2021-11-30 17:20:12 +01:00
8efb5a885e Added working_directory parameter 2021-11-30 17:18:31 +01:00
sksat
b90e27731a fix: handle space in changed file name 2021-11-24 00:30:10 +09:00
b1dc9cd3b3 Merge pull request #67 from AndyA/master
Don't delete package-lock.json
2021-10-31 15:06:10 +01:00
61783f508e Merge pull request #69 from insyri/master
Commit Description Option
2021-10-22 17:55:05 +02:00
insyri
902197aeb2 typo fix in README 2021-10-22 09:04:15 -04:00
insyri
39357d386a added $INPUT_COMMIT_DESCRIPTION to entrypoint.sh
im unfamiliar with shell so this is what i did with some research, the inline if statement is just a personal design/formatting choice.
2021-10-22 09:03:21 -04:00
insyri
6296a68dfd added commit-description as option to action.yml 2021-10-22 08:52:00 -04:00
insyri
23135339e3 added commit-description as option in README 2021-10-22 08:49:41 -04:00
Andy Armstrong
a6d8de1638 Don't delete package-lock.json 2021-10-19 13:42:28 +01:00
Lance Hasson
762be84685 use 'main' instead of 'master' for examples 2021-09-21 09:17:32 -07:00
0b655e298c Merge pull request #48 from creyD/dev
Major Update 4.0
2021-09-07 17:54:54 +02:00
9ff7c1dce3 Added new version 2021-09-07 17:49:12 +02:00
c392c4f7c2 Merge pull request #57 from hpedrorodrigues/main
Small fixes for branch dev
2021-09-07 17:39:06 +02:00
67f2a40bcd Added dry run example 2021-09-07 17:36:14 +02:00
Pedro Rodrigues
6c9f8f188e Displaying prettier error when a glob doesn't match any files 2021-06-21 23:05:35 -03:00
Pedro Rodrigues
8002e3525b Making variable INPUT_PUSH_OPTIONS not required 2021-06-21 23:04:49 -03:00
Pedro Rodrigues
c97500dd80 Checking if generated files exist before trying to delete them 2021-06-21 23:03:58 -03:00
Pedro Rodrigues
aeab4259d8 Adding missing environment variable INPUT_GITHUB_TOKEN 2021-06-21 23:00:56 -03:00
a9bef1b515 Merge pull request #56 from hpedrorodrigues/override-token
Add support to override the default github token
2021-06-17 00:22:12 +02:00
654f901ff9 Merge branch 'dev' into override-token 2021-06-17 00:21:33 +02:00
Pedro Rodrigues
4f318753d5 Add support to override the default github token 2021-06-16 19:08:28 -03:00
ba482bbb2a Merge pull request #49 from fsz-codeshop/issue-37-dry-run-reporting-unpretty
Fixes Issues from PR #46 (37 [BUG] Dry run reporting unpretty files when all files match styles)
2021-05-21 09:48:38 +02:00
426f319c74 Merge branch 'dev' into issue-37-dry-run-reporting-unpretty 2021-05-21 09:48:29 +02:00
bb9aa745eb Merge pull request #53 from stevelacy/master
Add input git push options
2021-05-21 09:46:51 +02:00
Steve Lacy
707db76837 Add input git push options 2021-05-20 09:39:31 -10:00
7040c46162 Merge pull request #51 from fschoenfeldt/patch-1
Update README.md
2021-05-11 10:38:56 +02:00
Frederik Schönfeldt
672408b1db Update README.md
Use latest action version in example :-)
2021-05-10 18:01:39 +02:00
Fabricio Sander
634a3d2075 fix: changes the logic to handle dry-run with --write option and corrects the logic as it will never have changes on dry-run 2021-04-13 16:34:40 -03:00
d9d644ab69 Merge pull request #44 from suda/master
Allow unofficial plugins
2021-04-10 16:14:00 +02:00
0b7e2710f2 Merge branch 'dev' into master 2021-04-10 16:13:21 +02:00
fd9337d75f Merge pull request #46 from fsz-codeshop/issue-37-dry-run-reporting-unpretty
Fixes Issue #37 [BUG] Dry run reporting unpretty files when all files match styles
2021-04-10 16:10:33 +02:00
Fabricio Sander
c2e2730594 fix: fixes codefactor recommendation 2021-03-25 21:56:57 -03:00
Fabricio Sander
2069f26b6e other: improves the log output by not having and out of range message 2021-03-25 21:36:51 -03:00
Fabricio Sander
5b4a6a0183 docs: note about using --check on options to help in dry running 2021-03-25 21:34:44 -03:00
Fabricio Sander
3d912f60d1 fix: added variable declaration 2021-03-25 21:28:17 -03:00
Fabricio Sander
67234beef0 other: testing approach with multiple commands on fail 2021-03-25 21:21:06 -03:00
Fabricio Sander
2602a7aad8 other: testing approach using pipefail 2021-03-25 21:10:04 -03:00
Fabricio Sander
341259c9e6 other: testing another approach to handle both cases 2021-03-25 20:59:41 -03:00
Fabricio Sander
70f47fbe7e fix: fixes handling of bad case where there are unpretty files and command output is not 0 2021-03-25 20:50:30 -03:00
Fabricio Sander
217be60a6a fix: removes code block added by mistake from dev branch 2021-03-25 20:22:03 -03:00
Fabricio Sander
0e4ccc84cf style: fixes log message 2021-03-25 20:13:05 -03:00
Fabricio Sander
b40e4ba1c8 fix(issue-37): adds logic to handle prettier cmd output to shell dry-run exit 2021-03-25 20:11:57 -03:00
87e1553a82 Merge pull request #40 from jsoref/glob
Handle bash globs
2021-03-01 22:57:32 +01:00
bc1e95cc30 Adjusted the prettier_plugins variable to documentation 2021-03-01 15:20:54 +01:00
53d0f90f4e Update README.md 2021-03-01 15:18:08 +01:00
6438b32926 Merge pull request #45 from infotexture/fix/plugin-syntax
Fix plugin name syntax in README & description
2021-03-01 14:58:03 +01:00
Roger Sheen
6c3c102255 Fix plugin name syntax in README & description
The entrypoint script checks for correctly named Prettier plugins on [lines 44–45](https://github.com/creyD/prettier_action/blob/master/entrypoint.sh#L44-L45), but the description in the config file and README are not consistent.

This updates those references to clarify how plugins should be specified.
2021-03-01 00:25:35 +01:00
Wojtek Siudzinski
e81db121ba Allow unofficial plugins 2021-02-28 11:16:39 +01:00
Josh Soref
d48a703bcd Handle bash globs
The previous system relied on a different shell's magic for handling `*` / `**`

nullglob
- If set, Bash allows filename patterns which match no files to expand to a null string, rather than themselves.

globstar
- If set, the pattern ‘**’ used in a filename expansion context will match all files and zero or more directories and subdirectories. If the pattern is followed by a ‘/’, only directories and subdirectories match.
2021-02-19 14:56:06 -05:00
a0331d2149 Merge pull request #39 from creyD/dev_composite
Moved the action to composite
2021-02-19 20:47:50 +01:00
b81496839a Adjusted exception message and finalized changes 2021-02-19 19:18:23 +01:00
1f62e028b6 Added exceptions to improve stability 2021-02-19 19:16:25 +01:00
5e56c64388 Another try at bugfixing the ignore mechanism 2021-02-19 19:13:29 +01:00
7d4939bf14 Another try at bugfixing the ignore mechanism 2021-02-19 19:09:45 +01:00
19d31cb263 Another try at bugfixing the ignore mechanism 2021-02-19 19:07:12 +01:00
c9d8181bcf Moved ignore part to before git checks changed 2021-02-19 19:04:18 +01:00
f4e4fcde26 Added .gitignore to exclusion - for real II 2021-02-19 18:56:55 +01:00
1a89f28d0f Added .gitignore to exclusion - for real 2021-02-19 18:54:40 +01:00
172c413f01 Added .gitignore exclusion 2021-02-19 18:51:11 +01:00
9acb5d89b9 Still debugging ignoring 2021-02-19 18:47:01 +01:00
77af303189 Bugfixing ignore mechanism 2021-02-19 18:44:35 +01:00
5564e3ef42 Updating ignore mechanism 2 2021-02-19 18:41:32 +01:00
c5dd36440f Updating the ignore mechanism 2021-02-19 18:40:27 +01:00
3b82dd7e95 Fixed missing command 2021-02-19 18:36:38 +01:00
01e9c566d8 Trying to exclude the useless package files 2021-02-19 18:31:20 +01:00
35d0d93afd Removed global parameter 2021-02-19 18:19:17 +01:00
857bc257e2 Added missing bracket 2021-02-19 18:15:37 +01:00
4d25f0bd7c Moving the path to the run part of the yml 2021-02-19 18:13:22 +01:00
5c365ab3fa Another bugfix attempt trying to generate the global flag only if needed 2021-02-19 18:10:42 +01:00
b5409d48a9 Removed global option for testing 2021-02-19 18:02:12 +01:00
5f9fa33c3d Fixed variable problem 2021-02-19 17:58:30 +01:00
3aa6d7608d Added testing variable 2021-02-19 17:54:00 +01:00
8a68c5b4d3 Experimenting with a simpler form of composite actions 2021-02-19 17:45:52 +01:00
45863b1eb1 Merge pull request #38 from jsoref/composite
Composite
2021-02-19 17:35:23 +01:00
Josh Soref
7326fa4da4 Switch to composite 2021-02-19 00:49:40 -05:00
Josh Soref
e338a630e6 Tag entrypoint as a bash script
This script uses bashisms
2021-02-19 00:49:16 -05:00
cb975d8aad Merge pull request #36 from creyD/dev
New prettier-plugin feature
2021-01-10 21:38:08 +01:00
acf2e1f70b Added new plugin feature to documentation 2021-01-10 21:37:50 +01:00
ad03b42b19 Merge pull request #34 from sebastianks/feature-add-plugins
Feature add plugins
2021-01-10 21:07:23 +01:00
a20371f2d2 Slightly adjusted the printed messages 2021-01-10 21:04:03 +01:00
Sebastian Kolind Sørensen
2b4b2c18e7 Merge pull request #5 from sebastianks/master
Add regex check of plugin names
2021-01-10 17:55:52 +01:00
Sebastian Kolind Sørensen
8d84d9c9f2 Merge branch 'feature-add-plugins' into master 2021-01-10 17:55:45 +01:00
Sebastian Kolind Sørensen
c0b1f6f05a Merge pull request #4 from sebastianks/check-plugin-name
Change to sh regex
2021-01-10 17:50:44 +01:00
Sebastian K. Sorensen
bb1392436f Change to sh regex 2021-01-10 17:49:20 +01:00
Sebastian Kolind Sørensen
d8e72fc127 Merge pull request #3 from sebastianks/check-plugin-name
Fix regex issue
2021-01-10 17:41:59 +01:00
Sebastian K. Sorensen
75b0a4fda5 Fix regex issue 2021-01-10 17:40:38 +01:00
Sebastian Kolind Sørensen
bb1dafe218 Merge pull request #2 from sebastianks/check-plugin-name
Fix issue with if statement
2021-01-10 16:43:23 +01:00
Sebastian K. Sorensen
33b1eff486 Fix issue with if statement 2021-01-10 16:41:47 +01:00
Sebastian Kolind Sørensen
72b033eda5 Merge pull request #1 from sebastianks/check-plugin-name
Attempt of checking plugin name with regex
2021-01-10 16:38:50 +01:00
Sebastian K. Sorensen
656daa9f97 Attempt of checking plugin name with regex 2021-01-10 16:07:31 +01:00
Sebastian K. Sorensen
1015fa1aaf Use quotes when using [ 2021-01-10 15:57:48 +01:00
Sebastian K. Sorensen
0faaf9bad1 Use POSIX brackets instead 2021-01-10 15:57:13 +01:00
Sebastian K. Sorensen
a35b5cc1cb Change default to empty string instead 2021-01-10 15:50:05 +01:00
Sebastian K. Sorensen
b7cf1dc4c2 Change action name to regular one 2021-01-10 15:32:37 +01:00
Sebastian K. Sorensen
f852cea42f Change check of variable 2021-01-10 14:52:20 +01:00
Sebastian K. Sorensen
7ea4328121 Adds a unique name to action 2021-01-10 14:35:53 +01:00
Sebastian K. Sorensen
193559158f Attempt to add prettier_plugins 2021-01-10 14:22:14 +01:00
34cc6fde0a Merge pull request #33 from spawnia/patch-1
Remove branch parameter from docs
2021-01-07 07:55:13 +01:00
Benedikt Franke
03caf85843 Remove branch parameter from docs 2021-01-07 00:56:18 +01:00
bb361e2979 Merge pull request #32 from J-Fields/exclude-deleted-files
Exclude deleted files when using `only_changed`
2020-12-17 17:03:39 +01:00
Jason Fields
ce4e1eba94 Exclude deleted files when using only_changed
Fixes #31
2020-11-20 17:20:46 -05:00
b0b067ff52 Fixed typo in README 2020-11-11 10:33:48 +01:00
269c9b08c9 Merge pull request #30 from stemount/patch-1
Bump version of README to `prettier_action@v3.1`
2020-11-10 20:34:58 +01:00
Stephen Mount
6f7d0221d4 Bump version of README to prettier_action@v3.1 2020-11-10 12:51:38 +00:00
394fa2de3b Merge pull request #29 from creyD/dev
Update for 3.1 release
2020-10-23 11:02:55 +02:00
de263be475 Merge pull request #28 from Hans5958/patch-1
Unified formatting on readme table
2020-10-23 10:57:42 +02:00
Hans5958
cafb23058e Proper formatting on parameter table 2020-10-23 10:39:25 +07:00
cf1aa3d38d Merge pull request #23 from creyD/dev
Added only_changed and update_commit features
2020-10-19 16:33:50 +02:00
173a5890f7 Improved documentation for latest release 2020-10-18 19:15:33 +02:00
fc18abc0ba Merge pull request #27 from jorenbroekema/fix/commit
fix: add commit and push logic after git add logic
2020-10-18 15:10:33 +02:00
jorenbroekema
30127fcc3c fix: add commit and push logic after git add logic 2020-10-18 14:26:33 +02:00
e0055a4878 Merge pull request #26 from jorenbroekema/fix/same-commit
Bugfix: Force pushing when using same_commit
2020-10-17 22:36:08 +02:00
jorenbroekema
3c5eb02712 fix: force push when using same_commit option since we amend 2020-10-17 21:50:28 +02:00
b3e1246472 Removed force push because of extreme danger 2020-10-17 21:04:19 +02:00
a3fd60656c Readded pull for bugfixing 2020-10-17 21:02:01 +02:00
fde6ec771e Testing with force push option 2020-10-17 20:44:21 +02:00
96faaba8df Testing with asterix add 2020-10-17 20:27:01 +02:00
25af1e5a4b Testing with git pull option 2020-10-17 20:12:34 +02:00
6024a801da Readded no-edit option for bugfixing 2020-10-17 20:05:03 +02:00
bf27e9d676 Moved git amend before git add 2020-10-17 20:01:43 +02:00
39ff9b668e Revert "Attempt on bugfixing the new same_commit option"
This reverts commit bb4a636946.
2020-10-17 19:53:43 +02:00
bb4a636946 Attempt on bugfixing the new same_commit option 2020-10-17 14:28:22 +02:00
3c71a9826d Improved documentation of the new same_commit feature 2020-10-17 14:25:22 +02:00
63b1ca9669 Merge pull request #24 from jorenbroekema/feat/same-commit
feat: allow action to use current commit instead of creating a new one
2020-10-17 14:11:45 +02:00
c343fb81ed Merge branch 'dev' into feat/same-commit 2020-10-17 14:10:18 +02:00
jorenbroekema
6ad77586cd feat: allow action to use current commit instead of creating a new one 2020-10-16 12:33:51 +02:00
00252f6732 Added example for new only_changed option 2020-10-16 09:43:47 +02:00
2950e4532b Added exception for empty commits 2020-10-16 09:33:01 +02:00
824711396f Improved example code 2020-10-16 09:32:45 +02:00
5cea39febe Added only_changed feature 2020-10-16 09:15:41 +02:00
ea3e74cc2d Removed apt upgrade 2020-07-25 15:30:41 +02:00
4 changed files with 257 additions and 38 deletions

View File

@@ -1,4 +0,0 @@
FROM node:lts-alpine3.9
RUN apk update && apk upgrade && apk add --no-cache bash git openssh
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

113
README.md
View File

@@ -16,16 +16,26 @@ 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. | | 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) | | prettier_version | :x: | `false` | Specific prettier version (by default use latest) |
| prettier_options | :x: | `--write **/*.js` | Prettier options (by default it applies to the whole repository) | | 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_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 |
| commit_message | :x: | Prettified Code! | Custom git commit message | | push_options | :x: | - | Custom git push options |
| file_pattern | :x: | * | Custom git add file pattern | | 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) |
| branch (depreciated with 3.0)| :white_check_mark: | - | Always set this to `${{ github.head_ref }}` in order to work both with pull requests and push events | | 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` |
| 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)
> 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.
### Example Config ### 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 ```yaml
name: Continuous Integration name: Continuous Integration
@@ -34,7 +44,7 @@ on:
pull_request: pull_request:
push: push:
branches: branches:
- master - main
jobs: jobs:
prettier: prettier:
@@ -48,12 +58,99 @@ jobs:
ref: ${{ github.head_ref }} ref: ${{ github.head_ref }}
- name: Prettify code - name: Prettify code
uses: creyD/prettier_action@v2.2 uses: creyD/prettier_action@v4.1
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}
``` ```
#### Example 2 (using the only_changed or same_commit option on PR)
```yaml
name: Continuous Integration
on:
pull_request:
branches: [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 }}
# 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
```
#### Example 3 (using a custom access token on PR)
```yaml
name: Continuous Integration
on:
pull_request:
branches: [main]
jobs:
prettier:
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: 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 }}
```
#### Example 4 (dry run)
```yaml
name: Continuous Integration
on:
pull_request:
branches: [main]
jobs:
prettier:
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: Prettify code
uses: creyD/prettier_action@v4.1
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). 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).
## Issues ## Issues

View File

@@ -5,20 +5,31 @@ author: Conrad Großer <grosserconrad@gmail.com>
inputs: inputs:
commit_message: commit_message:
description: Commit message description: Commit message, will be ignored if used with same_commit
required: false required: false
default: 'Prettified Code!' default: "Prettified Code!"
commit_description:
description: Extended commit message, will be ignored if used with same_commit
required: false
default: ""
same_commit:
description: Update the current commit instead of creating a new one
required: false
default: false
commit_options: commit_options:
description: Commit options description: Commit options
required: false required: false
file_pattern: push_options:
description: File pattern used for `git add` description: Git push options
required: false required: false
default: '*' file_pattern:
description: File pattern used for `git add`, can't be used with only_changed!
required: false
default: "*"
prettier_options: prettier_options:
description: Options for the `prettier` command description: Options for the `prettier` command
required: false required: false
default: '--write **/*.js' default: "--write **/*.js"
dry: dry:
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
@@ -27,11 +38,45 @@ inputs:
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: false
working_directory:
description: Specify a directory to cd into before installing prettier and running it
required: false
default: false
only_changed:
description: Only prettify files changed in the last commit, can't be used with file_pattern!
required: false
default: false
prettier_plugins:
description: Install Prettier plugins, i.e. `@prettier/plugin-php @prettier/plugin-other`
required: false
default: ""
github_token:
description: GitHub Token or PAT token used to authenticate against a repository
required: false
default: ${{ github.token }}
runs: runs:
using: 'docker' using: "composite"
image: 'Dockerfile' steps:
- name: Prettify code!
shell: bash
run: >-
PATH=$(cd $GITHUB_ACTION_PATH; npm bin):$PATH
${{ github.action_path }}/entrypoint.sh
env:
INPUT_COMMIT_MESSAGE: ${{ inputs.commit_message }}
INPUT_COMMIT_DESCRIPTION: ${{ inputs.commit_description }}
INPUT_SAME_COMMIT: ${{ inputs.same_commit }}
INPUT_COMMIT_OPTIONS: ${{ inputs.commit_options }}
INPUT_FILE_PATTERN: ${{ inputs.file_pattern }}
INPUT_PRETTIER_OPTIONS: ${{ inputs.prettier_options }}
INPUT_DRY: ${{ inputs.dry }}
INPUT_PRETTIER_VERSION: ${{ inputs.prettier_version }}
INPUT_ONLY_CHANGED: ${{ inputs.only_changed }}
INPUT_PRETTIER_PLUGINS: ${{ inputs.prettier_plugins }}
INPUT_WORKING_DIRECTORY: ${{ inputs.working_directory }}
INPUT_GITHUB_TOKEN: ${{ inputs.github_token }}
branding: branding:
icon: 'award' icon: "award"
color: 'green' color: "green"

View File

@@ -1,7 +1,8 @@
#!/bin/sh #!/bin/bash
# e is for exiting the script automatically if a command fails, u is for exiting if a variable is not set # e is for exiting the script automatically if a command fails, u is for exiting if a variable is not set
# x would be for showing the commands before they are executed # x would be for showing the commands before they are executed
set -eu set -eu
shopt -s globstar
# FUNCTIONS # FUNCTIONS
# Function for setting up git env in the docker container (copied from https://github.com/stefanzweifel/git-auto-commit-action/blob/master/entrypoint.sh) # Function for setting up git env in the docker container (copied from https://github.com/stefanzweifel/git-auto-commit-action/blob/master/entrypoint.sh)
@@ -9,10 +10,10 @@ _git_setup ( ) {
cat <<- EOF > $HOME/.netrc cat <<- EOF > $HOME/.netrc
machine github.com machine github.com
login $GITHUB_ACTOR login $GITHUB_ACTOR
password $GITHUB_TOKEN password $INPUT_GITHUB_TOKEN
machine api.github.com machine api.github.com
login $GITHUB_ACTOR login $GITHUB_ACTOR
password $GITHUB_TOKEN password $INPUT_GITHUB_TOKEN
EOF EOF
chmod 600 $HOME/.netrc chmod 600 $HOME/.netrc
@@ -25,38 +26,118 @@ _git_changed() {
[[ -n "$(git status -s)" ]] [[ -n "$(git status -s)" ]]
} }
_git_changes() {
git diff
}
(
# PROGRAM # PROGRAM
# Changing to the directory
cd "$GITHUB_ACTION_PATH"
echo "Installing prettier..." echo "Installing prettier..."
case $INPUT_PRETTIER_VERSION in
case $INPUT_WORKING_DIRECTORY in
false) false)
npm install --silent --global prettier
;; ;;
*) *)
npm install --silent --global prettier@$INPUT_PRETTIER_VERSION cd $INPUT_WORKING_DIRECTORY
;; ;;
esac esac
echo "Prettifing files..." case $INPUT_PRETTIER_VERSION in
false)
npm install --silent prettier
;;
*)
npm install --silent prettier@$INPUT_PRETTIER_VERSION
;;
esac
# Install plugins
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
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
fi
)
PRETTIER_RESULT=0
echo "Prettifying files..."
echo "Files:" echo "Files:"
prettier $INPUT_PRETTIER_OPTIONS || echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS" 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."
fi
if [ -f 'package-lock.json' ]; then
git checkout -- package-lock.json
else
echo "No package-lock.json file."
fi
# To keep runtime good, just continue if something was changed # To keep runtime good, just continue if something was changed
if _git_changed; if _git_changed; then
then # 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 "Prettier found unpretty files!" echo "Unpretty Files Changes:"
_git_changes
echo "Finishing dry-run. Exiting before committing."
exit 1 exit 1
else else
# Calling method to configure the git environemnt # Calling method to configure the git environemnt
_git_setup _git_setup
echo "Commiting and pushing changes..."
# Add changes to git if $INPUT_ONLY_CHANGED; then
git add "${INPUT_FILE_PATTERN}" || echo "Problem adding your files with pattern ${INPUT_FILE_PATTERN}" # --diff-filter=d excludes deleted files
OLDIFS="$IFS"
IFS=$'\n'
for file in $(git diff --name-only --diff-filter=d HEAD^..HEAD)
do
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
# Commit and push changes back # Commit and push changes back
git commit -m "$INPUT_COMMIT_MESSAGE" --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"} if $INPUT_SAME_COMMIT; then
git push origin echo "Amending the current commit..."
git pull
git commit --amend --no-edit
git push origin -f
else
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." echo "Changes pushed successfully."
fi fi
else else
# case when --check is used so there will never have something to commit but there are unpretty files
if [ "$PRETTIER_RESULT" -eq 1 ]; then
echo "Prettier found unpretty files!"
exit 1
else
echo "Finishing dry-run."
fi
echo "No unpretty files!"
echo "Nothing to commit. Exiting." echo "Nothing to commit. Exiting."
fi fi