@@ -3,227 +3,89 @@ name: Update Documentation
33on :
44 workflow_dispatch :
55 inputs :
6- tag :
7- description : Release tag (e.g. selenium- 4.21.0)
6+ version :
7+ description : Release version (e.g., 4.21.0)
88 required : true
99 type : string
10+ language :
11+ description : language documentation
12+ required : true
13+ type : choice
14+ default : " all"
15+ options :
16+ - java
17+ - rb
18+ - py
19+ - dotnet
20+ - node
21+ - all
1022
1123 workflow_call :
1224 inputs :
13- tag :
25+ version :
26+ required : true
27+ type : string
28+ sha :
1429 required : true
1530 type : string
31+ language :
32+ required : false
33+ type : string
34+ default : " all"
1635
1736env :
1837 GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
1938
2039jobs :
21- determine-language :
22- runs-on : ubuntu-latest
23- outputs :
24- language : ${{ steps.get-language.outputs.language }}
25- steps :
26- - name : Parse language from tag
27- id : get-language
28- run : |
29- tag=${{ inputs.tag }}
30- language=$(echo $tag | awk -F'-' '{print $NF}')
31- if [[ ! "$language" =~ ^(java|ruby|python|dotnet|node)$ ]]; then
32- language="all"
33- fi
34- echo "language=$language" > $GITHUB_OUTPUT
35-
36- java-docs :
37- runs-on : ubuntu-latest
38- needs : determine-language
39- steps :
40- - name : Checkout the tag
41- uses : actions/checkout@v4
42- with :
43- ref : ${{ inputs.tag }}
44- - name : Prep git
45- run : |
46- git config --local user.email "[email protected] " 47- git config --local user.name "Selenium CI Bot"
48- - name : Setup Java
49- uses : actions/setup-java@v4
50- with :
51- java-version : 17
52- distribution : ' temurin'
53- - name : Update Documentation
54- if : needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'java'
55- run : ./go java:docs
56- - name : Create patch for changes
57- run : |
58- git format-patch -1 HEAD --stdout > java-docs.patch
59- - name : Upload patch
60- if : needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'java'
61- uses : actions/upload-artifact@v4
62- with :
63- name : java-docs-patch
64- path : java-docs.patch
65-
66- ruby-docs :
40+ build-docs :
6741 runs-on : ubuntu-latest
68- needs : determine-language
6942 steps :
70- - name : Checkout the tag
43+ - name : Checkout repository
7144 uses : actions/checkout@v4
7245 with :
73- ref : ${{ inputs.tag }}
74- - name : Prep git
46+ ref : ${{ github.event_name == 'workflow_dispatch' && github.ref || inputs.sha }}
47+ - name : Fetch gh-pages branch
48+ run : git fetch origin gh-pages
49+ - name : Setup git
7550 run : |
7651 git config --local user.email "[email protected] " 7752 git config --local user.name "Selenium CI Bot"
53+ - name : Setup curl for Ubuntu
54+ run : sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
7855 - name : Setup Java
7956 uses : actions/setup-java@v4
8057 with :
8158 java-version : 17
8259 distribution : ' temurin'
83- - name : Setup curl for Ubuntu
84- run : sudo apt-get update && sudo apt-get install -y libcurl4-openssl-dev
85- - name : Update Documentation
86- if : needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'ruby'
87- run : ./go rb:docs
88- - name : Create patch for changes
89- run : |
90- git format-patch -1 HEAD --stdout > ruby-docs.patch
91- - name : Upload patch
92- if : needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'ruby'
93- uses : actions/upload-artifact@v4
94- with :
95- name : ruby-docs-patch
96- path : ruby-docs.patch
97-
98- python-docs :
99- needs : determine-language
100- runs-on : ubuntu-latest
101- steps :
102- - name : Checkout the tag
103- uses : actions/checkout@v4
104- with :
105- ref : ${{ inputs.tag }}
106- - name : Prep git
107- run : |
108- git config --local user.email "[email protected] " 109- git config --local user.name "Selenium CI Bot"
11060 - name : Set up Python 3.9
61+ if : ${{ inputs.language == 'all' || inputs.language == 'py' }}
11162 uses : actions/setup-python@v5
11263 with :
11364 python-version : 3.9
11465 - name : Install dependencies
66+ if : ${{ inputs.language == 'all' || inputs.language == 'py' }}
11567 run : |
11668 python -m pip install --upgrade pip
11769 pip install tox
118- - name : Update Documentation
119- if : needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'python'
120- run : ./go py:docs
121- - name : Create patch for changes
122- run : |
123- git format-patch -1 HEAD --stdout > python-docs.patch
124- - name : Upload patch
125- if : needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'python'
126- uses : actions/upload-artifact@v4
127- with :
128- name : python-docs-patch
129- path : python-docs.patch
130-
131- dotnet-docs :
132- needs : determine-language
133- runs-on : ubuntu-latest
134- steps :
135- - name : Checkout the tag
136- uses : actions/checkout@v4
137- with :
138- ref : ${{ inputs.tag }}
139- - name : Prep git
140- run : |
141- git config --local user.email "[email protected] " 142- git config --local user.name "Selenium CI Bot"
143- - name : Update Documentation
144- if : needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'dotnet'
145- run : ./go dotnet:docs
146- - name : Create patch for changes
147- run : |
148- git format-patch -1 HEAD --stdout > dotnet-docs.patch
149- - name : Upload patch
150- if : needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'dotnet'
151- uses : actions/upload-artifact@v4
152- with :
153- name : dotnet-docs-patch
154- path : dotnet-docs.patch
155-
156- node-docs :
157- needs : determine-language
158- runs-on : ubuntu-latest
159- steps :
160- - name : Checkout the tag
161- uses : actions/checkout@v4
162- with :
163- ref : ${{ inputs.tag }}
164- - name : Prep git
165- run : |
166- git config --local user.email "[email protected] " 167- git config --local user.name "Selenium CI Bot"
16870 - name : Install npm dependencies
71+ if : ${{ inputs.language == 'all' || inputs.language == 'node' }}
16972 run : |
17073 npm install
17174 npm install --prefix javascript/node/selenium-webdriver
17275 - name : Update Documentation
173- if : needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'node'
174- run : ./go node:docs
175- - name : Create patch for changes
176- run : |
177- git format-patch -1 HEAD --stdout > node-docs.patch
178- - name : Upload patch
179- if : needs.determine-language.outputs.language == 'all' || needs.determine-language.outputs.language == 'node'
180- uses : actions/upload-artifact@v4
181- with :
182- name : node-docs-patch
183- path : node-docs.patch
76+ run : ./go ${{ inputs.language }}:docs
18477
185- merge-patches :
186- runs-on : ubuntu-latest
187- needs : [java-docs, ruby-docs, python-docs, dotnet-docs, node-docs]
188- steps :
189- - name : Checkout documentation branch
190- uses : actions/checkout@v4
191- with :
192- ref : ' gh-pages'
193- fetch-depth : 0
194- fetch-tags : true
195- - name : Create and checkout new branch
196- run : |
197- git config --local user.email "[email protected] " 198- git config --local user.name "Selenium CI Bot"
199- git checkout -b api-docs-${{ inputs.tag }}
200- - name : Download all patches
201- uses : actions/download-artifact@v4
202- with :
203- path : patches/
204- merge-multiple : true
205- - name : Show downloaded patches
206- run : ls -lah patches/
207- - name : Apply patches
208- run : |
209- for patch in patches/*.patch; do
210- git am < "$patch"
211- done
212- rm -rf patches/
213- - name : Push Branch
214- run : git push origin api-docs-${{ inputs.tag }}
21578 - name : Documentation Pull Request
21679 uses : peter-evans/create-pull-request@v6
21780 with :
21881 token : ${{ secrets.SELENIUM_CI_TOKEN }}
21982 author :
Selenium CI Bot <[email protected] > 22083 delete-branch : true
221- branch : api-docs-${{ inputs.tag }}
84+ branch : api-docs-${{ inputs.version }}-${{ inputs.language }}
22285 base : gh-pages
223- title : Update documentation for ${{ inputs.tag }}
86+ title : Update documentation for Selenium ${{ inputs.version }} (${{ inputs.language }})
22487 body : |
225- This PR updates the API documentation for all bindings
226- based on the provided tag name.
88+ This PR updates the API documentation for **${{ inputs.language }}** language bindings to version **${{ inputs.version }}**.
22789
22890 - Auto-generated by [create-pull-request][1]
22991
0 commit comments