-
Notifications
You must be signed in to change notification settings - Fork 384
95 lines (88 loc) · 3.62 KB
/
main.yml
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
name: Test
on:
push:
branches:
- 3.*
pull_request:
permissions:
contents: read
jobs:
test:
name: Test
runs-on: ubuntu-22.04
steps:
# Obtención del código
- uses: actions/checkout@v4
with:
submodules: 'true'
# Necesario para que tj-actions/changed-files se ejecute
# dentro de un tiempo adecuado
fetch-depth: 2
# Instalación de dependencias
- name: Preparar Python v3.13
uses: actions/setup-python@v5
with:
python-version: "3.13"
cache: "pip"
- name: Configura dpkg/apt para ejecutarse de manera eficiente
uses: abbbi/github-actions-tune@v1
- name: Deshabilita triggers de postgresql-common
run: sudo sed -i '/postgresql-common/d' /var/lib/dpkg/triggers/File
- name: Instalar dependencias de sistema
run: |
sudo apt-get update
sudo apt-get install -y hunspell hunspell-es gettext language-pack-es locales-all
- name: Instalar dependencias de Python
run: |
python -m pip install -r requirements.txt
- name: Listar paquetes y versiones
run: |
pip list
pospell --version
powrap --version
# Cálculo de los archivos .po a verificar.
# En el caso de un PR, sólo se chequean los .po que se están editando,
# mientras que en caseo de un push a las ramas 3.* queremos revisar
# todos los archivos
- name: Obtiene la lista de archivos .po con cambios (sólo en PRs)
if: github.event_name == 'pull_request'
id: changed-po-files
uses: tj-actions/changed-files@v45
with:
files: |
**/*.po
- name: Calcula lista de archivos .po a revisar
id: po-files-to-check
env:
PO_FILES_TO_CHECK: ${{ steps.changed-po-files.conclusion == 'skipped' && '**/*.po' || steps.changed-po-files.outputs.all_changed_files }}
run: |
echo "po_files_to_check=$PO_FILES_TO_CHECK" >> $GITHUB_OUTPUT
echo "any_po_files_to_check=`test -n \"$PO_FILES_TO_CHECK\" && echo true || echo false`" >> $GITHUB_OUTPUT
- name: Muestra outputs de steps anteriores para debugueo
env:
CHANGED_PO_FILES: ${{ toJson(steps.changed-po-files) }}
PO_FILES_TO_CHECK: ${{ toJson(steps.po-files-to-check) }}
run: |
echo "steps.changed-po-files=$PO_FILES_TO_CHECK"
echo "steps.po-files-to-change.$CHANGED_PO_FILES"
# Chequeos a realizar
- name: TRANSLATORS
run: |
diff -Naur TRANSLATORS <(LANG=es python scripts/sort.py < TRANSLATORS)
# FIXME
# Se deshabilita porque el CI usa gettext 0.21 que es muy antiguo
# y la mayoría de los sistemas usa 0.22.X
#- name: Powrap
# if: steps.po-files-to-check.outputs.any_po_files_to_check == 'true'
# run: powrap --diff --check --quiet ${{ steps.po-files-to-check.outputs.po_files_to_check }}
- name: Sphinx lint
if: steps.po-files-to-check.outputs.any_po_files_to_check == 'true'
run: sphinx-lint ${{ steps.po-files-to-check.outputs.po_files_to_check }}
- name: Pospell
if: steps.po-files-to-check.outputs.any_po_files_to_check == 'true'
run: python scripts/check_spell.py ${{ steps.po-files-to-check.outputs.po_files_to_check }}
# Construcción de la documentación
- name: Construir documentación
run: |
# Normal build
PYTHONWARNINGS=ignore::FutureWarning,ignore::RuntimeWarning sphinx-build -j auto -W --keep-going -b html -d cpython/Doc/_build/doctree -D language=es . cpython/Doc/_build/html