forked from akaihola/darker
-
Notifications
You must be signed in to change notification settings - Fork 0
/
action.yml
75 lines (72 loc) · 2.45 KB
/
action.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
---
name: "Darker"
description: "Apply Black, isort and linters to modified lines only."
author: "Antti Kaihola and contributors to Darker"
inputs:
options:
description: >-
Options passed to Darker. Use `darker --help` to see available options.
Default: '--check --diff --color'
required: false
default: "--check --diff --color"
src:
description: "Source to run Darker. Default: '.'"
required: false
default: "."
version:
description: 'Version of Darker to use, e.g. "~=1.7.2", "1.7.2", "@master"'
required: false
default: "~=1.7.2"
revision:
description: >-
Git revision range to compare when determining modified lines.
Determined automatically if omitted.
required: false
lint:
description: >-
Comma-separated list of linters to `pip install` and run from Darker.
Optionally, version constraints (using pip syntax) can be specified.
Example: flake8,pylint==2.13.1
required: false
default: ''
branding:
color: "black"
icon: "check-circle"
runs:
using: composite
steps:
- name: Commit Range
id: commit-range
uses: akaihola/darker/.github/actions/[email protected]
- name: Run Darker
run: |
# Exists since using github.action_path + path to main script doesn't
# work because bash interprets the backslashes in github.action_path
# (which are used when the runner OS is Windows) destroying the path to
# the target file.
#
# Also semicolons are necessary because I can't get the newlines to work
entrypoint="import sys;
import subprocess;
from pathlib import Path;
MAIN_SCRIPT = Path(r'${{ github.action_path }}') / 'action' / 'main.py';
proc = subprocess.run([sys.executable, str(MAIN_SCRIPT)]);
sys.exit(proc.returncode)
"
pip install pip-requirements-parser
if [ "$RUNNER_OS" == "Windows" ]; then
echo $entrypoint | python
else
echo $entrypoint | python3
fi
env:
# TODO: Remove once https://github.com/actions/runner/issues/665 is
# fixed.
INPUT_OPTIONS: ${{ inputs.options }}
INPUT_SRC: ${{ inputs.src }}
INPUT_VERSION: ${{ inputs.version }}
INPUT_REVISION: ${{ inputs.revision }}
INPUT_LINT: ${{ inputs.lint }}
INPUT_COMMIT_RANGE: ${{ steps.commit-range.outputs.commit-range }}
pythonioencoding: utf-8
shell: bash