-
Notifications
You must be signed in to change notification settings - Fork 0
/
action.yml
97 lines (89 loc) · 2.81 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
97
---
name: "Yamllint Composite Action"
description: "Github action to lint YAML files using yamllint"
branding:
icon: 'check'
color: 'yellow'
inputs:
files_or_dirs:
description: "A space separated list of files or directories to be checked"
required: false
default: "."
config_file:
description: "Path to a custom configuration file"
required: false
default: ""
config_data:
description: "Custom configuration (as YAML source)"
required: false
default: ""
strict:
description: "Return non-zero exit code on warnings as well as errors"
required: false
default: "false"
no_warnings:
description: "Output only error level problems"
required: false
default: "false"
format:
description: "The format for parsing output. Available options: parsable, standard, colored, github, auto"
required: false
default: "auto"
outputs:
lint_output:
description: "Result from yamllint"
value: ${{ steps.output_result.outputs.result }}
runs:
using: "composite"
steps:
- run: pip install --user yamllint
shell: bash
- id: params
run: |
YAMLLINT_CONFIG_FILE=""
if [[ -n "${{ inputs.config_file }}" ]]; then
YAMLLINT_CONFIG_FILE="--config-file ${{ inputs.config_file }}"
fi
YAMLLINT_CONFIG_DATA=""
if [[ -n "${{ inputs.config_data }}" ]]; then
YAMLLINT_CONFIG_DATA="--config-data '${{ inputs.config_data }}'"
fi
YAMLLINT_STRICT=""
if [[ "${{ inputs.strict }}" == "true" ]]; then
YAMLLINT_STRICT="--strict"
fi
YAMLLINT_NO_WARNINGS=""
if [[ "${{ inputs.no_warnings }}" == "true" ]]; then
YAMLLINT_NO_WARNINGS="--no-warnings"
fi
{
echo "yamllint_config_file=$YAMLLINT_CONFIG_FILE"
echo "yamllint_config_data=$YAMLLINT_CONFIG_DATA"
echo "yamllint_strict=$YAMLLINT_STRICT"
echo "yamllint_no_warnings=$YAMLLINT_NO_WARNINGS"
} >> "$GITHUB_OUTPUT"
shell: bash
- id: lint
env:
config_file: ${{ steps.params.outputs.yamllint_config_file }}
config_data: ${{ steps.params.outputs.yamllint_config_data }}
strict: ${{ steps.params.outputs.yamllint_strict }}
no_warnings: ${{ steps.params.outputs.yamllint_no_warnings }}
run: >-
yamllint ${{ inputs.files_or_dirs }}
--format ${{ inputs.format }}
${{ env.config_file }}
${{ env.config_data }}
${{ env.strict }}
${{ env.no_warnings }}
> result.txt 2>&1
shell: bash
- id: output_result
if: ${{ always() }}
run: |
echo "Yamllint result:"
cat result.txt
echo "result<<EOF" >> "$GITHUB_OUTPUT"
cat result.txt >> "$GITHUB_OUTPUT"
echo "EOF" >> "$GITHUB_OUTPUT"
shell: bash