43 Commits
v2.2 ... v3.2

Author SHA1 Message Date
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
4 changed files with 87 additions and 63 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

@@ -16,66 +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_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) |
| 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! |
| branch (deprecated with 3.0)| :white_check_mark: | - | Always set this to `${{ github.head_ref }}` in order to work both with pull requests and push events |
| 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.1
# 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.1
# 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,30 +5,36 @@ 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
runs:
using: 'docker'

View File

@@ -25,45 +25,51 @@ _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..."
if "$INPUT_PRETTIER_VERSION"; then
npm install --silent --global prettier@$INPUT_PRETTIER_VERSION
else
npm install --silent --global prettier
fi
case $INPUT_PRETTIER_VERSION in
false)
npm install --silent --global prettier
;;
*)
npm install --silent --global prettier@$INPUT_PRETTIER_VERSION
;;
esac
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!"
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