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 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 COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/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 | | 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. |
| 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) | | 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 | | 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) |
| file_pattern | :x: | * | Custom git add file pattern | | commit_message | :x: | `"Prettified Code!"` | Custom git commit message, will be ignored if used with `same_commit` |
| 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. | | 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 Config
#### Example - On Pull Request #### Example 1 (run on push in master)
This is a small example of what your `action.yml` could look like (on pull request mode):
```yaml ```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: jobs:
cleanup_tasks: prettier:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Cloning the repository - name: Checkout
uses: actions/checkout@v1 uses: actions/checkout@v2
with: with:
fetch-depth: 1 # Make sure the actual branch is checked out when running on pull requests
- name: Prettify the JS Code ref: ${{ github.head_ref }}
uses: creyD/prettier_action@v2.1
- name: Prettify code
uses: creyD/prettier_action@v3.1
with: with:
prettier_options: '--no-semi --write *.js' # This part is also where you can pass other options, for example:
branch: ${{ github.head_ref }} prettier_options: --write **/*.{js,md}
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
``` ```
#### Example - On Push #### Example 2 (using the only_changed or same_commit option on PR)
```yaml ```yaml
name: Prettier for JS Code name: Continuous Integration
on: on:
push: pull_request:
branches: [master] branches: [master]
jobs: jobs:
cleanup_tasks: prettier:
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
- name: Cloning the repository - name: Checkout
uses: actions/checkout@v1 uses: actions/checkout@v2
with: with:
fetch-depth: 1 # Make sure the actual branch is checked out when running on pull requests
- name: Prettify the JS Code ref: ${{ github.head_ref }}
uses: creyD/prettier_action@v2.1 # This is important to fetch the changes to the previous commit
fetch-depth: 0
- name: Prettify code
uses: creyD/prettier_action@v3.1
with: with:
prettier_options: '--no-semi --write *.js' # This part is also where you can pass other options, for example:
branch: master prettier_options: --write **/*.{js,md}
only_changed: True
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
``` ```

View File

@@ -5,30 +5,36 @@ 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!'
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: 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 required: false
default: '*' 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'
branch:
description: Target branch for the changes
required: true
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
default: False default: false
prettier_version: prettier_version:
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
only_changed:
description: Only prettify files changed in the last commit, can't be used with file_pattern!
required: false
default: false
runs: runs:
using: 'docker' using: 'docker'

View File

@@ -25,45 +25,51 @@ _git_changed() {
[[ -n "$(git status -s)" ]] [[ -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 # PROGRAM
echo "Installing prettier..." echo "Installing prettier..."
if "$INPUT_PRETTIER_VERSION"; then case $INPUT_PRETTIER_VERSION in
npm install --silent --global prettier@$INPUT_PRETTIER_VERSION false)
else npm install --silent --global prettier
npm install --silent --global prettier ;;
fi *)
npm install --silent --global prettier@$INPUT_PRETTIER_VERSION
;;
esac
echo "Prettifing files..." echo "Prettifing files..."
echo "Files:" echo "Files:"
prettier $INPUT_PRETTIER_OPTIONS || echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS" prettier $INPUT_PRETTIER_OPTIONS || echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS"
# 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
if $INPUT_DRY; then if $INPUT_DRY; then
echo "Prettier found unpretty files!" echo "Prettier found unpretty files!"
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..."
# Switch to the actual branch if $INPUT_ONLY_CHANGED; then
git checkout $INPUT_BRANCH || echo "Problem checking out the specified branch: $INPUT_BRANCH" # --diff-filter=d excludes deleted files
# Add changes to git for file in $(git diff --name-only --diff-filter=d HEAD^..HEAD)
git add "${INPUT_FILE_PATTERN}" || echo "Problem adding your files with pattern ${INPUT_FILE_PATTERN}" 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 # 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 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." echo "Changes pushed successfully."
fi fi
else else