-
Notifications
You must be signed in to change notification settings - Fork 23
57 lines (50 loc) · 1.63 KB
/
lint.yaml
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
name: Lint
on:
pull_request:
paths:
- '**/*.md'
jobs:
lint:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Install zhlint
run: yarn global add zhlint
- name: Get changed files
id: changed-files
uses: tj-actions/changed-files@v45
with:
files: '**/*.md'
- name: Lint Markdown files
env:
ALL_CHANGED_FILES: ${{ steps.changed-files.outputs.all_changed_files }}
run: |
mkdir -p linted_output
file_list="linted_output/file_list.txt"
linted_failed=0
for file in ${{ env.ALL_CHANGED_FILES }}; do
set +e
zhlint --config "$GITHUB_WORKSPACE"/ci/.zhlintrc "$file"
if [ $? -ne 0 ]; then
linted_failed=1
echo "$file" >> "$file_list"
output_file="linted_output/report_and_suggested_fixes/$file"
mkdir -p "$(dirname "$output_file")"
zhlint --config "$GITHUB_WORKSPACE"/ci/.zhlintrc "$file" --output="$output_file" > "$output_file.log" 2>&1
fi
set -e
done
echo "linted_failed=$linted_failed" >> "$GITHUB_ENV"
- name: Upload Linted Markdown
uses: actions/upload-artifact@v4
with:
name: linted-markdown
path: linted_output/
- name: Check lint errors
run: |
set -e
if [ "${{ env.linted_failed }}" -ne 0 ]; then
echo "Linting errors found. Please check the reports and suggested fixes in uploaded artifact."
exit 1
fi