chore(deps-dev): bump textual from 8.2.2 to 8.2.3 #3702
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 | |
| pull_request: | |
| schedule: | |
| - cron: "0 */6 * * *" | |
| jobs: | |
| static-analysis: | |
| strategy: | |
| matrix: | |
| task: ["lint", "fmt", "type-check"] | |
| fail-fast: false | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python | |
| run: uv python install 3.10 | |
| - name: Install dependencies | |
| run: uv sync --group dev --frozen | |
| - run: uv run invoke ${{ matrix.task }} --check | |
| validate-docs-build: | |
| name: Validate documentation build | |
| if: github.event_name == 'pull_request' | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python | |
| run: uv python install 3.10 | |
| - name: Install dependencies | |
| run: uv sync --group docs --frozen | |
| - name: Build documentation | |
| run: uv run mkdocs build --strict | |
| tests: | |
| strategy: | |
| fail-fast: ${{ github.event.pull_request.draft == true }} | |
| matrix: | |
| python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python ${{ matrix.python-version }} | |
| run: uv python install ${{ matrix.python-version }} | |
| - name: Install dependencies | |
| run: uv sync --group dev --frozen | |
| - name: Run tests | |
| run: uv run coverage run -m pytest -vv | |
| - name: Generate coverage report | |
| run: uv run coverage xml | |
| - name: Upload coverage reports to Codecov | |
| uses: codecov/codecov-action@v4.0.1 | |
| with: | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| slug: Kilo59/ruff-sync | |
| test-no-optional-deps: | |
| name: Test without optional dependencies | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Set up Python | |
| uses: actions/setup-python@v5 | |
| with: | |
| python-version: "3.10" | |
| - name: Install ruff-sync (no extras) | |
| # We install only the base package without 'dev' or 'tui' groups. | |
| run: pip install . | |
| - name: Run optional dependency validation script | |
| run: bash tests/test_minimal_imports.sh | |
| pre-publish: | |
| name: Test package installation | |
| needs: [static-analysis, tests] | |
| if: >- | |
| (github.event_name == 'push' && github.ref == 'refs/heads/main') || | |
| (github.event_name == 'pull_request' && github.event.pull_request.draft == false) | |
| runs-on: ubuntu-latest | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python | |
| run: uv python install 3.10 | |
| - name: Build package | |
| run: | | |
| echo "Building ruff-sync package..." | |
| uv build | |
| - name: Install packaged program | |
| run: | | |
| echo "Installing built wheel..." | |
| uv tool install $(ls dist/*.whl) | |
| echo "Version: $(ruff-sync --version)" | |
| - name: Test package installation (Pull) | |
| run: | | |
| echo "Testing ruff-sync pull against Kilo59/ruff-sync..." | |
| ruff-sync https://github.com/Kilo59/ruff-sync | |
| - name: Test package installation (Check) | |
| run: | | |
| echo "Testing ruff-sync check against Kilo59/ruff-sync..." | |
| ruff-sync check https://github.com/Kilo59/ruff-sync | |
| - name: Dogfood Ruff-Sync Check (GitHub Format) | |
| run: | | |
| echo "Dogfooding ruff-sync check with GitHub annotations..." | |
| # This will produce annotations if the current branch's ruff config | |
| # has drifted from the upstream (main branch). | |
| ruff-sync check https://github.com/Kilo59/ruff-sync --output-format github | |
| - name: Verify semantic check failure | |
| run: | | |
| echo "Verifying that --semantic check fails for kitchen-sink config (expected failure)..." | |
| ! ruff-sync check --semantic https://github.com/Kilo59/ruff-sync --path configs/kitchen-sink | |
| publish-docs: | |
| name: Publish Documentation | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| needs: [pre-publish] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| contents: write | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| with: | |
| fetch-depth: 0 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python | |
| run: uv python install 3.10 | |
| - name: Install dependencies | |
| run: uv sync --group docs --frozen | |
| - name: Fetch gh-pages branch | |
| # mike needs the gh-pages branch history to make incremental commits. | |
| # Without fetching it first, mike may reset the entire branch. | |
| run: git fetch origin gh-pages --depth=1 || true | |
| - name: Deploy documentation | |
| run: | | |
| # Configure git | |
| git config user.name "github-actions[bot]" | |
| git config user.email "github-actions[bot]@users.noreply.github.com" | |
| # Extract version from pyproject.toml in a TOML-aware way using already installed dependencies | |
| VERSION=$(uv run python - << 'PY' | |
| import pathlib | |
| import tomlkit | |
| pyproject = pathlib.Path("pyproject.toml") | |
| data = tomlkit.parse(pyproject.read_text(encoding="utf-8")) | |
| # Support both top-level `version` and `[project]` table `version` | |
| version = ( | |
| data.get("project", {}).get("version") | |
| or data.get("version") | |
| ) | |
| if not version: | |
| raise SystemExit("Version not found in pyproject.toml") | |
| print(version) | |
| PY | |
| ) | |
| echo "Current Version: $VERSION" | |
| if [[ "$VERSION" == *".dev"* ]]; then | |
| echo "Deploying DEV documentation..." | |
| uv run mike deploy --push --update-aliases dev | |
| else | |
| echo "Deploying STABLE documentation..." | |
| uv run mike deploy --push --update-aliases "$VERSION" stable | |
| uv run mike set-default --push stable | |
| fi | |
| publish: | |
| name: Build and publish to PyPI | |
| if: github.event_name == 'push' && github.ref == 'refs/heads/main' | |
| needs: [pre-publish] | |
| runs-on: ubuntu-latest | |
| permissions: | |
| # This permission is required for trusted publishing | |
| id-token: write | |
| # This permission is required to read the repository content | |
| contents: read | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v5 | |
| - name: Set up Python | |
| run: uv python install 3.10 | |
| - name: Build package | |
| run: uv build | |
| - name: Publish package | |
| run: | | |
| # Capture stderr to a file so we can check for specific error strings | |
| uv publish 2> publish_err.log || { | |
| exit_code=$? | |
| # Check for common "version already exists" markers in the output | |
| if grep -qi "already exists" publish_err.log; then | |
| echo "::warning title=Ruff Sync Publish::Version already exists on PyPI. Skipping upload." | |
| else | |
| cat publish_err.log | |
| exit $exit_code | |
| fi | |
| } |