Merge branch 'dev' into master

This commit is contained in:
2021-04-10 16:13:21 +02:00
committed by GitHub
4 changed files with 55 additions and 22 deletions

View File

@@ -1,4 +0,0 @@
FROM node:lts-alpine3.9
RUN apk update && apk add --no-cache bash git openssh
COPY entrypoint.sh /entrypoint.sh
ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -16,14 +16,14 @@ 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. Recommended to use with prettier_options --check |
| 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 |
| 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) | | 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` | | 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! | | file_pattern | :x: | `*` | Custom git add file pattern, can't be used with only_changed! |
| prettier_plugins | :x: | ` ` | Install Prettier plugins, i.e. `@prettier/prettier-php @prettier/some-other-plugin` | | prettier_plugins | :x: | - | Install Prettier plugins, i.e. `@prettier/plugin-php @prettier/plugin-other` |
| 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)| | 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. > 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.

View File

@@ -7,7 +7,7 @@ inputs:
commit_message: commit_message:
description: Commit message, will be ignored if used with same_commit description: Commit message, will be ignored if used with same_commit
required: false required: false
default: 'Prettified Code!' default: "Prettified Code!"
same_commit: same_commit:
description: Update the current commit instead of creating a new one description: Update the current commit instead of creating a new one
required: false required: false
@@ -18,11 +18,11 @@ inputs:
file_pattern: file_pattern:
description: File pattern used for `git add`, can't be used with only_changed! 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"
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
@@ -36,14 +36,28 @@ inputs:
required: false required: false
default: false default: false
prettier_plugins: prettier_plugins:
description: Install Prettier plugins, i.e. `@prettier/prettier-php @prettier/some-other-plugin` description: Install Prettier plugins, i.e. `@prettier/plugin-php @prettier/plugin-other`
required: false required: false
default: ''
runs: runs:
using: 'docker' using: "composite"
image: 'Dockerfile' steps:
- name: Prettify code!
shell: bash
run: >-
PATH=$(cd $GITHUB_ACTION_PATH; npm bin):$PATH
${{ github.action_path }}/entrypoint.sh
env:
INPUT_COMMIT_MESSAGE: ${{ inputs.commit_message }}
INPUT_SAME_COMMIT: ${{ inputs.same_commit }}
INPUT_COMMIT_OPTIONS: ${{ inputs.commit_options }}
INPUT_FILE_PATTERN: ${{ inputs.file_pattern }}
INPUT_PRETTIER_OPTIONS: ${{ inputs.prettier_options }}
INPUT_DRY: ${{ inputs.dry }}
INPUT_PRETTIER_VERSION: ${{ inputs.prettier_version }}
INPUT_ONLY_CHANGED: ${{ inputs.only_changed }}
INPUT_PRETTIER_PLUGINS: ${{ inputs.prettier_plugins }}
branding: branding:
icon: 'award' icon: "award"
color: 'green' color: "green"

View File

@@ -1,7 +1,8 @@
#!/bin/sh #!/bin/bash
# e is for exiting the script automatically if a command fails, u is for exiting if a variable is not set # e is for exiting the script automatically if a command fails, u is for exiting if a variable is not set
# x would be for showing the commands before they are executed # x would be for showing the commands before they are executed
set -eu set -eu
shopt -s globstar nullglob
# FUNCTIONS # FUNCTIONS
# Function for setting up git env in the docker container (copied from https://github.com/stefanzweifel/git-auto-commit-action/blob/master/entrypoint.sh) # Function for setting up git env in the docker container (copied from https://github.com/stefanzweifel/git-auto-commit-action/blob/master/entrypoint.sh)
@@ -25,31 +26,53 @@ _git_changed() {
[[ -n "$(git status -s)" ]] [[ -n "$(git status -s)" ]]
} }
(
# PROGRAM # PROGRAM
# Changing to the directory
cd "$GITHUB_ACTION_PATH"
echo "Installing prettier..." echo "Installing prettier..."
case $INPUT_PRETTIER_VERSION in case $INPUT_PRETTIER_VERSION in
false) false)
npm install --silent --global prettier npm install --silent prettier
;; ;;
*) *)
npm install --silent --global prettier@$INPUT_PRETTIER_VERSION npm install --silent prettier@$INPUT_PRETTIER_VERSION
;; ;;
esac esac
# Install plugins # Install plugins
if [ -n "$INPUT_PRETTIER_PLUGINS" ]; then if [ -n "$INPUT_PRETTIER_PLUGINS" ]; then
for plugin in $INPUT_PRETTIER_PLUGINS; do
echo "Checking plugin: $plugin"
# check regex against @prettier/xyz
if ! echo "$plugin" | grep -Eq '(@prettier\/)+(plugin-[a-z\-]+)'; then
echo "$plugin does not seem to be a valid @prettier/plugin-x plugin. Exiting."
exit 1
fi
done
npm install --silent --global $INPUT_PRETTIER_PLUGINS npm install --silent --global $INPUT_PRETTIER_PLUGINS
fi fi
)
echo "Prettifing files..." PRETTIER_RESULT=0
echo "Prettifying files..."
echo "Files:" echo "Files:"
prettier $INPUT_PRETTIER_OPTIONS || echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS" prettier $INPUT_PRETTIER_OPTIONS || { PRETTIER_RESULT=$?; echo "Problem running prettier with $INPUT_PRETTIER_OPTIONS"; }
# Ignore node modules and other action created files
rm -r node_modules/ || echo "No node_modules/ folder."
git reset --hard package-lock.json || rm package-lock.json || echo "No package-lock.json file."
# To keep runtime good, just continue if something was changed # To keep runtime good, just continue if something was changed
if _git_changed; then if _git_changed; then
if $INPUT_DRY; then if $INPUT_DRY; then
echo "Prettier found unpretty files!" if [ "$PRETTIER_RESULT" -eq 1 ]; then
exit 1 echo "Prettier found unpretty files!"
exit 1
else
echo "No unpretty files! Finishing dry-run."
fi
else else
# Calling method to configure the git environemnt # Calling method to configure the git environemnt
_git_setup _git_setup