-
-
Notifications
You must be signed in to change notification settings - Fork 14
131 lines (126 loc) · 4.87 KB
/
Copy pathupdate-and-build.yml
File metadata and controls
131 lines (126 loc) · 4.87 KB
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
name: update and build
on:
schedule:
- cron: 0 * * * *
push:
branches: ['*']
workflow_dispatch:
permissions: {}
jobs:
update:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version: [3.15, 3.14, 3.13, 3.12, 3.11, '3.10']
permissions:
contents: write # commit and push
steps:
- uses: styfle/cancel-workflow-action@d07a454dad7609a92316b57b23c9ccfd4f59af66 # 0.13.1
with:
access_token: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: 3
- name: Install dependencies
run: |
sudo apt-get install -y gettext
pip install requests cogapp polib transifex-python sphinx-intl blurb six
curl -o- https://raw.githubusercontent.com/transifex/cli/master/install.sh | bash
working-directory: /usr/local/bin
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ matrix.version }}
fetch-depth: 0
persist-credentials: false
- name: Recreate Transifex config
run: ./manage_translation.py recreate_tx_config
env:
TX_TOKEN: ${{ secrets.TX_TOKEN }}
- name: Fetch translations
run: ./manage_translation.py fetch
env:
TX_TOKEN: ${{ secrets.TX_TOKEN }}
- name: Update README.md
run: python -Werror -m cogapp -rP README.md
if: ${{ hashFiles('README.md') != '' }}
env:
TX_TOKEN: ${{ secrets.TX_TOKEN }}
- name: Update README.en.md
run: python -Werror -m cogapp -rP README.en.md
if: ${{ hashFiles('README.en.md') != '' }}
env:
TX_TOKEN: ${{ secrets.TX_TOKEN }}
- run: git config --local user.email github-actions@github.com
- run: git config --local user.name "GitHub Action's update-translation job"
- name: Check changes significance
run: >
! git diff -I'^"POT-Creation-Date: ' -I'^"Language-Team: ' -I'^# ' -I'^"Last-Translator:
' -I'^"Project-Id-Version: ' --exit-code && echo "SIGNIFICANT_CHANGES=1" >> "$GITHUB_ENV"
|| exit 0
- run: git add .
- run: git commit -m "$(python manage_translation.py generate_commit_msg)"
if: env.SIGNIFICANT_CHANGES
- name: Push commit
uses: ad-m/github-push-action@881a6320fdb16eb5318c5054f31c218aec2b324c # v1.3.0
if: env.SIGNIFICANT_CHANGES && (github.event_name == 'schedule' || github.ref_name
== github.event.repository.default_branch)
with:
branch: ${{ matrix.version }}
github_token: ${{ secrets.GITHUB_TOKEN }}
build:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version: [3.15, 3.14, 3.13, 3.12, 3.11, '3.10']
format: [html, latex, epub]
needs: [update]
steps:
- uses: actions/setup-python@ece7cb06caefa5fff74198d8649806c4678c61a1 # v6.3.0
with:
python-version: 3.12 # pin for Sphinx 3.4.3 in 3.10 branch (see # 63)
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
repository: python/cpython
ref: ${{ matrix.version }}
persist-credentials: false
- run: make venv
working-directory: ./Doc
- uses: actions/checkout@9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0 # v7.0.0
with:
ref: ${{ matrix.version }}
path: Doc/locales/pl/LC_MESSAGES
persist-credentials: false
- run: git pull
working-directory: ./Doc/locales/pl/LC_MESSAGES
- run: sudo apt-get update && sudo apt-get install -y librsvg2-bin
if: ${{ matrix.format == 'latex' && fromJSON(matrix.version) >= 3.14 }}
- uses: sphinx-doc/github-problem-matcher@1f74d6599f4a5e89a20d3c99aab4e6a70f7bda0f # v1.1
- run: make -e SPHINXOPTS="--color -D language='pl'" ${{ matrix.format }}
working-directory: ./Doc
env:
SPHINXERRORHANDLING: ''
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
if: success() || failure()
with:
name: build-${{ matrix.version }}-${{ matrix.format }}
path: Doc/build/${{ matrix.format }}
output-pdf:
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
version: [3.15, 3.14, 3.13, 3.12, 3.11, '3.10']
needs: [build]
steps:
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
with:
name: build-${{ matrix.version }}-latex
- run: sudo apt-get update
- run: sudo apt-get install -y latexmk texlive-xetex fonts-freefont-otf xindy
- run: make
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
with:
name: build-${{ matrix.version }}-pdf
path: .