Repository navigation
61 lines (53 loc) · 3.03 KB
/
Copy pathpython-next.yml
File metadata and controls
61 lines (53 loc) · 3.03 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
# Следующая версия Python — вопрос, а не проверка (#127). Решение владельца
# 1 октября: планка семьи 3.14, а 3.15 гоняется только затем, чтобы заранее
# знать, будет ли проект на ней работать.
#
# ПОЧЕМУ ОТДЕЛЬНЫЙ ФАЙЛ, А НЕ ЯЧЕЙКА В ci.yml. Значок состояния показывает
# исход ВСЕГО прогона: ячейка 3.15 с `continue-on-error` внутри ci.yml оставила
# бы значок зелёным при красном 3.15 и ответа о 3.15 не дала бы.
#
# ПОЧЕМУ НЕ НА ИЗМЕНЕНИИ. Необязательный канал на изменении не просыпается: его
# отказ не должен ни держать слияние, ни ронять его (правило 084 каталога).
# Красное на предрелизе — не поломка изменения, снять его своей работой автор
# не может. Поэтому: толчок в общую ветку, раз в неделю (предрелиз меняется и
# без наших слияний) и кнопка.
#
# ПОЧЕМУ КРАСНОЕ ЧЕСТНОЕ, А НЕ continue-on-error. Ответ на вопрос и есть цвет
# прогона: заглушённый отказ отвечал бы «работает» всегда. Тревоги по общей
# ветке он при этом не поднимает: очередь мержей судит о `main` только по
# ci.yml (`merge_queue.CI_WORKFLOW`), а будильник расписаний его не слушает
# намеренно — см. `schedule_alarm.БЕЗ_ПРИСМОТРА`.
name: python-next
on:
push:
branches: [main]
# Не в 0 и не в 30: минута выбрана так, чтобы не совпадать с пиком.
schedule:
- cron: "23 6 * * 1"
workflow_dispatch:
permissions:
contents: read
concurrency:
group: python-next-${{ github.ref }}
cancel-in-progress: true
jobs:
next:
name: следующий Python · 3.15
runs-on: ubuntu-26.04
timeout-minutes: 15
steps:
- uses: actions/checkout@v4
# `allow-prereleases: true` — условие работы setup-python на предрелизе:
# без него 3.15 не ставится вовсе.
- uses: actions/setup-python@v5
with:
python-version: "3.15"
allow-prereleases: true
- name: поставить проект и инструменты разработки
run: |
python -m pip install --upgrade pip
python -m pip install -e . --group dev
# Тот же preflight, что в ci.yml: вопрос «будет ли проект работать на
# 3.15» включает и тесты, и типы, и линтер.
- name: preflight
run: python scripts/preflight.py