Skip to content

Commit 4357674

Browse files
committed
go back
1 parent edf7c0e commit 4357674

File tree

1 file changed

+14
-82
lines changed

1 file changed

+14
-82
lines changed

.github/workflows/add-redirects.yml

Lines changed: 14 additions & 82 deletions
Original file line numberDiff line numberDiff line change
@@ -1,131 +1,63 @@
1-
name: Verify Redirects
2-
1+
name: Add Redirects
32
on:
43
pull_request_target:
5-
64
jobs:
7-
verify-redirects:
8-
name: Verifying Redirects
5+
add-redirects:
6+
name: Get Redirects for Modified Files
97
runs-on: ubuntu-latest
10-
env:
11-
REDIRECTS_FILE: "config/redirects"
128
permissions:
139
pull-requests: write
1410
steps:
15-
- name: Check Out Base Branch
16-
uses: actions/checkout@v4
17-
11+
- uses: actions/checkout@v4
1812
- name: Get Changed Files
1913
id: changed-files
2014
uses: tj-actions/changed-files@c65cd883420fd2eb864698a825fc4162dd94482c
2115
with:
2216
include_all_old_new_renamed_files: true
23-
24-
- name: Find Missing Redirects for Renamed Files
17+
- name: Make Redirects for Renamed Files
2518
id: renamed-files
2619
if: steps.changed-files.outputs.renamed_files_count > 0
2720
env:
2821
RENAMED_FILES: ${{ steps.changed-files.outputs.all_old_new_renamed_files }}
2922
run: |
30-
renamed_redirects=()
23+
renamed_redirects=""
3124
for file in $RENAMED_FILES; do
32-
33-
# only run for .txt files
3425
if [[ ! "$file" == *.txt ]]; then
3526
continue
3627
fi
37-
38-
# format old and new URLs
3928
old=$(echo "$file" | cut -d',' -f1)
4029
old="${old#source}"
4130
old="${old%.txt}"
4231
new=$(echo "$file" | cut -d',' -f2)
4332
new="${new#source}"
4433
new="${new%.txt}"
45-
46-
# single quotes = ${var} rendered literally; double quotes = $var interpreted
47-
renamed_redirect='${prefix}/${version}'"$old"'/ -> ${base}/${version}'"$new"'/'
48-
49-
# if redirect not already in file, add to array to add to PR description
50-
if ! grep -q "$renamed_redirect" $REDIRECTS_FILE; then
51-
renamed_redirects+=("$renamed_redirect")
52-
fi
34+
#single quotes = ${var} rendered literally; double quotes = $var interpreted
35+
renamed_redirects+='<li>[&lt;v&gt;-*]: ${prefix}/${version}'"$old"'/ -> ${base}/${version}'"$new"'/</li>'
5336
done
5437
echo "redirects=${renamed_redirects}" >> "$GITHUB_OUTPUT"
55-
56-
- name: Find Missing Redirects for Deleted Files
38+
- name: Make Redirects for Deleted Files
5739
id: deleted-files
5840
if: steps.changed-files.outputs.deleted_files_count > 0
5941
env:
6042
DELETED_FILES: ${{ steps.changed-files.outputs.deleted_files }}
6143
run: |
62-
deleted_redirects=()
44+
deleted_redirects=""
6345
for file in $DELETED_FILES; do
64-
65-
# only run for .txt files
6646
if [[ ! "$file" == *.txt ]]; then
6747
continue
6848
fi
69-
70-
# format old URL
7149
old=$(echo "$file" | cut -d',' -f1)
7250
old="${old#source}"
7351
old="${old%.txt}"
74-
75-
# single quotes = ${var} rendered literally; double quotes = $var interpreted
76-
deleted_redirect='${prefix}/${version}'"$old"'/ -> ${base}/${version}/'
77-
78-
# if redirect not already in file, add to array to add to PR description
79-
if ! grep -q "$deleted_redirect" $REDIRECTS_FILE; then
80-
deleted_redirects+=("$deleted_redirect")
81-
fi
82-
52+
deleted_redirects+='<li>[&lt;v&gt;-*]: ${prefix}/${version}'"$old"'/ -> ${base}/${version}/</li>'
8353
done
8454
echo "redirects=${deleted_redirects}" >> "$GITHUB_OUTPUT"
85-
86-
- name: Build Redirect HTML
87-
id: build-redirect-html
88-
env:
89-
RENAMED_REDIRECTS: ${{ steps.renamed-files.outputs.redirects }}
90-
DELETED_REDIRECTS: ${{ steps.deleted-files.outputs.redirects }}
91-
run: |
92-
# empty string that stays empty if there are no redirects to suggest
93-
redirect_html=""
94-
95-
for renamed_redirect in "${RENAMED_REDIRECTS[@]}"; do
96-
redirect_html+="<li>[&lt;v&gt;-*]: $renamed_redirect</li>"
97-
done
98-
99-
for deleted_redirect in "${DELETED_REDIRECTS[@]}"; do
100-
redirect_html+="<li>[&lt;v&gt;-*]: $deleted_redirect</li>"
101-
done
102-
103-
echo "redirect_html=${redirect_html}" >> "$GITHUB_OUTPUT"
104-
10555
- name: Update PR Description
106-
if: steps.build-redirect-html.outputs.redirect_html
56+
if: steps.changed-files.outputs.renamed_files_count > 0 || steps.changed-files.outputs.deleted_files_count > 0
10757
uses: MongoCaleb/pr-description-action@4bdfe35b98f64532b419ad20b350a92546cd3aa1
108-
env:
109-
REDIRECT_HTML: ${{ steps.build-redirect-html.outputs.redirect_html }}
11058
with:
11159
regex: "- \\[ \\] Did you add redirects\\?.*"
11260
appendContentOnMatchOnly: false
11361
regexFlags: is
114-
content: "- [ ] Did you add redirects?\n *Suggested redirects for moved/deleted files (replace &lt;v&gt; with earliest backport target version):*\n${{ steps.build-redirect-html.outputs.redirect_html }}\n"
115-
token: ${{ secrets.GITHUB_TOKEN }}
116-
117-
- name: Check for duplicates in redirects file
118-
run: |
119-
# Specify the file to check
120-
file="$REDIRECTS_FILE"
121-
122-
if [[ -f "$file" ]]; then
123-
duplicates=$(sort "$file" | uniq -d)
124-
if [[ -n "$duplicates" ]]; then
125-
echo "Duplicate lines found in $file:"
126-
echo "$duplicates"
127-
exit 1 # error
128-
fi
129-
else
130-
echo "File $file does not exist. Skipping duplicate check."
131-
fi
62+
content: "- [ ] Did you add redirects?\n *Suggested redirects for moved/deleted files (replace &lt;v&gt; with earliest backport target version):*\n${{ steps.renamed-files.outputs.redirects }}${{ steps.deleted-files.outputs.redirects }}\n"
63+
token: ${{ secrets.GITHUB_TOKEN }}

0 commit comments

Comments
 (0)