Merge branch 'dev' into feat/same-commit

This commit is contained in:
2020-10-17 14:10:18 +02:00
committed by GitHub
3 changed files with 54 additions and 10 deletions

View File

@@ -16,19 +16,21 @@ 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) |
| 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 |
| same_commit | :x: | False | Whether to merge into the current commit instead of creating a new one |
| commit_message | :x: | Prettified Code! | Custom git commit message |
| file_pattern | :x: | * | Custom git add file pattern |
| file_pattern | :x: | * | Custom git add file pattern, can't be used with only_changed! |
| 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 |
| 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' (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 1 (run on push in master)
```yaml
name: Continuous Integration
@@ -51,10 +53,42 @@ jobs:
ref: ${{ github.head_ref }}
- name: Prettify code
uses: creyD/prettier_action@v2.2
uses: creyD/prettier_action@v3.0
with:
# This part is also where you can pass other options, for example:
prettier_options: --write **/*.{js,md}
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
```
#### Example 2 (using the only_changed option on PR)
```yaml
name: Continuous Integration
on:
pull_request:
branches: [master]
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@v3.0
with:
# This part is also where you can pass other options, for example:
prettier_options: --write **/*.{js,md}
env:
GITHUB_TOKEN: ${{ secrets.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).

View File

@@ -16,7 +16,7 @@ inputs:
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:
@@ -31,6 +31,10 @@ inputs:
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

@@ -41,8 +41,7 @@ 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
@@ -50,14 +49,21 @@ then
# Calling method to configure the git environemnt
_git_setup
echo "Commiting and pushing changes..."
# Add changes to git
git add "${INPUT_FILE_PATTERN}" || echo "Problem adding your files with pattern ${INPUT_FILE_PATTERN}"
if $INPUT_ONLY_CHANGED; then
for file in $(git diff --name-only 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
if $INPUT_SAME_COMMIT; then
echo "Amending the current commit..."
git commit --amend --no-edit
else
git commit -m "$INPUT_COMMIT_MESSAGE" --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"}
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
echo "Changes pushed successfully."