mirror of
https://github.com/creyD/prettier_action.git
synced 2026-04-13 03:40:31 +02:00
Compare commits
11 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 71bcaf6210 | |||
| 29a6b692fd | |||
| b09ae6a0d6 | |||
| 073a0f8b6e | |||
| 0ba5bcfc18 | |||
| 5daa695f24 | |||
| bbeb9af617 | |||
| 8d0861a178 | |||
|
|
c45684605c | ||
|
|
638e44576b | ||
| b5eb80d2a9 |
58
README.md
58
README.md
@@ -22,62 +22,36 @@ A GitHub action for styling files with [prettier](https://prettier.io).
|
||||
| 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. |
|
||||
| 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 - On Pull Request
|
||||
|
||||
This is a small example of what your `action.yml` could look like (on pull request mode):
|
||||
|
||||
```yaml
|
||||
name: Prettier for JS Code
|
||||
|
||||
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.1
|
||||
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
|
||||
name: Continuous Integration
|
||||
|
||||
# This action works with pull requests and pushes
|
||||
on:
|
||||
pull_request:
|
||||
push:
|
||||
branches: [master]
|
||||
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@v2.2
|
||||
with:
|
||||
prettier_options: '--no-semi --write *.js'
|
||||
branch: master
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# This part is also where you can pass other options, for example:
|
||||
prettier_options: --write **/*.{js,md}
|
||||
```
|
||||
|
||||
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,16 +19,14 @@ inputs:
|
||||
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
|
||||
|
||||
runs:
|
||||
using: 'docker'
|
||||
|
||||
@@ -25,23 +25,16 @@ _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:"
|
||||
@@ -57,13 +50,11 @@ then
|
||||
# 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}"
|
||||
# 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
|
||||
git push origin
|
||||
echo "Changes pushed successfully."
|
||||
fi
|
||||
else
|
||||
|
||||
Reference in New Issue
Block a user