Skip to content

Commit dc6a399

Browse files
committed
add
1 parent b05396c commit dc6a399

File tree

1 file changed

+31
-111
lines changed

1 file changed

+31
-111
lines changed

.github/workflows/vale.yml

+31-111
Original file line numberDiff line numberDiff line change
@@ -1,121 +1,41 @@
1-
name: Lint and suggest
1+
name: Vale Linting and Suggestions
22

33
on:
44
pull_request:
55
paths:
66
- '**/*.md'
77

88
jobs:
9-
vale: # Vale linting job
9+
vale-lint:
1010
runs-on: ubuntu-latest
1111

1212
steps:
13-
- name: Checkout code
14-
uses: actions/checkout@v3
15-
with:
16-
fetch-depth: 0 # Fetch all history so we can access all commits
17-
18-
- name: Install Vale
19-
uses: errata-ai/vale-action@v2
20-
21-
- name: Install jq
22-
run: sudo apt-get install -y jq
23-
24-
- name: Get changed files
25-
id: changed-files
26-
run: |
27-
BASE_SHA=$(git merge-base origin/${{ github.event.pull_request.base.ref }} ${{ github.sha }})
28-
CHANGED_FILES=$(git diff --name-only $BASE_SHA ${{ github.sha }} -- '*.md')
29-
echo "CHANGED_FILES=$CHANGED_FILES" >> $GITHUB_ENV
30-
echo "CHANGED_FILES=$(echo $CHANGED_FILES | jq -R -s -c 'split(\"\n\")[:-1]')" >> $GITHUB_ENV
31-
32-
- name: Print Changed Files
33-
run: echo $CHANGED_FILES
34-
35-
- name: Run Vale on changed files
36-
run: |
37-
for file in ${{ env.CHANGED_FILES }}; do
38-
echo "Running Vale on $file"
39-
vale --output=JSON $file > "vale_output_${file//\//_}.json"
40-
vale --output=edit $file > "vale_output_${file//\//_}_edit.md"
41-
done
42-
echo "Vale outputs:"
43-
ls -l
44-
45-
- name: Apply Vale edits and save originals
46-
run: |
47-
mkdir -p original_files
48-
mkdir -p corrected_files
49-
for file in ${{ env.CHANGED_FILES }}; do
50-
echo "Copying $file to original_files/${file//\//_}.original"
51-
cp "$file" "original_files/${file//\//_}.original"
52-
echo "Copying vale_output_${file//\//_}_edit.md to corrected_files/${file//\//_}"
53-
cp "vale_output_${file//\//_}_edit.md" "corrected_files/${file//\//_}"
54-
done
55-
echo "Original files:"
56-
ls -l original_files
57-
echo "Corrected files:"
58-
ls -l corrected_files
59-
env:
60-
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.REVIEWDOG_GITHUB_API_TOKEN }}
61-
62-
- name: Upload original files
63-
uses: actions/upload-artifact@v3
64-
with:
65-
name: original-files
66-
path: original_files/
67-
68-
- name: Upload corrected files
69-
uses: actions/upload-artifact@v3
70-
with:
71-
name: corrected-files
72-
path: corrected_files/
73-
74-
suggest: # Reviewdog suggestion job
75-
runs-on: ubuntu-latest
76-
needs: vale # This ensures the suggest job runs after the vale job
77-
78-
steps:
79-
- name: Checkout code
80-
uses: actions/checkout@v3
81-
82-
- name: Download original files
83-
uses: actions/download-artifact@v3
84-
with:
85-
name: original-files
86-
87-
- name: Download corrected files
88-
uses: actions/download-artifact@v3
89-
with:
90-
name: corrected-files
91-
92-
- name: List downloaded files
93-
run: |
94-
echo "Original files:"
95-
ls -l original_files
96-
echo "Corrected files:"
97-
ls -l corrected_files
98-
99-
- name: Run Reviewdog Suggestion Action
100-
uses: reviewdog/action-suggester@v1
101-
with:
102-
github_token: ${{ secrets.REVIEWDOG_GITHUB_API_TOKEN }}
103-
tool_name: Vale
104-
level: "warning"
105-
filter_mode: "diff_context"
106-
fail_on_error: "false"
107-
reviewdog_flags: ""
108-
cleanup: "true"
109-
110-
- name: Run Reviewdog with corrected files
111-
run: |
112-
for file in original_files/*.original; do
113-
original="$file"
114-
corrected="corrected_files/$(basename "$file" .original)"
115-
diff_output=$(diff -u "$original" "$corrected")
116-
if [[ -n "$diff_output" ]]; then
117-
echo "$diff_output" | reviewdog -f=diff -name="Vale" -reporter=github-pr-review -level=warning -filter-mode=nofilter
118-
fi
119-
done
120-
env:
121-
REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.REVIEWDOG_GITHUB_API_TOKEN }}
13+
- name: Checkout code
14+
uses: actions/checkout@v2
15+
16+
- name: Set up Vale
17+
run: |
18+
curl -sfL https://install.goreleaser.com/github.com/errata-ai/vale.sh | sh -s -- -b $HOME/.local/bin
19+
echo "$HOME/.local/bin" >> $GITHUB_PATH
20+
21+
- name: Run Vale
22+
run: |
23+
vale --output=JSON . > vale_output.json
24+
25+
- name: Install jq
26+
run: sudo apt-get install -y jq
27+
28+
- name: Process Vale Output for Reviewdog
29+
run: |
30+
jq -c '.[] | {file: .Path, line: .Line, column: .Span[0], message: .Message, suggestion: .Suggestions[0], severity: .Severity}' vale_output.json > rdjson_output.jsonl
31+
32+
- name: Reviewdog - Report results and Suggest changes
33+
uses: reviewdog/action-suggester@v1
34+
with:
35+
tool_name: vale
36+
level: warning
37+
reporter: github-pr-review
38+
filter_mode: added
39+
fail_on_error: true
40+
input_file: rdjson_output.jsonl
41+
github_token: ${{ secrets.REVIEWDOG_GITHUB_API_TOKEN }}

0 commit comments

Comments
 (0)