-
Notifications
You must be signed in to change notification settings - Fork 55
/
Copy pathaction.yml
96 lines (93 loc) · 3 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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
---
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. "~=2.1.1", "2.1.1", "@master"'
required: false
default: "~=2.1.1"
revision:
description: >-
Git revision range to compare when determining modified lines.
Determined automatically if omitted.
required: false
lint:
description: >-
NOTE: Baseline linting has been moved to the Graylint package.
required: false
default: ''
working-directory:
description: >-
Directory to run Darker in, either absolute or relative to
$GITHUB_WORKSPACE. By default, Darker is run in $GITHUB_WORKSPACE.
required: false
default: '.'
outputs:
exitcode:
description: "Exit code of Darker"
value: ${{ steps.darker.outputs.exitcode }}
stdout:
description: "Standard output of Darker"
value: ${{ steps.darker.outputs.stdout }}
branding:
color: "black"
icon: "check-circle"
runs:
using: composite
steps:
- name: Commit Range
id: commit-range
uses: ./.github/actions/commit-range
- name: Set up Python
uses: actions/setup-python@v5
with:
python-version: '3.x'
cache: 'pip'
- name: Install dependencies
run: |
pip install pip-requirements-parser
shell: bash
- name: Run Darker
id: 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)
"
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 }}
INPUT_WORKING_DIRECTORY: ${{ inputs.working-directory }}
pythonioencoding: utf-8
shell: bash