1- run-name : build ${{ github.event.inputs.reference }}
1+ run-name : build ${{ github.event.inputs.repository }}:${{ github.event.inputs. reference }}
22on :
33 workflow_dispatch :
44 inputs :
55 reference :
66 description : ' Commit reference from CPython repository'
77 required : true
88 default : ' 3.14'
9+ dist_version :
10+ description : ' Dist version (compatible with patchlevel.py output)'
11+ required : true
12+ default : ' 3.14'
13+ repository :
14+ description : ' Repository to checkout'
15+ required : false
16+ default : ' python/cpython'
17+ publish :
18+ description : ' Publish to GitHub Pages'
19+ required : false
20+ default : false
921permissions :
1022 contents : write
1123jobs :
@@ -17,12 +29,12 @@ jobs:
1729 python-version : 3
1830 - uses : actions/checkout@master
1931 with :
20- repository : python/cpython
32+ repository : ${{ github.event.inputs.repository }}
2133 ref : ${{ github.event.inputs.reference }}
2234 - run : make venv
2335 working-directory : ./Doc
2436 - run : sudo apt-get update
25- - run : sudo apt-get install -y latexmk texlive-xetex fonts-freefont-otf xindy texinfo
37+ - run : sudo apt-get install -y latexmk texlive-xetex fonts-freefont-otf xindy texinfo librsvg2-bin
2638 - run : make dist-html
2739 id : build-html
2840 working-directory : ./Doc
@@ -45,87 +57,96 @@ jobs:
4557 continue-on-error : true
4658 - uses : actions/upload-artifact@master
4759 with :
48- name : ${{ github.event.inputs.reference }}-docs-pdf-a4.zip
49- path : ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-pdf-a4.zip
60+ name : pdf-logs.zip
61+ path : |
62+ ./Doc/build/latex/*.log
63+ ./Doc/build/latex/*.tex
64+ - uses : actions/upload-artifact@master
65+ with :
66+ name : docs-pdf-a4.zip
67+ path : ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-pdf-a4.zip
5068 if-no-files-found : ignore
5169 - uses : actions/upload-artifact@master
5270 with :
53- name : ${{ github.event.inputs.reference }}- docs-pdf-a4.tar.bz2
54- path : ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-pdf-a4.tar.bz2
71+ name : docs-pdf-a4.tar.bz2
72+ path : ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-pdf-a4.tar.bz2
5573 if-no-files-found : ignore
5674 - uses : actions/upload-artifact@master
5775 with :
58- name : ${{ github.event.inputs.reference }}- docs-html.zip
59- path : ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-html.zip
76+ name : docs-html.zip
77+ path : ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-html.zip
6078 if-no-files-found : ignore
6179 - uses : actions/upload-artifact@master
6280 with :
63- name : ${{ github.event.inputs.reference }}- docs-html.tar.bz2
64- path : ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-html.tar.bz2
81+ name : docs-html.tar.bz2
82+ path : ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-html.tar.bz2
6583 if-no-files-found : ignore
6684 - uses : actions/upload-artifact@master
6785 with :
68- name : ${{ github.event.inputs.reference }}- docs-text.zip
69- path : ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-text.zip
86+ name : docs-text.zip
87+ path : ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-text.zip
7088 if-no-files-found : ignore
7189 - uses : actions/upload-artifact@master
7290 with :
73- name : ${{ github.event.inputs.reference }}- docs-text.tar.bz2
74- path : ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-text.tar.bz2
91+ name : docs-text.tar.bz2
92+ path : ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-text.tar.bz2
7593 if-no-files-found : ignore
7694 - uses : actions/upload-artifact@master
7795 with :
78- name : ${{ github.event.inputs.reference }}- docs-texinfo.zip
79- path : ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-texinfo.zip
96+ name : docs-texinfo.zip
97+ path : ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-texinfo.zip
8098 if-no-files-found : ignore
8199 - uses : actions/upload-artifact@master
82100 with :
83- name : ${{ github.event.inputs.reference }}- docs-texinfo.tar.bz2
84- path : ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-texinfo.tar.bz2
101+ name : docs-texinfo.tar.bz2
102+ path : ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-texinfo.tar.bz2
85103 if-no-files-found : ignore
86104 - uses : actions/upload-artifact@master
87105 with :
88- name : ${{ github.event.inputs.reference }}- docs.epub
89- path : ./Doc/dist/python-${{ github.event.inputs.reference }}-docs.epub
106+ name : docs.epub
107+ path : ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs.epub
90108 if-no-files-found : ignore
91109 - name : Checkout gh-pages branch
110+ if : ${{ github.event.inputs.publish == 'true' }}
92111 uses : actions/checkout@v4
93112 with :
94113 ref : gh-pages
95114 path : gh-pages
96115 - name : Copy generated archives to gh-pages
116+ if : ${{ github.event.inputs.publish == 'true' }}
97117 run : |
98118 mkdir -p gh-pages/3
99119 # PDF
100- cp ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-pdf-a4.zip gh-pages/3/python-${{ github.event.inputs.reference }}-docs-pdf-a4.zip 2>/dev/null || true
101- cp ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-pdf-a4.tar.bz2 gh-pages/3/python-${{ github.event.inputs.reference }}-docs-pdf-a4.tar.bz2 2>/dev/null || true
120+ cp ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-pdf-a4.zip gh-pages/3/python-${{ github.event.inputs.dist_version }}-docs-pdf-a4.zip 2>/dev/null || true
121+ cp ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-pdf-a4.tar.bz2 gh-pages/3/python-${{ github.event.inputs.dist_version }}-docs-pdf-a4.tar.bz2 2>/dev/null || true
102122 # HTML
103- cp ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-html.zip gh-pages/3/python-${{ github.event.inputs.reference }}-docs-html.zip 2>/dev/null || true
104- cp ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-html.tar.bz2 gh-pages/3/python-${{ github.event.inputs.reference }}-docs-html.tar.bz2 2>/dev/null || true
123+ cp ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-html.zip gh-pages/3/python-${{ github.event.inputs.dist_version }}-docs-html.zip 2>/dev/null || true
124+ cp ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-html.tar.bz2 gh-pages/3/python-${{ github.event.inputs.dist_version }}-docs-html.tar.bz2 2>/dev/null || true
105125 # Text
106- cp ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-text.zip gh-pages/3/python-${{ github.event.inputs.reference }}-docs-text.zip 2>/dev/null || true
107- cp ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-text.tar.bz2 gh-pages/3/python-${{ github.event.inputs.reference }}-docs-text.tar.bz2 2>/dev/null || true
126+ cp ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-text.zip gh-pages/3/python-${{ github.event.inputs.dist_version }}-docs-text.zip 2>/dev/null || true
127+ cp ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-text.tar.bz2 gh-pages/3/python-${{ github.event.inputs.dist_version }}-docs-text.tar.bz2 2>/dev/null || true
108128 # Texinfo
109- cp ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-texinfo.zip gh-pages/3/python-${{ github.event.inputs.reference }}-docs-texinfo.zip 2>/dev/null || true
110- cp ./Doc/dist/python-${{ github.event.inputs.reference }}-docs-texinfo.tar.bz2 gh-pages/3/python-${{ github.event.inputs.reference }}-docs-texinfo.tar.bz2 2>/dev/null || true
129+ cp ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-texinfo.zip gh-pages/3/python-${{ github.event.inputs.dist_version }}-docs-texinfo.zip 2>/dev/null || true
130+ cp ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs-texinfo.tar.bz2 gh-pages/3/python-${{ github.event.inputs.dist_version }}-docs-texinfo.tar.bz2 2>/dev/null || true
111131 # EPUB
112- cp ./Doc/dist/python-${{ github.event.inputs.reference }}-docs.epub gh-pages/3/python-${{ github.event.inputs.reference }}-docs.epub 2>/dev/null || true
132+ cp ./Doc/dist/python-${{ github.event.inputs.dist_version }}-docs.epub gh-pages/3/python-${{ github.event.inputs.dist_version }}-docs.epub 2>/dev/null || true
113133 - name : Commit generated archives
134+ if : ${{ github.event.inputs.publish == 'true' }}
114135 id : commit
115136 run : |
116137 cd gh-pages
117138 git config user.name github-actions
118139 git config user.email github-actions@github.com
119- git add 3/python-${{ github.event.inputs.reference }}-docs-* || true
140+ git add 3/python-${{ github.event.inputs.dist_version }}-docs-* || true
120141 if git diff --cached --quiet; then
121142 echo "No documentation archives to commit"
122143 echo "has_changes=false" >> $GITHUB_OUTPUT
123144 else
124- git commit -m "Update documentation archives for ${{ github.event.inputs.reference }}"
145+ git commit -m "Update documentation archives for ${{ github.event.inputs.dist_version }}"
125146 echo "has_changes=true" >> $GITHUB_OUTPUT
126147 fi
127148 - name : Push commit
128- if : steps.commit.outputs.has_changes == 'true'
149+ if : ${{ github.event.inputs.publish == 'true' && steps.commit.outputs.has_changes == 'true' }}
129150 uses : ad-m/github-push-action@master
130151 with :
131152 branch : gh-pages
0 commit comments