79 Commits
v2.1 ... v3.3

Author SHA1 Message Date
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
71bcaf6210 Merge pull request #15 from creyD/dev
Updated docs
2020-05-04 13:59:00 +02:00
29a6b692fd Merge branch 'master' into dev 2020-05-04 13:58:53 +02:00
b09ae6a0d6 Updated docs 2020-05-04 13:56:28 +02:00
073a0f8b6e Merge pull request #14 from creyD/dev
Removed branch parameter + Bugfix for prettier_version
2020-05-04 13:51:51 +02:00
0ba5bcfc18 Fix for the PRETTIER_VERSION problems 2020-05-04 11:52:58 +02:00
5daa695f24 Merge pull request #13 from spawnia/patch-1
Simplify configuration example
2020-04-27 18:19:33 +02:00
bbeb9af617 Removed $INPUT_BRANCH completely 2020-04-27 18:15:56 +02:00
8d0861a178 Removed branching parameter for testing 2020-04-27 17:25:13 +02:00
Benedikt Franke
c45684605c Add example config option 2020-04-26 23:22:24 +02:00
Benedikt Franke
638e44576b Simplify configuration example 2020-04-26 23:16:40 +02:00
b5eb80d2a9 Added default for prettier_version 2020-04-16 18:20:54 +02:00
8295f2c348 Merge pull request #11 from creyD/dev_version
Added npm Version Selection
2020-03-24 10:07:02 +01:00
897359d7a2 Update entrypoint.sh 2020-03-24 10:00:40 +01:00
65e822b2f3 New Parameter Defaults To Null 2020-03-24 09:56:43 +01:00
565d7a7458 Attempt 2 on fixing the bug with the new version parameter 2020-03-24 09:51:18 +01:00
66441c9ff3 Fixed bug with new version parameter 2020-03-24 09:46:35 +01:00
28d6dc7fe1 Merge pull request #10 from creyD/dev_badges
Stepped Up Badge Game
2020-03-24 00:28:16 +01:00
158b31956c Stepped Up Badge Game 2020-03-24 00:26:22 +01:00
e0fb4eb439 Added prettier_version parameter 2020-03-24 00:15:08 +01:00
d8862e43c9 Added Prettier Badge to Readme 2020-03-24 00:10:16 +01:00
857b4b338e Bumped other version in Readme 2020-03-20 17:44:02 +01:00
0c51fd6dc9 Merge pull request #7 from TomBarta/patch-1
Update README to match latest version
2020-03-20 17:39:29 +01:00
Tom Barta
9bca767580 Update README to match latest version 2020-03-20 10:28:35 -06:00
0d1a062a13 Marked Importance 2020-03-18 11:12:34 +01:00
4 changed files with 114 additions and 59 deletions

View File

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

View File

@@ -1,6 +1,12 @@
# 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)
[![code style: prettier](https://img.shields.io/badge/code_style-prettier-ff69b4.svg?style=flat-square)](https://github.com/prettier/prettier)
[![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)
[![Contributors](https://img.shields.io/github/contributors-anon/creyD/prettier_action)](https://github.com/creyD/prettier_action/graphs/contributors)
[![Issues](https://img.shields.io/github/issues/creyD/prettier_action)](https://github.com/creyD/prettier_action/issues)
A GitHub action for styling files with [prettier](https://prettier.io).
@@ -10,65 +16,78 @@ A GitHub action for styling files with [prettier](https://prettier.io).
| 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. |
| prettier_options | :x: | `--write **/*.js` | Prettier options (by default it applies to the whole repository) |
| dry | :x: | `false` | Runs the action in dry mode. Files wont get changed and the action fails if there are unprettified files. |
| 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) |
| commit_options | :x: | - | Custom git commit options |
| commit_message | :x: | Prettified Code! | Custom git commit message |
| file_pattern | :x: | * | Custom git add file pattern |
| branch | :white_check_mark: | - | There are two types of action triggers in GitHub: on pull request and on push. The branch needs to be defined for both, but in case of the pull request trigger it should have `${{ github.head_ref }}` and on push it should have the branch the trigger is designed for. |
| 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` |
| file_pattern | :x: | `*` | Custom git add file pattern, can't be used with only_changed! |
| prettier_plugins | :x: | ` ` | Install Prettier plugins, i.e. `@prettier/prettier-php @prettier/some-other-plugin` |
| 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)|
> 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 - On Pull Request
This is a small example of what your `action.yml` could look like (on pull request mode):
#### Example 1 (run on push in master)
```yaml
name: Prettier for JS Code
name: Continuous Integration
on: [pull_request]
# This action works with pull requests and pushes
on:
pull_request:
push:
branches:
- master
jobs:
cleanup_tasks:
prettier:
runs-on: ubuntu-latest
steps:
- name: Cloning the repository
uses: actions/checkout@v1
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Prettify the JS Code
uses: creyD/prettier_action@v2.0
# Make sure the actual branch is checked out when running on pull requests
ref: ${{ github.head_ref }}
- name: Prettify code
uses: creyD/prettier_action@v3.1
with:
prettier_options: '--no-semi --write *.js'
branch: ${{ github.head_ref }}
# This part is also where you can pass other options, for example:
prettier_options: --write **/*.{js,md}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
#### Example - On Push
#### Example 2 (using the only_changed or same_commit option on PR)
```yaml
name: Prettier for JS Code
name: Continuous Integration
on:
push:
pull_request:
branches: [master]
jobs:
cleanup_tasks:
prettier:
runs-on: ubuntu-latest
steps:
- name: Cloning the repository
uses: actions/checkout@v1
- name: Checkout
uses: actions/checkout@v2
with:
fetch-depth: 1
- name: Prettify the JS Code
uses: creyD/prettier_action@v2.0
# 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@v3.1
with:
prettier_options: '--no-semi --write *.js'
branch: master
# This part is also where you can pass other options, for example:
prettier_options: --write **/*.{js,md}
only_changed: True
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```

View File

@@ -5,27 +5,40 @@ author: Conrad Großer <grosserconrad@gmail.com>
inputs:
commit_message:
description: Commit message
description: Commit message, will be ignored if used with same_commit
required: false
default: 'Prettified Code!'
same_commit:
description: Update the current commit instead of creating a new one
required: false
default: false
commit_options:
description: Commit options
required: false
file_pattern:
description: File pattern used for `git add`
description: File pattern used for `git add`, can't be used with only_changed!
required: false
default: '*'
prettier_options:
description: Options for the `prettier` command
required: false
default: '--write **/*.js'
branch:
description: Target branch for the changes
required: true
dry:
description: Running the script in dry mode just shows whether there are files that should be prettified or not
required: false
default: False
default: false
prettier_version:
description: Specific version of prettier (by default just use the latest version)
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/prettier-php @prettier/some-other-plugin`
required: false
default: ''
runs:
using: 'docker'

View File

@@ -25,41 +25,64 @@ _git_changed() {
[[ -n "$(git status -s)" ]]
}
# Pushes to the according upstream (origin or input branch)
_git_push() {
if [ -z "$INPUT_BRANCH" ]
then
git push origin
else
git push --set-upstream origin "HEAD:$INPUT_BRANCH"
fi
}
# PROGRAM
echo "Installing prettier..."
npm install --silent --global prettier
case $INPUT_PRETTIER_VERSION in
false)
npm install --silent --global prettier
;;
*)
npm install --silent --global 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
echo "Prettifing files..."
echo "Files:"
prettier $INPUT_PRETTIER_OPTIONS || echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS"
# To keep runtime good, just continue if something was changed
if _git_changed;
then
if _git_changed; then
if $INPUT_DRY; then
echo "Prettier found unpretty files."
echo "Prettier found unpretty files!"
exit 1
else
# Calling method to configure the git environemnt
_git_setup
echo "Commiting and pushing changes..."
# Switch to the actual branch
git checkout $INPUT_BRANCH || echo "Problem checking out the specified branch: $INPUT_BRANCH"
# Add changes to git
git add "${INPUT_FILE_PATTERN}" || echo "Problem adding your files with pattern ${INPUT_FILE_PATTERN}"
if $INPUT_ONLY_CHANGED; then
# --diff-filter=d excludes deleted files
for file in $(git diff --name-only --diff-filter=d HEAD^..HEAD)
do
git add $file
done
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
git commit -m "$INPUT_COMMIT_MESSAGE" --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"}
_git_push
if $INPUT_SAME_COMMIT; then
echo "Amending the current commit..."
git pull
git commit --amend --no-edit
git push origin -f
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"
git push origin
fi
echo "Changes pushed successfully."
fi
else