1+ name : update_command_pages
2+
3+ on :
4+ push :
5+ branches : ['main']
6+ paths :
7+ - data/commands_core.json # run when data/commands_core.json is updated on main
8+ workflow_dispatch : # or run on manual trigger
9+
10+ jobs :
11+ update_command_pages :
12+ runs-on : ubuntu-latest
13+ permissions :
14+ contents : write
15+ pull-requests : write
16+ actions : write
17+ steps :
18+ - name : ' Checkout'
19+ uses : ' actions/checkout@v3'
20+
21+ - name : Install dependencies
22+ run : make deps
23+
24+ - name : ' Run build/update_cmds.py script'
25+ env :
26+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
27+ run : |
28+ branch="update_command_pages"
29+ commands_change=false
30+
31+ # check if remote branch already exists
32+ git fetch --all
33+ set +e
34+ git ls-remote --exit-code --heads origin "refs/heads/${branch}"
35+ if [ "$?" -eq 0 ]; then
36+ set -e
37+ # if it does, create local branch off existing remote branch
38+ git checkout -b "${branch}" "origin/${branch}"
39+ git branch --set-upstream-to="origin/${branch}" "${branch}"
40+ git pull
41+ else
42+ set -e
43+ # otherwise, create local branch from main
44+ git checkout -b "${branch}"
45+ fi
46+
47+ python3 build/update_cmds.py
48+
49+ commands_are_different=$(git diff "content/commands/")
50+
51+ if [[ ! -z $commands_are_different ]]; then
52+ commands_change=true
53+
54+ git add "content/commands/"
55+ git config user.email "177626021+redisdocsapp[bot]@users.noreply.github.com"
56+ git config user.name "redisdocsapp[bot]"
57+ git commit -m "Update content/commands/"
58+ fi
59+
60+ if [ "$commands_change" = true ] ; then
61+ git push origin "${branch}"
62+
63+ # If a pr is not already open, create one
64+ set +e
65+ gh search prs -R redis/docs --state open --match title "update command pages" | grep -q "update command pages"
66+ if [ "$?" -eq 1 ]; then
67+ set -e
68+ gh pr create \
69+ --body "update command pages" \
70+ --title "update command pages" \
71+ --head "$branch" \
72+ --base "main"
73+ fi
74+ fi
0 commit comments