Семнадцатая партия бэклога: prune снимает весь отобранный набор #611
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: CI | |
| on: | |
| push: | |
| branches: [main, master] | |
| pull_request: | |
| jobs: | |
| test: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13"] | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install | |
| run: | | |
| pip install -e ".[dev]" | |
| # Pinned by TAG, not by a branch: a guard installed from `main` changes under the | |
| # repository without a commit in it - a green pipeline turns red (or, worse, | |
| # a red one turns green) with nothing here to explain why. | |
| pip install "git+https://github.com/keyfire/docsguard@v0.10.0" | |
| # Данные о языке в репозиторий не входят (генерируются из дистрибутива), поэтому | |
| # зависящие от данных тесты пропускаются; проверяются установка, импорт и смоук на | |
| # матрице версий Python. | |
| - name: Tests | |
| run: pytest -q | |
| # Задача wheels запускает mypy по компилируемым модулям и их транзитивным импортам | |
| # (mypyc), но только ПО ТЕГУ - ошибка типов там валит уже опубликованный релиз | |
| # (так сорвалась публикация 0.29.0). Та же проверка на каждую отправку ловит её до тега. | |
| - name: mypy (mypyc-compiled modules) | |
| run: | | |
| pip install mypy | |
| mypy xbsl/lexer.py xbsl/parser.py --ignore-missing-imports | |
| # The repository is written in English, and until 31.07.2026 that was held by attention | |
| # alone - a wave of new code shipped Russian comments and test docstrings, and nothing | |
| # looked at it. The guard judges the lines a change ADDS (the tree still carries the old | |
| # debt), so it needs the history the default shallow checkout does not fetch. | |
| language: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| - name: Language guard (added lines) | |
| run: | | |
| base="${{ github.event.pull_request.base.sha || github.event.before }}" | |
| case "$base" in | |
| ""|0000000000000000000000000000000000000000) | |
| base="$(git rev-parse HEAD~1 2>/dev/null || echo HEAD)" ;; | |
| esac | |
| echo "base: $base" | |
| python tools/langguard.py --base "$base" | |
| # The reference pages name rules, tools, commands and settings by hand, and a hand-written | |
| # list drifts the moment a surface grows: a review of the site found eleven MCP tools | |
| # described nowhere and a list of creatable object classes naming eleven of thirty-four. | |
| # The guard needs no language data - it reads the rule registry, not `--list-rules`. | |
| docs: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.13" | |
| # With the extras: without them `xbsl lsp --help` answers "needs the [lsp] extra" instead | |
| # of the flags, and the generated command page comes out short. | |
| - name: Install | |
| run: | | |
| pip install -e ".[lsp,mcp]" | |
| # Pinned by TAG, not by a branch: a guard installed from `main` changes under the | |
| # repository without a commit in it - a green pipeline turns red (or, worse, | |
| # a red one turns green) with nothing here to explain why. | |
| pip install "git+https://github.com/keyfire/docsguard@v0.10.0" | |
| - name: Docs guard (every surface is described) | |
| run: python tools/check_docs.py | |
| # The generated pages are committed, so a stale one means the generator was not run. | |
| - name: Generated pages are up to date | |
| run: | | |
| python scripts/gen-cli-docs.py | |
| python scripts/gen-commands-docs.py | |
| git diff --exit-code -- docs/CLI.md docs/CLI.ru.md \ | |
| editors/vscode/README.md editors/vscode/README.ru.md |