|
7 | 7 | steps: |
8 | 8 | - name: Checkout repository |
9 | 9 | uses: actions/checkout@v6 |
| 10 | + with: |
| 11 | + fetch-depth: 0 |
| 12 | + - name: Get changed files |
| 13 | + id: changed |
| 14 | + run: | |
| 15 | + FILES=$(git diff --name-only --diff-filter=d ${{ github.event.pull_request.base.sha }}...${{ github.event.pull_request.head.sha }} -- '*.md' '*.mdx') |
| 16 | + if [ -z "$FILES" ]; then |
| 17 | + echo "skip=true" >> "$GITHUB_OUTPUT" |
| 18 | + echo 'files=all' >> "$GITHUB_OUTPUT" |
| 19 | + else |
| 20 | + echo "skip=false" >> "$GITHUB_OUTPUT" |
| 21 | + JSON=$(echo "$FILES" | jq -R -s -c 'split("\n") | map(select(. != ""))') |
| 22 | + echo "files=$JSON" >> "$GITHUB_OUTPUT" |
| 23 | + fi |
10 | 24 | - name: Enable Corepack |
| 25 | + if: steps.changed.outputs.skip == 'false' |
11 | 26 | run: corepack enable |
12 | 27 | - name: Setup Node.js with Yarn |
| 28 | + if: steps.changed.outputs.skip == 'false' |
13 | 29 | uses: actions/setup-node@v6 |
14 | 30 | with: |
15 | 31 | node-version: '22' |
16 | 32 | cache: yarn |
17 | 33 | - name: Install dependencies |
| 34 | + if: steps.changed.outputs.skip == 'false' |
18 | 35 | run: yarn install --immutable |
19 | 36 | - name: Install mdx2vast globally |
| 37 | + if: steps.changed.outputs.skip == 'false' |
20 | 38 | run: npm install -g mdx2vast |
21 | 39 | - name: Swap stuff |
| 40 | + if: steps.changed.outputs.skip == 'false' |
22 | 41 | run: | |
23 | 42 | sudo apt-get install ripgrep |
24 | | - rg -l0 '\$\[[^\]]*\]' -g '*.mdx' -g '*.md' . | xargs -0 perl -i -pe 's/\$\[[^\]]*\]/PICKLEVAR/g' |
| 43 | + FILES=$(echo '${{ steps.changed.outputs.files }}' | jq -r '.[]' | tr '\n' ' ') |
| 44 | + if [ -n "$FILES" ]; then |
| 45 | + rg -l0 '\$\[[^\]]*\]' -- $FILES | xargs -0 perl -i -pe 's/\$\[[^\]]*\]/PICKLEVAR/g' || true |
| 46 | + fi |
25 | 47 | - name: Run Vale with Reviewdog |
| 48 | + if: steps.changed.outputs.skip == 'false' |
26 | 49 | uses: errata-ai/vale-action@reviewdog |
27 | 50 | with: |
| 51 | + files: ${{ steps.changed.outputs.files }} |
28 | 52 | fail_on_error: false |
0 commit comments