FazBrowse GitHub Viewer
|
Trending
|
URL:
|
Home
Tools:
[Download Repo ZIP]
[View Raw Code]
[Original HTTPS Page]
docs/.github/workflows/validate-github-github-docs-urls.yml at main · asmecher/docs · GitHub
asmecher
/
docs
Public
forked from
github/docs
Notifications
You must be signed in to change notification settings
Fork
0
Star
0
Code
Pull requests
0
Actions
Projects
Security and quality
0
Insights
Additional navigation options
Code
Pull requests
Actions
Projects
Security and quality
Insights
Expand file tree
Breadcrumbs
docs
/
.github
/
workflows
/
validate-github-github-docs-urls.yml
Copy path
View runs
More file actions
More file actions
Latest commit
History
History
History
136 lines (120 loc) · 5.68 KB
Breadcrumbs
docs
/
.github
/
workflows
/
validate-github-github-docs-urls.yml
Copy path
File metadata and controls
136 lines (120 loc) · 5.68 KB
Raw
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
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
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
name
:
Validate github/github docs URLs
#
**What it does**: Checks the URLs in docs-urls.json in github/github
#
**Why we have it**: To ensure the values in docs-urls.json are perfect.
#
**Who does it impact**: Docs content.
on
:
workflow_dispatch
:
schedule
:
-
cron
:
'
20 16 * * 1
'
#
Run every Monday at 16:20 UTC / 8:20 PST
pull_request
:
paths
:
-
'
content/**
'
#
In case a relevant dependency changes
-
'
package*.json
'
#
The scripts
-
'
src/links/scripts/validate-github-github-docs-urls/**
'
#
The workflow
-
.github/workflows/validate-github-github-docs-urls.yml
permissions
:
contents
:
read
issues
:
write
pull-requests
:
write
concurrency
:
group
:
${{ github.workflow }}-${{ github.ref }}
cancel-in-progress
:
true
jobs
:
validate_github_github_docs_urls
:
name
:
Validate github/github docs URLs
if
:
github.repository == 'github/docs-internal'
runs-on
:
ubuntu-20.04-xl
steps
:
-
name
:
Check out repo's default branch
uses
:
actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
#
v4.1.1
with
:
#
Picking this number is a "best guess". If we make it too large,
#
the checkout will take potentially unnecessariily long.
#
This reduces the chance that tj-actions/changed-files has to
#
fetch deeper history. But if it needs to, it will.
fetch-depth
:
10
-
uses
:
./.github/actions/node-npm-setup
-
uses
:
actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11
#
v4.1.1
with
:
token
:
${{ secrets.DOCS_BOT_PAT_READPUBLICKEY }}
repository
:
github/github
ref
:
master
path
:
github
-
name
:
Run validation
run
:
|
# This will generate a .json file which we can use to
# do other things in other steps.
npm run validate-github-github-docs-urls -- validate \
--output checks.json \
github/config/docs-urls.json
-
name
:
Update config/docs-urls.json in github/github (possibly)
if
:
${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
env
:
GITHUB_TOKEN
:
${{ secrets.DOCS_BOT_PAT_WRITEORG_PROJECT }}
run
:
|
npm run validate-github-github-docs-urls -- generate-new-json checks.json github/config/docs-urls.json
cd github
git status
git diff
changes=$(git diff --name-only | wc -l)
if [[ $changes -eq 0 ]]; then
echo "There are no changes to commit after running generate-new-json. Exiting this step"
exit 0
fi
current_timestamp=$(date '+%Y-%m-%d-%H%M%S')
branch_name="update-docs-urls-$current_timestamp"
git checkout -b "$branch_name"
current_daystamp=$(date '+%Y-%m-%d')
git commit -a -m "Update Docs URLs from automation ($current_daystamp)"
git push origin "$branch_name"
# XXX TODO
# Perhaps post an issue somewhere, about that the fact that this
# branch has been created and now needs to be turned into a PR
# that some human can take responsibility for.
-
name
:
Clean up old branches in github/github
if
:
${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' }}
env
:
GITHUB_TOKEN
:
${{ secrets.DOCS_BOT_PAT_WRITEORG_PROJECT }}
run
:
|
npm run validate-github-github-docs-urls -- clean-up-old-branches --prefix update-docs-urls
echo "To see them all, go to:"
echo "https://github.com/github/github/branches/all?query=update-docs-urls-"
#
If a PR comes along to github/docs-internal that causes some
#
URLs in docs-urls.json (in github/github) to now fail, then
#
we'll want to make the PR author+reviewer aware of this.
#
For example, you moved a page without setting up a redirect.
#
Or you edited a heading that now breaks a URL with fragment.
#
In the latter case, you might want to update the URL in docs-urls.json
#
after this PR has landed, or consider using `<a name="..."></a>` as a
#
workaround for the time being.
#
First, gather the URLs that were relevant
-
name
:
Get changed content/data files
if
:
${{ github.event_name == 'pull_request' }}
id
:
changed-files
uses
:
tj-actions/changed-files@40853de9f8ce2d6cfdc73c1b96f14e22ba44aec4
#
v45.0.0
with
:
#
No need to escape the file names because we make the output of
#
tj-actions/changed-files be set as an environment variable. Not
#
as a direct input to the line of bash that uses it.
safe_output
:
false
files
:
|
content/**
-
name
:
Generate PR comment
if
:
${{ github.event_name == 'pull_request' && steps.changed-files.outputs.any_changed == 'true' }}
env
:
#
Make it an environment variable so that its value doesn't need to be escaped.
#
See https://docs.github.com/en/actions/security-guides/security-hardening-for-github-actions#using-an-intermediate-environment-variable
CHANGED_FILES
:
|-
${{ steps.changed-files.outputs.all_changed_files }}
GITHUB_TOKEN
:
${{ secrets.DOCS_BOT_PAT_WRITEORG_PROJECT }}
ISSUE_NUMBER
:
${{ github.event.pull_request.number }}
REPOSITORY
:
${{ github.repository }}
run
:
npm run validate-github-github-docs-urls -- post-pr-comment checks.json --changed-files $CHANGED_FILES
-
uses
:
./.github/actions/slack-alert
if
:
${{ failure() && github.event_name == 'schedule' }}
with
:
slack_channel_id
:
${{ secrets.DOCS_ALERTS_SLACK_CHANNEL_ID }}
slack_token
:
${{ secrets.SLACK_DOCS_BOT_TOKEN }}
Back
|
FazBrowse Home
|
New Git URL