mirror of
https://github.com/creyD/prettier_action.git
synced 2026-04-13 11:50:31 +02:00
Compare commits
24 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 71bcaf6210 | |||
| 29a6b692fd | |||
| b09ae6a0d6 | |||
| 073a0f8b6e | |||
| 0ba5bcfc18 | |||
| 5daa695f24 | |||
| bbeb9af617 | |||
| 8d0861a178 | |||
|
|
c45684605c | ||
|
|
638e44576b | ||
| b5eb80d2a9 | |||
| 8295f2c348 | |||
| 897359d7a2 | |||
| 65e822b2f3 | |||
| 565d7a7458 | |||
| 66441c9ff3 | |||
| 28d6dc7fe1 | |||
| 158b31956c | |||
| e0fb4eb439 | |||
| d8862e43c9 | |||
| 857b4b338e | |||
| 0c51fd6dc9 | |||
|
|
9bca767580 | ||
| 0d1a062a13 |
65
README.md
65
README.md
@@ -1,6 +1,12 @@
|
|||||||
# GitHub Prettier Action
|
# GitHub Prettier Action
|
||||||
|
|
||||||
[](https://www.codefactor.io/repository/github/creyd/prettier_action/overview/master)
|
[](https://www.codefactor.io/repository/github/creyd/prettier_action/overview/master)
|
||||||
|
[](https://github.com/prettier/prettier)
|
||||||
|
[](https://github.com/creyD/prettier_action/blob/master/LICENSE)
|
||||||
|
[](https://github.com/creyD/prettier_action/releases)
|
||||||
|
[](https://github.com/creyD/prettier_action/graphs/contributors)
|
||||||
|
[](https://github.com/creyD/prettier_action/issues)
|
||||||
|
|
||||||
|
|
||||||
A GitHub action for styling files with [prettier](https://prettier.io).
|
A GitHub action for styling files with [prettier](https://prettier.io).
|
||||||
|
|
||||||
@@ -11,66 +17,41 @@ 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_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 |
|
| 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 |
|
||||||
| 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. |
|
| 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 |
|
||||||
|
|
||||||
### Example Config
|
### Example Config
|
||||||
|
|
||||||
#### Example - On Pull Request
|
|
||||||
|
|
||||||
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]
|
|
||||||
|
|
||||||
jobs:
|
|
||||||
cleanup_tasks:
|
|
||||||
runs-on: ubuntu-latest
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Cloning the repository
|
|
||||||
uses: actions/checkout@v1
|
|
||||||
with:
|
|
||||||
fetch-depth: 1
|
|
||||||
- name: Prettify the JS Code
|
|
||||||
uses: creyD/prettier_action@v2.0
|
|
||||||
with:
|
|
||||||
prettier_options: '--no-semi --write *.js'
|
|
||||||
branch: ${{ github.head_ref }}
|
|
||||||
env:
|
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
||||||
```
|
|
||||||
|
|
||||||
#### Example - On Push
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
name: Prettier for JS Code
|
|
||||||
|
|
||||||
|
# This action works with pull requests and pushes
|
||||||
on:
|
on:
|
||||||
|
pull_request:
|
||||||
push:
|
push:
|
||||||
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.0
|
|
||||||
|
- name: Prettify code
|
||||||
|
uses: creyD/prettier_action@v2.2
|
||||||
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}
|
||||||
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).
|
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).
|
||||||
|
|||||||
@@ -19,13 +19,14 @@ inputs:
|
|||||||
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:
|
||||||
|
description: Specific version of prettier (by default just use the latest version)
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
|
|
||||||
runs:
|
runs:
|
||||||
using: 'docker'
|
using: 'docker'
|
||||||
|
|||||||
@@ -25,19 +25,16 @@ _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..."
|
||||||
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
|
||||||
|
|
||||||
echo "Prettifing files..."
|
echo "Prettifing files..."
|
||||||
echo "Files:"
|
echo "Files:"
|
||||||
@@ -47,19 +44,17 @@ prettier $INPUT_PRETTIER_OPTIONS || echo "Problem running prettier with $INPUT_P
|
|||||||
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..."
|
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
|
# Add changes to git
|
||||||
git add "${INPUT_FILE_PATTERN}" || echo "Problem adding your files with pattern ${INPUT_FILE_PATTERN}"
|
git add "${INPUT_FILE_PATTERN}" || echo "Problem adding your files with pattern ${INPUT_FILE_PATTERN}"
|
||||||
# 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"}
|
git commit -m "$INPUT_COMMIT_MESSAGE" --author="$GITHUB_ACTOR <$GITHUB_ACTOR@users.noreply.github.com>" ${INPUT_COMMIT_OPTIONS:+"$INPUT_COMMIT_OPTIONS"}
|
||||||
_git_push
|
git push origin
|
||||||
echo "Changes pushed successfully."
|
echo "Changes pushed successfully."
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
|
|||||||
Reference in New Issue
Block a user